Source: iRedmail documentation
Please note that there are usually more config and log files available for each service, I only highlight the ones you may need during our set up.
- nginx → web server to display the admin interface (iRedAdmin) and webmail (RoundCube)
- Config files:
- /etc/nginx/nginx.conf → definition of the base user (e.g. www-data), max worker connections and additional resources to include.
- /etc/nginx/sites-enabled/default.conf → default config for unencrypted communication, server and location directives
- /etc/nginx/sites-enabled/default-ssl.conf → default config for encrypted comms, server and location directives
- Log files:
- /var/log/nginx/access.log → the default location for the access log.
- /var/log/nginx/error.log → the default location for the error log.
- Config files:
- dovecot → SMTP functionality
- Config files:
- /etc/dovecot/dovecot-mysql.conf → used to query mail users and passwords for MySQL / MariaDB engine.
- /etc/dovecot/dovecot-pgsql.conf → used to query mail users and passwords on PostgreSQL engine.
- /etc/dovecotr/dovecot-used-quota.conf → store and query per-user email quota.
- Log files:
- /var/log/dovecot/dovecot.log → log of changes to the dovecot service
- /var/log/dovecot/imap.log → IMAP connection logs
- Config files:
- postfix → for IMAP/LMTP/LDA
- Config files:
- /etc/postfix/main.cf → most config that we will be working with
- /etc/postfix/master.cf → transport-related settings
- /etc/postfix/mysql/*.cf → configs for MySQL / MariaDB
- Log file: /var/log/mail.log
- Config files:
- iRedAPD → a postfix policy server (default port 7777)
- Config file: /opt/iredapd/settings.py
- Log file: /var/log/iredapd/iredapd.log
- iRedAdmin → web application (PHP-based, hence why we use nginx with the php-fpm package)
- Config file: /opt/www/iredadmin/settings.py
- Log file: /var/log/uwsgi/app/iredadmin.log
- mariadb → database engine to store data in
- Config files:
- /etc/mysql/my.cnf → modify basic parameters like port number
- /etc/mysql/mariadb.conf.d/50-server.cnf → server-related config (inc. SSL certificates)
- /etc/mysql/mariadb.conf.d/50-client.cnf → client-related config
- Log file: By default, it is integrated with syslog (run
sudo cat /var/log/syslog | grep mysql
)
- Config files:
- mlmmj → a simple and slim mailing list manager (MLM) inspired by ezmlm. It works with many different Mail Transport Agents (MTAs).
- Config file: /opt/mlmmjadmin/settings.py
- Log file: /var/log/mlmmjadmin/mlmmjadmin.log
- spamassassin → spam filtering service – called by amavis, not executed as a daemon
- Config file: /etc/mail/spamassassin/local.cf
- Log file: /var/log/mail.log
- clamav → antivirus scan
- Config files
- /etc/clamav/clamd.conf → basic behavior of the AV
- /etc/clamav/freshclam.conf → AV database configuration
- Log files:
- /var/log/clamav/clamav.log → records of findings (must be activated via clamd.conf – remove the ‘#’ to uncomment a line starting with ‘#LogFile’.
- /var/log/clamav/freshclam.log → AV database update log
- Config files
- RoundCube – webmail (optional but recommended to install)
- Config file: /opt/www/roundcubemail/config/config.inc.php → here we can disable the requirement to run on HTTPS internally
- Log file: Postfix log is used by default
- php-8.2 inc. the fpm package that is used for compatibility with nginx
- fail2ban (optional) – auto-ban repeated failed login attempts
- Config file: /etc/fail2ban/jail.local
- Log file: /var/log/fail2ban.log
- nftables (optional) → a new generation iptables firewall (can be replaced by ufw)
- netdata → system application monitor
- amavis (amavisd-new) → analysis and filtering capabilities, works with postfix and spamassasin, uses external content filters and changes ratings of senders. Helps with the generation of the DKIM record
- Config file: /etc/amavis/conf.d/50-user
- Log file: stored in postfix logs by default
- rsyslog → the ‘rocket-fast’ system for log processing
This is why our VM needs at least 3 GB of RAM!