Die Hauptkonfiguration befindet sich in /etc/postfix/main.cf
, eine ausführlich kommentierte Beispiel-Konfiguration liegt unter /usr/share/postfix/main.cf.dist
.
man postconf
) helfen weiter./etc/postfix
:postconf -n
postconf
postconf -d
btree:/etc/postfix/relay_domains
nach Schlüssel domain.tld
durchsuchen: postmap -q domain.tld btree:/etc/postfix/relay_domains
Oft benutzte Einstellungen in der main.cf
:
postconf | grep message_size
): message_size_limit = 52428800 # default is: 10240000
cd /etc/postfix/ && wget http://postfix.state-of-mind.de/bounce-templates/bounce.de-DE.cf
main.cf
hinzufügen # deutsche Nachrichten für bounces/Verzögerungen etc. bounce_template_file=/etc/postfix/bounce.de-DE.cf
# IP for outgoing connections: smtp_bind_address= 1.2.3.4 # IPs for incoming connections: inet_interfaces = 1.2.3.4 127.0.0.1
# reject non-existent user (verified against target systems) with a fatal error (they won't try again) # standard is: 450 # normaly 550 would be used here, i use 577 to find it easier in logs. unverified_recipient_reject_code = 577 # text for this error is available since 2.6.x: "unverified_recipient_reject_reason" # rejct non-existent/unresolveable domains with a fatal error (they won't try again) # standard is: 450 # normaly 550 would be used here, i use 576 to find it easier in logs. unknown_address_reject_code = 576
Aliase gelten nur für lokale Benutzer dessen Empfänger durch Aliase umgeschrieben werden kann. Benutzer fremder Systeme (=dessen Ziel wir nicht sind) können über virtuelle Benutzer umgeschrieben werden.
/etc/aliases
(Schema ist Benutzer: Zielbenutzer
)newaliases
Mit virtuellen Benutzern können externe Zieladressen umgeschrieben werden.
Dazu benötigt es
/etc/postfix/virtual
“) alte@adresse.de neue@adresse.de
definiert werden und
virtual_maps = hash:/etc/postfix/virtual
postmap
anstoßen: postmap /etc/postfix/virtual
Konfiguration wenn wir ein Relayhost für andere sind.
mynetworks = 127.0.0.0/8, 192.168.0.0/24
Das Relay des Providers kümmert sich um den Versand der eMails.
# do we use a relayhost/smarthost? relayhost = smtp-relay.of.my.provider.tld
Ggf. mit SMTP-Auth (siehe unten).
Transports geben konkrete Routen/Ziele für bestimmte domains an, dies benötigt man bei Zielen die nicht im DNS-gelistet sind, z.B. Groupware-Server.
Eleganterweise lassen sich die Einträge für relay-Domains und transports in der gleichen Datei verwalten:
/etc/postfix/relay_domains
: Domain1.de :[ziel-server1.de]
postmap /etc/postfix/relay_domains
relay_domains = hash:/etc/postfix/relay_domains transport_maps = hash:/etc/postfix/relay_domains
Bei dieser Lösung dürfen aber reinen keine transports für externe Domains enthalten sein, da man sonst zum offenen Relay für diese Domains wird.
masquerade_domains = mydomain.tld
Ausnahmen für bestimmte Benutzer:
masquerade_exceptions = root
/etc/postfix/smtp_auth
FQDN_MX_Gateway USER:PASSWORT
postmap /etc/postfix/smtp_auth
Fehlermeldung:
: SASL authentication failed; cannot authenticate to server SMTP-SERVERXYZ.tld[1.2.3.4]: no mechanism available
oder
warning: SASL authentication failure: No worthy mechs found
smtp_sasl_auth_enable=yes smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth # allow plain/login: (standard contains: noplaintext) smtp_sasl_security_options = noanonymous
Verschlüsselung ist (leider) bei SMTP lt. RFC immer optional, d.h. es muss immer erlaubt sein mails unverschlüsselt einzuliefern. Dennoch sollte sollte man sie anbieten und nutzen wo immer möglich auch wenn das Sicherheitsniveau durch viele Server mit selbst-signierten Zertifkate gesenkt wird. Die Anschaffung eines wildcard-Zertifikates für alle MTAs (mx1.DOMAIN.TLD, mx2.DOMAIN.TLD) ist auch eine sinnvolle Ausgabe, ggf. kann man gleich alle Server damit abdecken wenn alles unterhalb einer Domain statt findet.
Kommentierter Auschnitt aus /etc/postfix/main.cf
:
# === SSL/TLS Einstellungen ============= # STARTTLS abgehend nutzen (aber nicht erzwingen): smtp_tls_security_level=may # STARTTLS eingehend anbieten (aber nicht erzwingen): smtpd_tls_security_level=may # Systemzertifikate zur Verifizierung heranziehen: smtpd_tls_CApath = /etc/ssl/certs smtp_tls_CApath = /etc/ssl/certs # Headereinträge zur Transportverschlüsselung hinzufügen smtpd_tls_received_header = yes # SSL-Debug: # smtpd_tls_loglevel = 1 # Eigene Zertifikate (certs/keys im pem-Format) smtpd_tls_key_file = /etc/postfix/DOMAIN.TLD.key smtpd_tls_cert_file = /etc/postfix/DOMAIN.TLD.cert # wahrscheinloch nötige Zwischenzertifikate (Intermediate) smtpd_tls_CAfile = /etc/postfix/DOMAIN.TLD-plus-zwischenzertifikate.crt # === SSL/TLS Einstellungen ENDE =============
Kommentierter Auschnitt aus /etc/postfix/main.cf
:
smtpd_tls_received_header = yes smtpd_tls_loglevel = 3 # 0 (none) to 4 (full data)
Die Einbindung externer Filtersysteme ist problemlos möglich, da diese auf einem lokalen Port lauschen:
# policyd-weight check_policy_service inet:127.0.0.1:12525, # greylisting check_policy_service inet:127.0.0.1:60000,
Spamassassin kann grundsätzlich über zwei Wege zur Spamfilterung benutzt werden: