Obwohl ich festgestellt habezwei Antwortendazu komme ich nicht dahinter, wie man sie tatsächlich umsetzt, und mindestens eine davon beantwortet die Frage nicht wirklich. Wenn also jemand Erfahrungen hat, die er teilen möchte, wäre ich sehr dankbar.
Ich habe einen Server (Ubuntu 18.04), auf dem Postfix läuft. Ich begrenze bereits die Rate von SASL-Absendern mit postfwd und verwende andere Dinge, um ausgehende E-Mails vom lokalen Rechner/Netzwerk (z. B. von Webservern) mit Amavis zu scannen. Das ist alles in Ordnung und sieht in main.cf so aus:
smtpd_sender_restrictions =
check_client_access cidr:/etc/postfix/internal_clients_filter,
permit_mynetworks,
reject_unknown_sender_domain
und in master.cf
senderCheck unix - n n - 15 spawn
user=nobody argv=/opt/policyd/src/policyd.pl max_idle=30 max_use=50 daemon_timeout=50
127.0.0.1:10025 inet n - n - - smtpd
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_data_restrictions=
-o smtpd_end_of_data_restrictions=
-o local_header_rewrite_clients=
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o smtpd_milters=
-o local_recipient_maps=
-o relay_recipient_maps=
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings
Wie kann ich SASL-Absender (die sich per Definition nicht in meinem Netzwerk befinden) auf die gleiche Weise einem Spam- und Malware-Scan unterziehen wie lokale Absender?
Antwort1
Die Antwort darauf war, etwas peinlich, dass die SASL-Auth-Benutzerwargefiltert werden. Allerdings hatte ich syslog_name
in master.cf kein SMTP-Listener angegeben, sodass ich in all dem Lärm keine Hinweise darauf sah, dass das funktioniert (SASL-Auth-Absender machen vielleicht 1 % des gesamten Datenverkehrs im Protokoll aus).
Zur Buße folgt nun eine vollständige Beschreibung meiner nun leicht geänderten Konfiguration, die sowohl ausgehende E-Mails (z. B. Webanwendungen im lokalen Netzwerk) als auch SASL-authentifizierte Konten, die E-Mails aus beliebigen externen Netzwerken senden, über unseren Mailserver weiterleitet.
Verwenden von Ubuntu 18.04 mit Standardpaketen, sofern nicht anders angegeben:
Zuerst musste ich den Clamav-Benutzer zur gleichen Gruppe wie Amavis hinzufügen:
$ id clamav
uid=115(clamav) gid=115(clamav) groups=115(clamav),126(amavis)
Änderungen an /etc/amavis/conf.d
Dateien:
05-Domänen-ID
@local_domains_acl = ( ".$mydomain" );
# I've got multiple IP addresses on my machine and only want one to be used for mail:
@inet_acl = qw(127.0.0.1 [::1] 185.73.x.x [2001:ba8:0:x::x]);
15-Inhaltsfiltermodus: Spam- und Antivirenprüfung aktivieren
20-debian_defaults: Quarantäneverzeichnis einrichten und erstellen (im Besitz von amavis user+group) und final_spam_destiny
aufD_DISCARD
40-policy_banks:
$interface_policy{'10024'} = 'INTERNAL';
$policy_bank{'INTERNAL'} = { # mail originating from clients in cidr:/etc/postfix/internal_clients_filter
bypass_spam_checks_maps => [0], # spam-check outgoing mail
bypass_banned_checks_maps => [0], # banned-check outgoing mail
bypass_header_checks_maps => [0], # header-check outgoing mail
forward_method => 'smtp:[127.0.0.1]:10025', # relay to Postfix listener on port 10025
};
In Postfix main.cf:
smtpd_sender_restrictions =
check_client_access cidr:/etc/postfix/internal_clients_filter,
permit_mynetworks,
reject_unknown_sender_domain
/etc/postfix/internal_clients_filter:
0.0.0.0/0 FILTER smtp:127.0.0.1:10024
::/0 FILTER smtp:[::1]:10024
In master.cf
127.0.0.1:10025 inet n - n - - smtpd
-o syslog_name=amavis-reentry
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_data_restrictions=
-o smtpd_end_of_data_restrictions=
-o local_header_rewrite_clients=
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o smtpd_milters=
-o local_recipient_maps=
-o relay_recipient_maps=
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings
Laden Sie amavis und Postfix neu, um neue Konfigurationen zu erhalten. Suchen Sie in Ihren Protokollen nach „amavis-reentry“ und Sie sollten die Ergebnisse der Filterung sehen.