Dovecot für den Zugriff auf die Emails (IMAP/POP3) Howto

Wie schon beschrieben setze ich Dovecot als IMAP Server ein. Hier gibt es natürlich viele Alternativen. Warum ich Dovecot einsetze ist schnell erklärt. Der Dienst ist erstaunlich sparsam was den Ressourcenverbrauch angeht. Davon habe ich auf meinem Via System leider nicht allzu viele. Er begnügt sich mit wenig Arbeitsspeicher, ist sicher und vor allem sehr einfach zu konfigurieren. Dazu trägt vor allem die sehr gut Kommentierte und simple aufgebaute Konfigurationsdatei bei (/etc/dovecot/dovecot.conf).

Als Protokolle benutze ich lediglich IMAPS (Verschlüssele Verbindung zum Server). Möglich sind IMAP (Port 143), IMAPS (Port 993), POP3 (Port 110), POP3S (Port 996). Die Protokolle, die man nicht benutzt sollte man am besten gleich deaktivieren. Das schont nicht nur die Rechnerressourcen, sondern sorgt auch dafür, dass wir nicht unnötig potentielle Sicherheitslücken auf unserem Server schaffen (z.B. durch ein Problem der POP3 Implementierung, das noch nicht gefixt ist wobei wir POP3 vielleicht gar nicht benötigen…) Man sollte stets eine verschlüsselte Verbindung zum Server aufbauen. Somit ist in der Regel sichergestellt, dass Unbefugte nicht in der Lage sind, die Daten im Klartext mitzulesen (Z.B. Benutzername, Passwort, Mailtexte, Adressen etc.) Beginnen wir nun mit der Konfiguration:

protocols = imaps

Aufgrund der Verschlüsselung würde ich ausschließlich die secure Varianten der jeweiligen Protokolle verwenden, also imaps und pop3s.

ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem

Als Zertifikate bietet es sich an, die selben wie beim Postfix zu benutzen. Ansonsten erstellen wir uns unsere Zertifikate wie folgt. Die Pfade kann man nach eigenem ermessen ändern. Wichtig ist jedoch das man die Zertifikate über Berechtigungen schützt – besonders den Private Key. Dieser sollte nur vom Besitzer lesbar sein (chmod 600 dovecot.key).

openssl genrsa -out dovecot.key 2048

RSA Schlüssel mit 2048 Bit Länge erstellen.

openssl req -new -key dovecot.key -out dovecot.csr

Wir weisen openssl an, einen CSR (Certificate Signing Request) zu erstellen. Der Common Name (CN) muss auf den FQDN des Server gesetzt werden, also den vollqualifizierten Namen (mailserver.domain.org). Trägt man hier einen anderen Namen ein gibt es Probleme bei der Überprüfung des Zertifikats durch den Client (der aufgerufene Hostname passt dann nicht zu dem im Zertifikat hinterlegten Namen).

openssl x509 -req -days 3800-in dovecot.csr -out dovecot.cert -signkey dovecot.key

Wir weisen openssl an ein selbst signiertes Zertifikat zu erstellen, dass 3800 Tage gültig ist.

disable_plaintext_auth = yes

Es werden lediglich verschlüsselte Login-Versuche vom Server akzeptiert. Passwörter im Klartext können somit nicht verwendet und übertragen werden.

default_location = maildir:%h/mails

Die Anpassung sorgt dafür, dass die Emails nicht unter /var/mail gesucht werden, sondern wie gewünscht im Home-Verzeichnis des entsprechenden Benutzers im Unterordner mails. Denn hier legt unser Postfix respektive procmail die empfangenen Emails ab.

auth default {
  mechanisms = plain

  userdb passwd {
  }

  passdb shadow {
  }

  user = root
}

Über den Parameter mechanisms = plain wird Dovecot angewiesen, plain text login zu verwenden. Da wir ausschließlich verschlüsselte Verbindungen benutzten muss das Passwort selbst nicht auch noch mal extra verschlüsselt werden (kann man natürlich trotzdem machen).

Da wir für jedes Konto einen Systembenutzer voraussetzen, werden die Benutzeranfragen gegen die Dateien /etc/passwd oder /etc/shadow geprüft.

Als Benutzer geben wir root an. Dieser kann auf die Passwortdateien zugreifen.

Um das Loggingverhalten von Postfix zu verändern bedienen wir uns der folgenden selbsterklärenden Zeilen:

log_path =/var/log/dovecot/dovecot.log
info_log_path = /var/log/dovecot/dovecot.info
log_timestamp = "%d-%m-%Y %H:%M:%S "
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c

Das Verzeichnis „/var/log/dovecot“ muss unter Umständen mit dem folgendem Befehl angelegt werden:

mkdir -p /var/log/dovecot

Mittels des SSL Parameters konfigurieren wir Dovecot so, dass er nicht nach Clientzertifikaten fragt.

ssl_verify_client_cert = no

Den Begrüßungsschriftzug können wir mit dem folgenden Parameter verändern:

login_greeting = Welcome to IMAP Server XYZ.

Das war’s dann auch schon mit der Konfiguration. Dovecot mittels „/etc/init.d/dovecot“ neustarten und die Einstellungen sind aktiv.



	

About the author