Problem mit DKIM-Signierung unter amavisd-new
Thilo Engelbracht
mailinglists at engelbracht.de
Di Jun 7 23:37:00 CEST 2016
Hallo zusammen,
auf meinem Mailserver (postfix, dovecot, amavisd-new) werden eingehende
E-Mails per smtpd_proxy_filter an amavisd-new übergeben. AMaViS lauscht
auf Port 9820.
Nun möchte ich amavisd-new auch dazu verwenden, dass ausgehende E-Mails
mit DKIM signiert werden. Da die User ihre E-Mails auf den submission-
Port einliefern müssen, habe ich mir überlegt, amavisd-new auf einem
zusätzlichen Port lauschen zu lassen und mit Interface policies und
policy_banks dies zu steuern.
Meine master.cf habe ich entsprechend angepasst:
[ ... ]
smtp inet n - n - 1 postscreen
smtpd pass - - n - - smtpd
-o content_filter=
# AMaViS lauscht auf Port 9820
-o smtpd_proxy_filter=11.22.33.44:9820
submission inet n - - - - smtpd
-o cleanup_service_name=subcleanup
-o smtpd_tls_security_level=encrypt
-o smtpd_tls_received_header=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# AMaVis lauscht zusaetzlich auf Port 9880
-o smtpd_proxy_filter=11.22.33.44:9880
-o milter_macro_daemon_name=ORIGINATING
subcleanup unix n - - - 0 cleanup
-o header_checks=pcre:/etc/postfix-engelbracht.com/header-checks
tlsproxy unix - - n - 0 tlsproxy
dnsblog unix - - n - 0 dnsblog
# AMaViS sendet die E-Mails auf diesen Port zurueck:
9821 inet n - - - - smtpd
-o content_filter=
-o smtpd_proxy_filter=
-o smtpd_authorized_xforward_hosts=11.22.33.44/32
# Die "submission" user senden die E-Mails auf diesen Port zurueck:
9881 inet n - - - - smtpd
-o content_filter=
-o smtpd_proxy_filter=
#-o smtpd_authorized_xforward_hosts=11.22.33.44/32
[ ... ]
Die Konfiguration von amavisd-new:
#Auf diesen IP-Adressen/Ports lauscht AMaViS:
@listen_sockets = (
'11.22.33.44:9820',
'11.22.33.44:9880',
);
$interface_policy{'9820'} = 'engelbracht';
$interface_policy{'9880'} = 'engelbracht_SUBMISSION';
$policy_bank{'engelbracht'} = {
inet_acl => [qw( 11.22.33.44/32 )],
myhostname => 'mail.engelbracht.tld',
localhost_name => 'mail.engelbracht.tld',
X_HEADER_LINE => 'amavisd-new at mail.engelbracht.tld',
local_domains_maps => '.engelbracht.tld',
enable_dkim_verification => 1
};
$policy_bank{'engelbracht_SUBMISSION'} = {
originating => 1,
bypass_spam_checks_maps => [1],
bypass_banned_checks_maps => [1],
final_bad_header_destiny => D_PASS,
terminate_dsn_on_notify_success => 0,
warnbadhsender => 1,
smtpd_discard_ehlo_keywords => ['8BITMIME'],
enable_dkim_signing => 1
};
$signed_header_fields{'received'} = 0;
dkim_key('engelbracht.tld', 'dkim', '/etc/amavis/engelbracht.tld.pem');
@dkim_signature_options_bysender_maps = (
{ '.' =>
{
ttl => 21*24*3600,
c => 'relaxed/simple'
}
}
);
# Alle E-Mails an den Host zuruecksenden, von dem sie
# urspruenglich kam, auf Port +1
$forward_method = 'smtp:*:*';
$notify_method = 'smtp:*:*';
@mynetworks => qw( 11.22.33.44/32 22.33.44.55/32 33.44.55.66/32 );
Wenn ich nun eine Testmail versende, dann taucht in der Logdatei
folgende Fehlermeldung auf:
Jun 7 22:14:27 mail amavis[2576]: (!)DENIED ACCESS from IP 11.22.33.44, policy bank 'engelbracht_SUBMISSION'
Die policy bank 'engelbracht_SUBMISSION' hat ja funktioniert, aber die
E-Mail wird trotzdem nicht gesendet.
In der E-Mail an den postmaster ist zu lesen:
Out: 220 mail.engelbracht.tld ESMTP
In: EHLO [192.168.0.41]
Out: 250-mail.engelbracht.tld
Out: 250-PIPELINING
Out: 250-SIZE 51200000
Out: 250-VRFY
Out: 250-ETRN
Out: 250-STARTTLS
Out: 250-ENHANCEDSTATUSCODES
Out: 250-8BITMIME
Out: 250 DSN
In: STARTTLS
Out: 220 2.0.0 Ready to start TLS
In: EHLO [192.168.0.41]
Out: 250-mail.engelbracht.tld
Out: 250-PIPELINING
Out: 250-SIZE 51200000
Out: 250-VRFY
Out: 250-ETRN
Out: 250-AUTH PLAIN
Out: 250-AUTH=PLAIN
Out: 250-ENHANCEDSTATUSCODES
Out: 250-8BITMIME
Out: 250 DSN
In: AUTH PLAIN 47110815==
Out: 235 2.7.0 Authentication successful
In: MAIL FROM:<user at engelbracht.tld> BODY=8BITMIME
Out: 250 2.1.0 Ok
In: RCPT TO:<mustermann at web.de>
Out: 451 4.3.0 Error: queue file write error.
In: QUIT
Out: 221 2.0.0 Bye
Mir stellt sich jetzt die Frage:
EINGEHENDE E-Mails werden ja problemlos an amavisd-new übergeben, auf
Viren geprüft etc. Anschließend werden diese E-Mails ja wieder zurück
an postfix übergeben.
Muss man bei AUSGEHENDEN E-Mails eine andere Konfiguration verwenden?
Vielen Dank im Voraus!
Liebe Grüße
Thilo
Mehr Informationen über die Mailingliste Postfixbuch-users