Thema Dovecot: Einrichtung und Konfiguration
Abschnitt 1: Vorwort & Aufgaben von Dovecot
Wie bereits erwähnt, übernimmt **Dovecot** den Großteil der Arbeit an den Postfächern. Wenn die E-Mail die Postfix-Prüfungen bestanden hat und der Empfänger existiert, leitet Postfix die Mail per **LMTP-Protokoll** an Dovecot weiter.
Dovecot führt nun die **Sieve-Scripte** für die Domain aus und stellt die Mail im richtigen Postfach zu. Dovecot kann auch allein betrieben werden, beispielsweise als eine Art Use-Net. Mit den **Public Foldern** haben alle Benutzer jeweils Zugriff (lesen, schreiben, löschen, einstellen usw.).
Kommen wir zu den Grundlagen der Konfiguration. Dovecot hat viele kleine `.conf`-Dateien, die am Ende alle zusammen die Gesamtkonfiguration ergeben. Da Dovecot auch die Benutzerverwaltung übernimmt, erstellen wir am Schluss die User-Datei und legen die erforderlichen Ordner im System an.
Abschnitt 2: Dovecot Installation & Struktur
Die Installation haben wir bereits im **Postfix-Abschnitt** mit dem Befehl apt install ... dovecot-core ... durchgeführt.
Schauen Sie sich die Struktur im Hauptverzeichnis an:
root@mx:/etc/dovecot# ls -l
total 56
d-wx---r-- 2 root root 4096 Mai 27 20:18 conf.d
--w----r-- 1 root root 4343 Dez 4 2024 dovecot.conf
-r-------- 1 dovecot dovecot 2939 Mai 27 18:11 users
In **conf.d** liegen die eigentlichen Konfigurations-Abschnitte. Die Datei **dovecot.conf** ist die Hauptdatei, aber ohne nennenswerten Inhalt. Die Datei **users** beinhaltet später unsere ganzen Accounts.
root@mx:/etc/dovecot# ls -l conf.d/
total 140
-rw-r--r-- 1 root root 5252 Dez 4 2024 10-auth.conf
... (gekürzte Ausgabe)
-rw-r--r-- 1 root root 2182 Dez 1 2024 auth-system.conf.ext
Abschnitt 3: Wichtige Konfigurationsdateien in conf.d
🔒 10-auth.conf (Authentifizierung)
Diese Datei definiert, wie sich Benutzer anmelden dürfen. Wir erlauben nur verschlüsselte Authentifizierung und binden unser Passwort-File ein:
disable_plaintext_auth = yes
auth_username_format = %Lu
auth_mechanisms = plain login
!include auth-passwdfile.conf.ext
📜 10-director.conf (Load Balancing)
Der Director-Service wird hauptsächlich für größere Installationen mit mehreren Mailservern verwendet. Hier sehen Sie die Listener-Definitionen:
service director {
unix_listener login/director {
#mode = 0666
}
... (gekürzte Konfiguration) ...
protocol lmtp {
#auth_socket_path = director-userdb
}
📬 10-mail.conf (Postfach-Speicherort)
Dies ist zentral für die Speicherstruktur. Wir definieren hier das **Maildir-Format** und den Pfad. Die Variablen %Ld (Domain) und %Ln (User) sorgen für die korrekte Trennung der Postfächer.
mail_location = maildir:/srv/vmail/%Ld/%Ln/Maildir/
...
10-logging.conf
Hier wird das Logging-Verhalten definiert. Der Inhalt ist für uns im Moment nicht entscheidend, da wir die Standardeinstellungen nutzen.
plugin {
...
Abschnitt 4: User `vmail` und Ordnerstruktur anlegen
Lokaler User `vmail`
Damit Dovecot ausreichende Rechte zum Lesen, Schreiben und Löschen von E-Mails und Ordnern hat, legen wir einen lokalen Systembenutzer **vmail** an, jedoch **ohne Login-Recht** (/bin/false).
# Benutzer und Gruppe anlegen für Email
groupadd -g 12000 vmail
useradd -u 12000 -g 12000 -s /bin/false vmail
# Ordner für alle Emails anlegen
mkdir /srv/vmail
chown -R vmail:vmail /srv/vmail
chmod 770 /srv/vmail
Mehr müssen wir für die **persönlichen Postfächer** nicht machen, den Rest (Erstellung der Unterordner) erledigt Dovecot beim ersten Login oder beim Empfang der ersten Mail. Bei den Public Foldern ist etwas mehr manuelle Arbeit nötig.
Wichtiger Hinweis: Dovecot und Postfix sind sehr streng in der Syntax. Jeder Fehler löst eine Reihe von weiteren Fehlern aus. Lesen Sie auf jeden Fall die Logs (/var/log/mail.log und /var/log/mail.err) bei Ihren ersten Tests.
📣 Public Folder Struktur anlegen
Wir müssen die Ordnerstruktur für die **Public Folder** anlegen, damit E-Mails direkt in diese Ordner gesendet werden können (z.B. über die Adresse fail2ban@domain.com).
Dovecot wird die Struktur aus der 10-mail.conf auslesen und auf **location = maildir:/srv/vmail/public/%Ld/Maildir/** treffen. Die Variable %Ld wird als Domainname (z.B. domain.com) übersetzt.
Genau dort legen wir nun unsere Öffentlichen (Public) Ordner an. Als Beispiel die Struktur für eine Domain:
- webmaster
- hostmaster
- postmaster
- shopping
- fail2ban
- newsletter
- info
**Achtung!** Jeder Public Folder wird mit einem Punkt (.) voran geschrieben! Die Struktur sieht dann so aus (Beispiel: `.fail2ban`):
root@mx:/etc/dovecot# ls -l /srv/vmail/public/domain.com/Maildir/.fail2ban/
total 1208
drwxrwxr-x 2 vmail vmail 253952 Jul 1 21:10 cur
drwxrwxr-x 2 vmail vmail 4096 Jul 1 21:10 new
drwxrwxr-x 2 vmail vmail 4096 Jul 6 11:29 tmp
Wenn alle Ordner für alle Ihre Domains angelegt sind, setzen Sie die Berechtigung mit:
chown -R vmail:vmail /srv/vmail/public
chmod -R 775 /srv/vmail/public/
Abschnitt 5: Datenbank für die E-Mail-Benutzer anlegen
Alle Benutzer liegen in der einfachen Textdatei **/etc/dovecot/users**, wobei das Passwort mit einem starken Hash versehen wird.
Der systeminterne Benutzer vmail braucht keine Loginmöglichkeit, bekommt aber ein hochkomplexes, nicht erratbares Passwort zur Sicherung: {SHA512-CRYPT}$X.
Wir erstellen ein Passwort mit **doveadm pw -s SHA512-CRYPT** (Beispiel mit 'mypassword'):
root@mx:/etc/dovecot# doveadm pw -s SHA512-CRYPT
Enter new password: mypassword
Retype new password: mypassword
{SHA512-CRYPT}$6$t8EtOg7SKgJ8V26w$l.zf5MZhXyasSMu8yzNf6dUf4D/Wz/mRHauSnBYtu1b5b2bysgMEq0yZWPC7DB/pb8lYWobgD7ngALiE.pq2j1
Nun können wir mit folgender Zeile den ersten User anlegen. Datei öffnen mit:
nano /etc/dovecot/users
Wichtige Hinweise zum Schluss:
- Ihr öffentliches und internes DNS muss funktionieren. Alle Namen und Adressen müssen sich auflösen lassen (wichtig für die Validierung).
- Ihre Zertifikate müssen gültig sein und Ihre Systemzeit muss stimmen.
Abschnitt 6: Dovecot Version CE 2.4
Dieser Blogbeitrag basiert auf der **Dovecot Community Edition (CE) Version 2.4**. Die gezeigten Konfigurationen sind für diese Version optimiert und sollten auch mit neueren Minor-Versionen kompatibel sein.