Mailserver Workshop Basis Konfiguration

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Postfix: Einführung in main.cf und master.cf

Postfix verwendet zwei zentrale Konfigurationsdateien zur Steuerung des Mail-Transports und der Dienste.

main.cf (Hauptkonfiguration)

  • Enthält die grundlegenden Einstellungen für Postfix
  • Definiert Parameter wie Domain, Relay-Regeln und Authentifizierung
  • Typische Einstellungen:
    • myhostname – Hostname des Mailservers
    • mydestination – Akzeptierte lokale Domains
    • relayhost – Weiterleitungsziel für ausgehende Mails
    • smtpd_recipient_restrictions – Regeln für eingehende E-Mails

master.cf (Dienstkonfiguration)

  • Steuert, welche Postfix-Dienste aktiv sind
  • Legt fest, welche Prozesse auf bestimmten Ports lauschen
  • Wird verwendet, um Maildienste wie SMTP, Submission oder LMTP zu aktivieren
  • Typische Einstellungen:
    • smtp – Standard-SMTP-Dienst für eingehende Mails
    • submission – SMTP-Dienst für authentifizierte Clients
    • lmtp – Local Mail Transfer Protocol zur Zustellung an Dovecot

Erklärung der main.cf

/etc/postfix/main.cf

# Siehe /usr/share/postfix/main.cf.dist für eine kommentierte, vollständigere Version
# Debian-spezifisch: Wenn ein Dateiname angegeben wird, wird die erste Zeile dieser Datei
# als Name verwendet. Der Debian-Standard ist /etc/mailname.
#myorigin = /etc/mailname

# Begrüßungsbanner für SMTP-Verbindungen
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)

# Deaktiviert Biff, das sonst Benachrichtigungen über neue Mails an lokale Benutzer sendet
biff = no

# Das Anhängen der Domain an lokale E-Mail-Adressen ist Aufgabe des Mail-Clients (MUA)
append_dot_mydomain = no

# Zeit, nach der eine verzögerte Zustellwarnung gesendet wird (auskommentiert)
#delay_warning_time = 4h

# Deaktiviert das README-Verzeichnis für Benutzer
readme_directory = no

# Siehe http://www.postfix.org/COMPATIBILITY_README.html -- Standard ist 3.6 bei neuen Installationen
compatibility_level = 3.6

# TLS-Parameter (Zertifikate für verschlüsselte Verbindungen)
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  # TLS wird unterstützt, aber nicht erzwungen

# TLS für ausgehende SMTP-Verbindungen
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may  # TLS wird für ausgehende Verbindungen unterstützt, aber nicht erzwungen
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# Regeln für das Relaying (Weiterleiten) von E-Mails
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination

# Hostname dieses Mailservers
myhostname = ns.it113.int

# Pfad zur Aliase-Datei, die E-Mail-Aliasnamen speichert
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

# Ursprungsdomain für ausgehende Mails
myorigin = /etc/mailname

# Lokale Domains, für die dieser Server E-Mails annimmt
mydestination = $myhostname, ns.it113.int, localhost.it113.int, , localhost

# Standard-Relay-Host (leer, d.h. keine Weiterleitung an einen anderen Server)
relayhost =

# Netzwerke, die ohne Authentifizierung E-Mails über diesen Server senden dürfen
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

# Maximale Postfachgröße (0 bedeutet unbegrenzt)
mailbox_size_limit = 0

# Trennzeichen für Adressvarianten (z.B. user+info@example.com)
recipient_delimiter = +

# Auf welchen Netzwerk-Schnittstellen Postfix lauscht (hier: alle)
inet_interfaces = all

# Unterstützte Internetprotokolle (IPv4 und IPv6)
inet_protocols = all

Änderungen

Wir ändern diese Zeile

mydestination = $myhostname, ns.it113.int, localhost.it113.int, it113.int, localhost

Nir so nimmt Postfix auch die Mails für diese Domain an.


Maildirformat

Wir fügen an
home_mailbox=Maildir/
mailbox_command =
  • systemctl start postfix

