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 = 100Danach 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_headerZusä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.tldNun 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:587Nun 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. ;)