Postfix
SMTP Server
Authentifikation
smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_local_domain = smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes
Benutzername und Passwort sollen verschlüsselt übertragen werden.
smtpd_tls_security_level = may smtpd_delay_reject = yes smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s smtpd_tls_loglevel = 1
Verweis auf Letsencrypt-Zertifikat eintragen:
smtpd_tls_cert_file = /etc/letsencrypt/live/my_server.xyz/fullchain.pem smtpd_tls_key_file = /etc/letsencrypt/live/my_server.xyz/privkey.pem
Weitere Info über Letsencrypt-Zertifikat - Artikel Apache
Relais Host absichern
Der Server darf kein offenes Relais sein.
mynetworks = 127.0.0.0/8 smtpd_client_restrictions = smtpd_helo_required = yes smtpd_helo_restrictions = smtpd_sender_restrictions = hash:/etc/postfix/access smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
Interne Weiterleitung
- Mails für mehrere Domains empfangen
mydestination = $myhostname, localhost.$mydomain, localhost, hs-schallerbach.at, nms-schallerbach.at
- Vertrauenswürdige SMTP Clients festlegen:
mynetworks_style = subnet
Alias Datenbank angeben:
alias_maps = hash:/etc/aliases
SMTP Server für lokales Netz öffnen
Postfix soll an allen Netzwerkschnittstellen Mails annehmen
# /etc/postfix/main.cf inet_interfaces = all
# etc/sysconfig/mail SMTPD_LISTEN_REMOTE="yes"
Diese Änderung kann auch mit YAST / Editor für /etc/sysconfig durchgeführt werden.
Firewall: Überprüfen, ob Port 25 geöffnet ist.
Weiterleitung
Änderung in der Datei /etc/aliases
Mails, die an root gehen, sollen zusätzlich auch an webmaster@example.com gehen. Der Eintrag \root
bewirkt, dass sie weiterhin auch an /var/mail/root
gehen
root: webmaser@example.com, \root
Nach Änderungen muss man das Programm newaliases
ausführen.
newaliases
Dann Neustart von Postfix
server:/etc # rcpostfix restart
Postfix ohne DNS Server
Damit Postfix zur Namensauflösung /etc/hosts verwendet anstatt einem Nameserver, muss folgende Direktive eingetragen werden:
smtp_host_lookup = native
Konfiguration mit Kommandozeilenprogramm
postconf -e smtp_host_lookup=native
Absenderadresse ändern
Die Absenderadresse muss geändert werden, falls Mails von root über die Konsole, z.B. durch cron, über das Internet verschickt werden sollen.
- Eintrag in
/etc/postfix/sender_canonical
root empfaenger@example.com
Dann folgenden Befehl eingeben
postmap /etc/postfix/sender_canonical
- Konfigurationsdatei überprüfen
# /etc/postfix/main.cf sender_canonical = hash://etc/postfix/sender_canonical
- Server neu starten
rcpostfix reload
Virtuelle Domains
- Konfiguration
# /etc/postfix/main.cf mydestination = $myhostname, localhost.$mydomain virtual_alias_domains = kunsttherapie-raum.at, abendmusik.at, konzept-kunst-keramik.at virtual_alias_maps = hash:/etc/postfix/virtual
- Weiterleitung an vorhandene Systembenutzer
Weiterleitung für eine bestimmte Adresse an den User "kthuser":
# /etc/postfix/virtual mail@kunsttherapie-raum.at kthuser
Weiterleitung für alle Adressen einer Domain an den User "abmus"
# /etc/postfix/virtual @abendmusik.at abmus
- Anwendung der Änderungen
postmap /etc/postfix/virtual rcpostfix reload
- Info
http://www.postfix.org/VIRTUAL_README.html
SMTP Client
Weiterleiten von Mail an Smarthost
Passwortdatei anlegen und mappen
# /etc/postfix/relay_password my_server.xyz myusername:mypassword
postmap /etc/postfix/relay_password
Umschreiben der lokalen Mailadresse
Da der private Homerechner normalerweise keine Internetdomain besitzt, verweigert der SMTP Server (Relaihost) den Versand der Nachricht.
- Durch Generic Mapping wird die lokale Absenderadresse ersetzt durch eine öffentliche Absenderadresse.
# /etc/postfix/generic root@mycomputer.localnet user@myMailServer.com
Bei der lokalen Adresse muss Hostname und Domainname angegeben werden.
postmap /etc/postfix/generic
TLS am Client aktivieren
In /etc/postfix/master.cf muss folgende Zeile aktiviert werden:
tlsmgr unix - - n 1000? 1 tlsmgr
SMTP Konfiguration
Folgende Zeilen in die postfix Konfiguration main.cf
einfügen:
relayhost = www.example.com smtp_use_tls = yes smtp_enforce_tls = no smtp_host_lookup = native
smtp_sasl_password_maps=hash:/etc/postfix/relay_password smtp_sasl_auth_enable=yes smtp_sasl_security_options= smtp_generic_maps = hash:/etc/postfix/generic
Voraussetzung: Der SMTP Server unterstützt eine verschlüsselte Verbindung über TLS.
Verschiedenes
Mailqueue
Die Queue wird auch Mailwarteschlange genannt.
- Queue ansehen
mailq
- Flushen
Es wird versucht, die Mails erneut zu versenden
postfix flush
- Gesamte Mailqueue löschen
postsuper -d ALL
- Verzögerte Nachrichten aus der Queue löschen
postsuper -d ALL deferred
POP3
Damit vom Mailclient Mails über POP3 abgeholt werden können, muss der xinetd deamon laufen. In Runlevel eintragen!
Troubleshooting
- Interface definieren
# inet_interfaces = localhost inet_interfaces = 127.0.0.1
Der Eintrag localhost funktioniert nicht, wenn in /etc/hosts auch 127.0.0.2 als localhost eingetragen ist aber das entsprechende loopback Interface nicht existiert.