Grundlegender Ablauf der Postfix E-Mail Verarbeitung
In der Datei </etc/mailname> wird festgelegt an welche Domains lokale Nachrichten der Systemuser (root, fail2ban, www-data) gesendet werden. Eine Nachricht von fail2ban z. B. (beim Starten des Dienstes) setzt sich dann aus dem Usernamen/Dienstnamen <fail2ban> und der in </etc/mailname> festgelegten Domain <blackbox> zusammen. Die Mail würde dann an <fail2ban@blackbox> verschickt.
Postfix nimmt die E-Mail an und schaut auf Basis des <mydestination> Eintrags in der </etc/postfix/main.cf>, ob die E-Mail lokal gespeichert oder an eine weitere Adresse weitergeleitet wird. Ist der Wert/Eintrag hinter <mydestination> dann z.B. <blackbox>, heißt das für Postfix, dass alle E-Mails an die Domain <XXXXXX@blackbox> lokal gespeichert werden und NICHT weitergeleitet werden. Steht in <mydestination> NICHT <blackbox> heißt das für Postfix, die Mail wird extern weitergeleitet, da die Domain blackbox nicht lokal verarbeitet wird. Das heist alle Domains, die in <mydestination = DOMAIN> gelistet sind, werden NICHT weitergeleitet, sondern lokal unter </var/mail/username/> gespeichert.
Nachdem Postfix anhand der o.g. Parameter entschieden hat, ob die E-Mail lokal unter </var/mail/username/> gespeichert, oder im o.g. Fall an eine externe Adresse weitergeleitet wird, prüft Postfix im Fall einer Weiterleitung, ob in der Datei </etc/postfix/generic> für die Adresse <fail2ban@blackbox> eine Substitutionsadresse (z. B. <get-info@gmx.net>) vorliegt und tauscht diese dann, wenn es zutrifft dementsprechend aus (aus <fail2ban@blackbox> wird dann <get-info@gmx.net>). Danach schaut Postfix in der Datei </etc/postfix/sender_canonical> welche Adresse für den Relay definiert wurde (z.B. <send-info@gmx.net>) und sendet die Mail dann mit den in den </etc/postfix/sasl_password> definierten Adressen (smtp username:passwort z. B. <mail.gmx.net send-info@gmx.net: PASSWORD>) mit dem Absender <send-info@gmx.net> und dem Empfänger <get-info@gmx.net> an den Relay Server <mail.gmx.net>.
Voraussetzung für die o.g. genannte E-Mail Verarbeitung sind folgende Einträge in der Datei </etc/postfix/main.cf> sowie die Erstellung einer Postfixdatenbank aus den Dateien mit dem Befehl <cd /etc/postfix && sudo postmap /etc/postfix/generic> (z.B. für die Datenbank generic.db)
- smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
- sender_canonical_maps = hash:/etc/postfix/sender_canonical
- smtp_generic_maps = hash:/etc/postfix/generic
- smtp_tls_policy_maps = hash:/etc/postfix/tls_policy ( variiert bei verschiedenen Mail Anbietern ) // für Debian 9 obsolet
Kurzinformation zu den Postfixdatenbank Dateien
/etc/postfix/sasl_passwd
- Zugangsdaten für den SMTP Mailversand
-
1mail.gmx.net send-info@gmx.net:PASSWORT
/etc/postfix/sender_canonical
- Absenderadressen der Postfix Emailuser für den Mailversand
-
1234root send-info@gmx.netwww-data send-info@gmx.netspeefak send-info@gmx.netfail2ban send-info@gmx.net
/etc/postfix/generic
- Empfängeradresse (Substitutionsadresse) der Postfix Emailuser für den Mailversand
-
1234root get-info@gmx.netwww-data get-info@gmx.netspeefak get-info@gmx.netfail2ban get-info@gmx.net
Nach jeder Änderung der o.g. Dateien muss mit Hilfe des postmap Befehls eine für postmap lesbare Datei erzeugt werden :
1 2 3 4 |
sudo postmap /etc/postfix/generic sudo postmap /etc/postfix/sasl_password sudo postmap /etc/postfix/sender_canonical sudo postmap /etc/postfix/tls_policy |
Beispielkonfiguration der /etc/postfix/main.cf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# 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 # 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_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. #smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination myhostname = blackbox alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = localhost relayhost = mail.gmx.net:587 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = loopback-only smtp_sasl_auth_enable = yes # noplaintext weglassen, wenn Passwörter im Klartext übertragen werden müssen: # (nicht empfohlen, nur wenn's anders nicht funktioniert) smtp_sasl_security_options = noanonymous #postfix EmailServiceProvider relayaddress password mapping ( define password for senderaddress ) #define the valid sender address which is used for sending emails via ESP like GMX smtp_sasl_password_maps = hash:/etc/postfix/sasl_password #systemuser mapping to sender address #define direcly an email address for system user. Addressmapping systemuser and /etc/mailname ( e.g. root@gmx.net ) via generic is not needed. sender_canonical_maps = hash:/etc/postfix/sender_canonical #systemuser emailaddress to senderemailaddress mapping ( mapps systemuseremailsaddresses to senderemailaddresses ) #systemuser emailaddress is defind by systemuser e.g. root and system domain ( listed in /etc/mailname e.g. gmx.de ), #The systemuser email address is now root@gmx.net and can be mapped from root@gmx.net to log-info@gmx.net via generic file smtp_generic_maps = hash:/etc/postfix/generic #external ESP tls parameter smtp_tls_policy_maps = hash:/etc/postfix/tls_policy #smtp_tls_loglevel = 2 #smtpd_tls_loglevel = 2 |
by Speefak | elektronik-kompendium.de | dirk-hagedorn.de | thomas-leister.de | gtkdb.de | mailenable.com | heinlein-support.de