Hallo Freunde der Sonne,
dieser Artikel wird etwas umfangreicher, geht es doch darum Mails von nicht vertrauenswürdigen IPs anzunehmen und diese für einen Antispam aufzubereiten.
Einsatzszenario: Wartungsmails irgendwelcher BMCs die unter DSL-Anschlüssen Wartungsmeldungen versenden und irgendwie gewaschen werden müssen.
Mailserver der Header filtert für Weiterleitung
via Postfix unter Ubuntu 20.04 LTS
Quellen
Installation Postfix unter Ubuntu 20.04 LTS
Auf der Installation mit dem Assistenten:
sudo DEBIAN_PRIORITY=low apt install postfix
Falls der Assistent später noch einmal aufgerufen werden soll, kann dieser Befehl verwendet werden:
sudo dpkg-reconfigure postfix
Grundkonfiguration des Postfix
Die Konfigurationsdateien befinden sich unter: /etc/postfix
Zuerst passen wir die Hauptkonfiguration an: „/etc/postfix/main.cf“, folgende Konfiguration sollte mindestens vorliegen:
# See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = no # See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on # fresh installs. compatibility_level = 2 # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_security_level=may smtp_tls_CApath=/etc/ssl/certs smtp_tls_security_level=may smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination myhostname = HIER_SOLLTE_DEIN_SERVERNAME_STEHEN alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = HIER, SOLLTEN, DEINE, ZIELDOMAINS, STEHEN relayhost = mynetworks = localhost #mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = all smtp_sender_dependent_authentication = yes virtual_alias_domains = HAUPTZIELDOMAIN virtual_alias_maps = hash:/etc/postfix/virtual transport_maps = hash:/etc/postfix/transport # Wichtig damit der Weiterleiter nicht dabei hilft verfügbare Adressen auszuspähen disable_vrfy_command = yes mime_header_checks = regexp:/etc/postfix/header_checks header_checks = regexp:/etc/postfix/header_checks # nur vertrauenswürdige Absender, ansonsten ablehnen smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access, reject maximal_queue_lifetime = 3d bounce_queue_lifetime = 3d # Mails nicht größer als 64MB message_size_limit = 67108864 mailbox_size_limit = 1073741824 smtpd_client_connection_count_limit = 50 smtpd_client_connection_rate_limit = 50 smtpd_client_recipient_rate_limit = 100 smtpd_client_message_rate_limit = 100
Danach sollte die Sender-Liste für vertrauenswürdige Absender gebaut werden: /etc/postfix/sender_access
DOMAIN.TLD PERMIT BADPEOPLE.TLD REJECT
Zu guter Letzt muss die Sender-Tabelle noch ins passende Format konvertiert werden:
cd /etc/postfix postmap sender_access
Es sollte nun eine „sender_access.db“ generiert worden sein.
Filterung der Header für das Weiterleiten
Installation des Moduls pcre:
apt install postfix-pcre
Danach hinzufügen der Filterzeile in der /etc/postfix/master.cf unter cleanup:
cleanup unix n - y - 0 cleanup
-o header_checks=pcre:/etc/postfix/cleanup_header
Zusätzlich muss eine Datei /etc/postfix/cleanup_header angelegt werden welche die Felder filtert:
/^Received:/ IGNORE /^X-Originating-IP:/ IGNORE
Hierdurch werden die Absender-Daten für das folgende Hauptsystem verschleiert und nur die Online-IP bzw. der MX unseres Postfix verwendet.
Virtuelle Tabellen und Weiterleitungen im Postfix
Nach der oberen Konfiguration zur urteilen, müssen noch die Weiterleitungen angelegt werden, da das System selbst keine Mailboxen hostet.
Empfänger werden über virtuelle Aliase weitergeleitet: /etc/postfix/virtual
Empfaenger@domain.tld Weiterleitungsziel@domain.tld
Nun muss wieder die Datei in das richtige Format gebracht werden:
cd /etc/postfix postmap virtual
Final muss der Traffic noch an das passende Ziel weitergeleitet werden, hierfür verwenden wir die Datei: /etc/postfix/transport
* smtp:zielserver.dns.name:587
Nun muss wieder die Datei in das richtige Format gebracht werden:
cd /etc/postfix postmap transport
Jetzt den Postfix neu starten und ggf. in den Autostart packen und fertig:
systemctl enable postfix systemctl restart postfix systemctl status postfix journalctl -xe
Vielleicht hilft mir der Artikel ja später wieder, wenn das jemand warten oder neu aufbauen muss. ;)