Postfix Handling

Man kann Postfix über systemctl ganz normal steuern

  • systemctl start postfix
  • systemctl status postfix
  • systemctl stop postfix
  • systemctl restart postfix

Man kann Postfix aber auch postfix steuern

  • postfix status
  • postfix start
  • postfix stop
  • postfix reload
  • postfix check

Logging

  • journalctl -f -u postfix@-.service
Mar 14 12:51:38 ns.it113.int systemd[1]: Starting postfix.service - Postfix Mail Transport Agent...
Mar 14 12:51:38 ns.it113.int systemd[1]: Finished postfix.service - Postfix Mail Transport Agent.
Mar 14 12:56:38 ns.it113.int systemd[1]: postfix.service: Deactivated successfully.
Mar 14 12:56:38 ns.it113.int systemd[1]: Stopped postfix.service - Postfix Mail Transport Agent.
Mar 14 12:56:38 ns.it113.int systemd[1]: Stopping postfix.service - Postfix Mail Transport Agent...
Mar 14 12:56:39 ns.it113.int systemd[1]: Starting postfix.service - Postfix Mail Transport Agent...
Mar 14 12:56:39 ns.it113.int systemd[1]: Finished postfix.service - Postfix Mail Transport Agent.

Wir legen 2 User an

  • useradd -m -s /bin/bash martha
  • useradd -m -s /bin/bash leroy
  • passwd martha
  • passwd leroy

/etc/postfix/master.cf

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (no)    (never) (100)
# ==========================================================================
smtp      inet  n       -       y       -       -       smtpd
pickup    unix  n       -       y       60      1       pickup
cleanup   unix  n       -       y       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       y       1000?   1       tlsmgr
rewrite   unix  -       -       y       -       -       trivial-rewrite
bounce    unix  -       -       y       -       0       bounce
defer     unix  -       -       y       -       0       bounce
trace     unix  -       -       y       -       0       bounce
verify    unix  -       -       y       -       1       verify
flush     unix  n       -       y       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       y       -       -       smtp
relay     unix  -       -       y       -       -       smtp
        -o syslog_name=postfix/$service_name
showq     unix  n       -       y       -       -       showq
error     unix  -       -       y       -       -       error
retry     unix  -       -       y       -       -       error
discard   unix  -       -       y       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       y       -       -       lmtp
anvil     unix  -       -       y       -       1       anvil
scache    unix  -       -       y       -       1       scache
postlog   unix-dgram n  -       n       -       1       postlogd
maildrop  unix  -       n       n       -       -       pipe
  flags=DRXhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp      unix  -       n       n       -       -       pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix -       n       n       -       2       pipe
  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman   unix  -       n       n       -       -       pipe
  flags=FRX user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}

Postfix: master.cf (Dienststeuerung)

Die Datei /etc/postfix/master.cf steuert die Dienste, die Postfix starten und verwalten soll. Hier werden die Mail-Transporte und internen Prozesse konfiguriert.

Wichtige Dienste in master.cf

  • smtp – Standard-SMTP-Dienst für den Empfang von E-Mails
  • pickup – Holt Mails aus der lokalen Warteschlange zur Verarbeitung
  • qmgr – Mail-Queue-Manager, der Mails zur Zustellung verwaltet
  • cleanup – Bereinigt und formatiert eingehende Mails
  • local – Zustellung von Mails an lokale Benutzer
  • virtual – Zustellung an virtuelle Domains oder Benutzer
  • lmtp – Local Mail Transfer Protocol für die Übergabe an Dovecot
  • relay – SMTP-Relay-Dienst für den Versand von Mails

Erweiterungen möglich

Falls erforderlich, können hier weitere Dienste aktiviert oder geändert werden, z. B.:

  • Submission-Port aktivieren (587) für authentifizierte Clients
  • Spamfilter oder Virenscanner über pipe-Dienste integrieren

Diese Datei sollte nur geändert werden, wenn spezielle Anforderungen bestehen, da Postfix die meisten Funktionen bereits mit den Standardeinstellungen abdeckt.