diff --git a/dockerfile b/dockerfile index 78927b9..19803f7 100644 --- a/dockerfile +++ b/dockerfile @@ -129,7 +129,11 @@ RUN chmod +x /docker-entrypoint.sh \ && curl -o /bin/fetchmail.pl https://raw.githubusercontent.com/postfixadmin/postfixadmin/8f20c96278a694a7e0bb570f1d56c208105e5a14/ADDITIONS/fetchmail.pl \ && chmod +x /bin/fetchmail.pl \ && mkdir -p /var/run/fetchmail \ - && mkdir -p /var/lock/fetchmail + && mkdir -p /var/lock/fetchmail \ + # Amavis DKIM related commands + && mkdir -p /certs/amavis/dkim/ \ + && chown root:amavis /certs/amavis/dkim/ \ + && chmod 750 /certs/amavis/dkim/ # Setup data volumes diff --git a/include/docker-entrypoint.sh b/include/docker-entrypoint.sh index 9d23c76..7b53fba 100644 --- a/include/docker-entrypoint.sh +++ b/include/docker-entrypoint.sh @@ -36,6 +36,24 @@ mkdir -p /var/lock/fetchmail if [ "$1" == "setup" ]; then + +if [ ! -f /certs/amavis/dkim/example.org.dkim.pem ]; then + + echo "[WARNING] Creating DKIM Cert, example.org. Consider Creating your own"; + + amavisd-new genrsa /certs/amavis/dkim/example.org.dkim.pem 4096; + + chmod g+r /certs/amavis/dkim/example.org.dkim.pem; + + chgrp amavis /certs/amavis/dkim/example.org.dkim.pem; + + amavisd-new showkeys example.org; + fi + + + supervisorctl start amavis; + + postconf -e "myhostname = $(`echo hostname -f`)" diff --git a/include/etc/amavis/conf.d/40-socket b/include/etc/amavis/conf.d/40-socket index e2dd25c..a5c286d 100644 --- a/include/etc/amavis/conf.d/40-socket +++ b/include/etc/amavis/conf.d/40-socket @@ -2,5 +2,9 @@ # Socket config # -$inet_socket_port = 10023 +# Listening socket +# 10023 - Submission, Outbound mail +# 10024 - SMTP, Inbound mail + +$inet_socket_port = [10023, 10024] diff --git a/include/etc/amavis/conf.d/90-dkim b/include/etc/amavis/conf.d/90-dkim new file mode 100644 index 0000000..f682d82 --- /dev/null +++ b/include/etc/amavis/conf.d/90-dkim @@ -0,0 +1,25 @@ +dkim_key( + 'example.org', + 'dkim', + '/certs/amavis/dkim/example.org.dkim.pem' +); + + +@dkim_signature_options_bysender_maps = ( + { + "example.org" => { + d => 'example.org', + a => 'rsa-sha256', + ttl => 10*24*3600 + } + } +); + +$enable_dkim_signing = 1; + +$interface_policy{'10023'} = 'SUBMISSION'; + +$policy_bank{'SUBMISSION'} = { + originating => 1, + smtpd_discard_ehlo_keywords => ['8BITMIME'] +}; diff --git a/include/etc/supervisor/conf.d/supervisord.conf b/include/etc/supervisor/conf.d/supervisord.conf index 65a3373..c7eec56 100644 --- a/include/etc/supervisor/conf.d/supervisord.conf +++ b/include/etc/supervisor/conf.d/supervisord.conf @@ -34,7 +34,7 @@ command=/usr/sbin/cron -f [program:amavis] startsecs=0 stopwaitsecs=55 -autostart=true +autostart=false autorestart=true stdout_logfile=/var/log/supervisor/%(program_name)s.log stderr_logfile=/var/log/supervisor/%(program_name)s.log