- 1 Section
- 10 Lessons
- unbegrenzt
- E-Mail-Dienste: SMTP, IMAP, POP310
- 1.1Wie E-Mail funktioniert: MTA, MDA, MUA
- 1.2SMTP: Protokoll, Ports und E-Mail-Versand
- 1.3POP3 vs. IMAP
- 1.4DNS und E-Mail: MX, SPF, DKIM, DMARC
- 1.5TLS und S/MIME: E-Mail-Verschlüsselung
- 1.6E-Mail-Server einrichten: Postfix und Dovecot
- 1.7Microsoft Exchange und Microsoft 365
- 1.8Spam-Schutz: Blacklists, Greylisting, Bayes
- 1.9E-Mail-Archivierung und Compliance
- 1.10Aufgaben E-Mail-Dienste
E-Mail-Server einrichten: Postfix und Dovecot
Auf der Linux-Seite ist die mit Abstand beliebteste Mailserver-Kombination Postfix + Dovecot. Postfix übernimmt die MTA-Rolle (Mail-Versand und Annahme via SMTP), Dovecot ist MAA (IMAP/POP3-Zugriff für die Mailclients) – und gleichzeitig oft der LMTP-MDA, der Mails ins Postfach zustellt. Beide sind Open Source, sehr stabil, mit großer Doku, und treiben heute Millionen Mailserver weltweit (Postfix übernahm in den 2000ern viel Sendmail-Marktanteil wegen seiner besseren Sicherheits-Architektur, Dovecot wuchs ähnlich gegen Cyrus IMAP). Diese Lektion zeigt dir die Architektur eines typischen Setups, die wichtigsten Konfigurationsdateien (Postfix: main.cf, master.cf; Dovecot: dovecot.conf, 10-auth.conf, 10-mail.conf), realistische Config-Snippets, die Integration von SPF/DKIM/DMARC und Anti-Spam-Tools sowie typische Stolperfallen. Wer ihn einmal sauber aufgesetzt hat, hat Postfix verstanden.
1) Architektur eines typischen Setups
Klick die Komponenten an, um Details und Beispiel-Konfiguration zu sehen:
2) Postfix-Konfigurationsdateien
Postfix hat zwei zentrale Dateien:
/etc/postfix/main.cf
Globale Konfiguration. Domain, Hostname, Netzwerk-Restriktionen, TLS-Einstellungen, Spam-Maps, Aliases.
/etc/postfix/master.cf
Service-Definitionen. Welche Daemons laufen auf welchen Ports, mit welchen Optionen (z. B. submission auf 587 mit STARTTLS + AUTH).
Daneben gibt es Tabellen für Aliase, virtuelle Domains, Transport-Regeln:
/etc/postfix/aliases– lokale Aliase (postmaster → root@example.com)/etc/postfix/virtual– virtuelle Aliase für mehrere Domains/etc/postfix/transport– Routing-Regeln/etc/postfix/sasl_passwd– Auth-Credentials für Relay-Hosts
3) main.cf – ein minimales aber produktives Beispiel
4) Postfix-Schritt-für-Schritt-Setup
Ein neues Setup grob skizziert:
- Hostname / FQDN setzen –
mail.firma.de, mit passenden DNS-Records (A, PTR, MX). - Postfix installieren –
apt install postfix, beim Setup-Dialog „Internet Site" wählen. - main.cf konfigurieren –
myhostname,mydomain,myorigin,mydestination,mynetworks. - TLS-Zertifikat besorgen – z. B. mit Let's Encrypt (
certbot). - Submission-Port aktivieren in master.cf – Port 587 mit STARTTLS + AUTH.
- Dovecot installieren –
apt install dovecot-imapd dovecot-pop3d dovecot-sieve dovecot-lmtpd. - Dovecot konfigurieren – Authentifizierung, Mail-Speicher (Maildir), SSL.
- Verbindung Postfix → Dovecot – LMTP-Socket einrichten, Postfix liefert über LMTP an Dovecot.
- Anti-Spam einrichten – Rspamd installieren, in Postfix als Milter einbinden.
- DKIM einrichten – OpenDKIM oder Rspamd-DKIM-Modul, Schlüssel generieren, DNS-Record veröffentlichen.
- SPF + DMARC im DNS einrichten – siehe DNS-Lektion.
- Tests – Mail intern, Mail nach außen, mail-tester.com mit Score-Check.
5) Wichtige Postfix-Befehle
# Postfix neuladen nach Konfig-Änderung (sanftes Reload) sudo postfix reload # Voll-Restart sudo systemctl restart postfix # Konfig-Syntax testen (vor Reload!) postfix check # Mail-Queue anzeigen postqueue -p mailq # Alternative # Queue manuell verarbeiten (alle Retries jetzt) sudo postqueue -f # Einzelne Mail aus Queue löschen sudo postsuper -d <QUEUE_ID> # Alle Queue-Mails löschen sudo postsuper -d ALL # Konfigurations-Wert anzeigen postconf myhostname postconf | grep tls # Konfigurations-Wert setzen sudo postconf -e "myhostname = mail.firma.de" # Alias-Maps neu hashen sudo postalias /etc/postfix/aliases sudo postmap /etc/postfix/virtual # Test-Mail via SMTP an localhost echo "Test" | mail -s "Test" bob@firma.de # Logs anschauen sudo journalctl -u postfix -f sudo tail -f /var/log/mail.log
6) Dovecot-Authentifizierung
Dovecot kann gegen verschiedene User-Backends authentifizieren:
| Backend | Konfiguration | Anwendungsfall |
|---|---|---|
| System-User (PAM) | passdb passwd-file / pam | Kleine Setups, jeder Mail-User ist auch ein Linux-User |
| passwd-file | einfache Klartext-Datei mit Hashes | Virtuelle User ohne Linux-Account |
| SQL-Datenbank | passdb sql + userdb sql (MySQL/PostgreSQL) | Mittlere bis große Setups, oft mit Web-Interface |
| LDAP / Active Directory | passdb ldap + userdb ldap | Enterprise, Single Sign-On |
| OAuth2 | passdb oauth2 | Modern, mit IdP wie Keycloak |
7) Sieve-Filter – Server-seitige Mail-Regeln
Sieve (RFC 5228) ist eine kleine Programmiersprache für Mail-Filter, die direkt auf dem Server laufen. Vorteil gegenüber Client-seitigen Regeln: funktioniert auch bei abgeschaltetem Mailclient, gilt überall (Webmail, Smartphone, Laptop). Beispiel:
# ~/.dovecot.sieve require ["fileinto", "imap4flags"]; # Mails von Chef in „Wichtig"-Ordner if address :is "From" "chef@firma.de" { fileinto "Wichtig"; setflag "\\Flagged"; stop; } # Newsletter wegfiltern if header :contains "List-Unsubscribe" "" { fileinto "Newsletter"; stop; } # Out-of-Office (Vacation) require "vacation"; vacation :days 7 :subject "Out of Office" "Ich bin bis 30.5. nicht erreichbar.";
Verwalten lässt sich Sieve per ManageSieve (Port 4190) – Webmail-Clients wie Roundcube bieten dafür eine UI.
8) Postfix-Sicherheits-Checks
| Check | Wirkung |
|---|---|
smtpd_helo_required = yes | Client muss HELO/EHLO senden (gegen Spam) |
smtpd_helo_restrictions | FQDN-Form prüfen, dynamische IPs ablehnen |
smtpd_sender_restrictions | Sender-Domain muss auflösbar sein (reject_unknown_sender_domain) |
smtpd_recipient_restrictions | Wichtig: reject_unauth_destination verhindert Open Relay |
smtpd_relay_restrictions | Wer darf weiterleiten? Standard: nur authentifizierte User und mynetworks |
smtpd_tls_security_level = may / encrypt | TLS-Pflicht erzwingen |
smtpd_milter | Anbindung an Rspamd, OpenDKIM, ClamAV-Milter |
fail2ban auf mail.log | IPs blocken, die wiederholt Auth-Fehler haben |
9) Antipatterns
- Postfix als Open Relay. Fehlende
reject_unauth_destination-Regel → jeder Spammer nutzt deinen Server. Lösung: smtpd_recipient_restrictions korrekt setzen. - Konfig-Änderung ohne
postfix check. Bei Syntax-Fehlern stürzt der Service ab. Erstcheck, dannreload. - LMTP-Sockets mit falschen Permissions. Postfix kann Dovecot-Socket nicht erreichen, Mails bleiben in Queue. Lösung: Socket-User und -Group prüfen.
- Maildir-Quota fehlt. Benutzer-Postfächer wachsen unbegrenzt, Disk läuft voll. Lösung: Quotas in Dovecot konfigurieren.
- Klartext-AUTH ohne TLS. Passwort im Netz. Lösung:
smtpd_tls_auth_only = yes. - Mail-Server selbst kein Patch-Management. Postfix-Server bleibt ungepatcht → CVE-Risiko. Patch-Plan auch für Mail-Komponente.
- Logs nicht rotieren. /var/log/mail.log läuft auf 50 GB. Lösung: logrotate konfiguriert lassen.
- Reverse DNS fehlt. Viele große Mail-Provider akzeptieren keine Mails ohne PTR-Record. Pflicht für jeden produktiven Postfix.
Zusammenfassung
Postfix ist der Standard-MTA in Linux-Setups: nimmt Mails über SMTP an (Port 25 server-zu-server, 587 Submission), verwaltet Queue, liefert ausgehende Mails an Empfänger. Dovecot ist Standard-MAA für IMAP/POP3-Zugriff durch Mailclients, oft auch als LMTP-MDA eingesetzt (Postfix übergibt eingehende Mails per LMTP an Dovecot). Konfig-Dateien: Postfix /etc/postfix/main.cf (Global), master.cf (Service-Definitionen) + Tabellen-Maps (aliases, virtual, transport). Dovecot: /etc/dovecot/dovecot.conf + 10-auth.conf, 10-mail.conf, 10-master.conf, 10-ssl.conf. Auth-Backends: PAM, passwd-file, SQL, LDAP/AD, OAuth2. Anti-Spam meist über Rspamd als Milter, DKIM via OpenDKIM oder Rspamd-Modul. Server-seitige Filter via Sieve (ManageSieve auf 4190). Sicherheits-Kernpunkte: reject_unauth_destination, TLS-Pflicht, fail2ban gegen Brute-Force, korrekte Reverse DNS, Maildir-Quotas. Wichtige Befehle: postfix reload, postfix check, postqueue -p, postsuper -d, postconf. Antipatterns: Open Relay, Konfig ohne Syntax-Check, fehlende Quotas, Klartext-AUTH, fehlendes Patch-Management des Mailservers selbst.
Verwandte Lektionen: SMTP-Protokoll · POP3 vs. IMAP · DNS und E-Mail · und mehrWeitere relevante LektionenTLS & S/MIMESpam-SchutzExchange/M365systemd-DienstePaketverwaltungPatch-ManagementAnsible
