Postfix

Aus Mediawiki Ferdinand Gruber
Zur Navigation springen Zur Suche springen

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.