Dovecot 1
Archivierte Anleitung
Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.
Anmerkung: Der aktuelle Artikel ist: Dovecot 2
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Dovecot 🇬🇧 ist ein Open Source E-Mailserver für Linux, der die Protokolle IMAP und POP3 unterstützt. Seine Spezialität sind kleine Netzwerke (200 Mailboxen) bis hin zu großen Firmennetzwerken (über 1000 Mailboxen). Die Daten werden im mbox- bzw. Maildir-Format abgelegt und können so leicht migriert oder in E-Mail Clients genutzt werden, die lokal auf die Daten zugreifen. Des Weiteren müssen keine Benutzer angelegt werden. Jeder lokale Benutzer kann sich direkt auf dem Mailserver mit seinem Login/Passwort einloggen.
Dieser Artikel beschreibt die Funktionalität von Dovecot 1.x. Der ab Ubuntu 12.04 vorhandene Nachfolger wird im Artikel Dovecot 2 beschrieben.
Pakete installieren¶
Dovecot ist in drei Pakete aufgeteilt. Folgende Pakete müssen installiert [1] werden:
dovecot-core
dovecot-imapd (optional )
dovecot-pop3d (optional)
Befehl zum Installieren der Pakete:
sudo apt-get install dovecot-core dovecot-imapd dovecot-pop3d
Oder mit apturl installieren, Link: ,dovecot-imapd,dovecot-pop3d
Die Protokoll-Pakete sind optional: Wer Dovecot z.B. als reinen IMAP-Server nutzen möchte, braucht dovecot-pop3d nicht zu installieren; umgekehrt gilt natürlich dasselbe.
Konfigurieren¶
Dovecot wird über die Konfigurationsdatei /etc/dovecot/dovecot.conf konfiguriert. Diese muss mit einem Editor [3] mit Root-Rechten [4] geöffnet und vor dem ersten Start des Servers bearbeitet werden.
Protokolle¶
In den Standardeinstellungen sind die zu benutzenden Protokolle noch nicht eingetragen. Je nachdem, was installiert wurde, müssen hier
# Protocols we want to be serving: # imap imaps pop3 pop3s protocols = imap imaps pop3 pop3s
die gewünschten Protokolle eingetragen werden.
SSL-Zertifikat¶
Möchte man auch die verschlüsselten Protokolle imaps bzw. pop3s nutzen, so benötigt man ein SSL-Zertifikat. Für den Privatanwender reicht es sicherlich, ein selbst generiertes Zertifikat zu verwenden. Dovecot nutzt standardmäßig das bei der Installation automatisch mittels des doc/mkcert.sh-Scriptes erstellte Zertifikat, so dass eine weitere Konfiguration nicht nötig ist. Möchte man ein anderes Zertifikat verwenden, muss das Kommentarzeichen vor den Zeilen
# ssl_cert_file = /etc/ssl/certs/dovecot.pem # ssl_key_file = /etc/ssl/private/dovecot.pem
entfernt werden und der Pfad zum SSL-Zertifikat und SSL-Schlüssel geändert werden, z.B.:
# PEM encoded X.509 SSL/TLS certificate and private key. They're opened before # dropping root privileges, so keep the key file unreadable by anyone but # root. ssl_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem ssl_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
(siehe ssl-cert).
Einloggen mit Klartextpasswort¶
Achtung!
Diese Option sollte nicht geändert werden, ist hier jedoch der Vollständigkeit halber aufgelistet.
Dovecot erlaubt in der Standardinstallation nicht, dass sich Benutzer ohne eine Verschlüsselung wie TLS bzw. SSL einloggen. Dadurch wird gewährleistet, dass das Passwort nie unverschlüsselt übertragen wird. Dies ist eine wichtige Sicherheitseinrichtung, weil ja das Login/Passwort identisch mit dem Login des ganzen Systems ist.
Möchte jemand wider besserem Wissen unverschlüsselte Logins zulassen, so muss dies in der dovecot.conf aktiviert werden.
# Disable LOGIN command and all other plaintext authentications unless # SSL/TLS is used (LOGINDISABLED capability). Note that 127.*.*.* and # IPv6 ::1 addresses are considered secure, this setting has no effect if # you connect from those addresses. disable_plaintext_auth = no
Server starten¶
Nachdem der Server korrekt konfiguriert wurde, kann man ihn aus einem Terminal heraus [2] über den Befehl
sudo /etc/init.d/dovecot restart
bzw. ab Ubuntu 10.10
sudo service dovecot restart
neu starten. Mehr zu dem Thema bei Dienste.
Mögliche Probleme¶
Es kann vorkommen, dass der POP3-Zugang augenscheinlich funktioniert, aber die Mailbox fälschlicherweise dauerhaft leer erscheint. Einträge folgender Art tauchen im Syslog auf:
Dec 4 18:42:27 ubuntu-server dovecot: pop3-login: Login: user=<abc>, method=PLAIN, rip=192.168.2.2, lip=192.168.2.10, TLS Dec 4 18:42:27 ubuntu-server dovecot: child 6821 (pop3) returned error 89 Dec 4 18:52:27 ubuntu-server dovecot: pop3(abc): pop3_uidl_format setting is missing from config file
In diesem Fall muss die Zeile pop3_uidl_format in /etc/dovecot/dovecot.conf wie folgt geändert werden:
pop3_uidl_format = %08Xu%08Xv
Zusätzliche Funktionen¶
Sieve: Mails auf dem Server filtern¶
Seit der in Ubuntu Edgy Eft 6.10 enthaltenen Version von Dovecot ist es möglich Mails schon auf dem Mailserver sortieren zu lassen. So kann man beispielsweise als SPAM markierte Nachrichten gleich in einem "Spam"-Ordner schieben lassen oder Mailinglisten in dafür bereitgestellte Ordner sortieren.
Anwender, die über eine Webmail-Applikation oder verschiedene Mailprogrammen ihre E-Mails lesen, wissen den Komfort sicherlich zu schätzen, dass E-Mails automatisch sortiert werden, ohne dass man im jeweiligen Programm Filter einrichten muss.
Hinweis:
Im Folgenden werden viele Fachbegriffe wie LDA, MTA usw. verwendet. Es wird hier nicht näher auf diese Begriffe eingegangen, da das Verständnis über sie für die Umsetzung nicht relevant ist. Wer weiterführende Informationen sucht, findet unter Mailserver Einführung Grundwissen über die Funktionsweise eines Mailservers.
Dovecot als LDA¶
Dovecot besitzt mit der Anwendung deliver
einen eigenen LDA (Local Delivery Agent), der von einem im System vorhandenen MTA (Mail Transfer Agent) genutzt werden kann. Die Anleitung beschränkt sich auf Postfix als MTA. Hinweise zur Konfiguration weiterer MTA für den Einsatz mit deliver
findet man im Dovecot-Wiki unter LDA 🇬🇧 .
Postfix muss nun gesagt werden, deliver zu nutzen. Dies geschieht in der Konfigurationsdatei von Postfix, /etc/postfix/main.cf, über den Eintrag,
mailbox_command = /usr/lib/dovecot/deliver
der an einer beliebigen Stelle eingefügt [3] werden kann. Damit Postfix diese Änderung berücksichtigt, muss Postfix seine Konfiguration nun neu einlesen:
sudo /etc/init.d/postfix reload
Sieve aktivieren¶
Nun muss LDA in der Konfiguration von Dovecot aktiviert werden. Dazu muss man in der Konfigurationsdatei von Dovecot /etc/dovecot/dovecot.conf unter protocol lda
Sieve aktivieren und die E-Mail-Adresse des "Postmasters", also der Adresse an die Mails weitergeleitet werden, die nicht zugestellt werden können, eintragen. Diese E-Mail-Adresse kann ein lokaler Benutzer des Systems oder eine „richtige“ E-Mail-Adresse sein. Vor Ubuntu 10.4 wurde das Plugin cmusieve
anstatt sieve
verwendet.
protocol lda { # Address to use when sending rejection mails. postmaster_address = benutzername@localhost ... # Enabling Sieve plugin for server-side mail filtering mail_plugins = sieve }
Da der LDA deliver
mit den Rechten des Benutzers ausgeführt wird, an den die Mail zugestellt wird, ist es nötig die Dateirechte der Datei /etc/dovecot/dovecot.conf zu ändern. Diese Datei darf standardmäßig nur von Root gelesen werden, deliver muss sie jedoch lesen können. Mittels
sudo chmod 644 /etc/dovecot/dovecot.conf
passt man die Rechte so an, dass jeder Benutzer die Datei lesen darf. Da in dieser Datei keine vertraulichen Informationen stehen, ist dies kein Problem.
Filterregeln definieren¶
Jeder Benutzer kann nun Sieve-Filterskripte in seinem Homeverzeichnis unter ~/.dovecot.sieve anlegen. Sobald diese Datei angelegt wurde, wird sie von deliver beim Eintreffen einer E-Mail beachtet. Ein einfaches Skript würde beispielsweise so
require "fileinto"; if header :contains "subject" ["beispiel"] { fileinto "beispielordner"; } else { # The rest goes into INBOX # default is "implicit keep", we do it explicitly here keep; }
aussehen. Hier würden E-Mails mit "beispiel" im Betreff in den Ordner "beispielordner" geschoben werden. Natürlich kann man deutlich komplexere Skripte erstellen. Beispiele und Informationen hierzu findet man im Dovecot Wiki unter LDA/Sieve 🇬🇧 oder auch unter fastmail.fm 🇬🇧, wobei hier sehr aufwändige Skripte zu finden sind.
Sieve-Probleme¶
Fehler beim Starten von Dovecot unter Ubuntu Lucid Lynx 10.04¶
Nach einem Upgrade auf Ubuntu Lucid Lynx 10.04 kommt es beim Start von Dovecot mit aktiviertem sieve zu folgendem Fehler:
sudo /etc/init.d/dovecot start
* Starting IMAP/POP3 mail server dovecot Error: Error in configuration file /etc/dovecot/dovecot.conf line 691: Unknown setting: sieve
Ursache: Ubuntu Lucid Lynx 10.04 enthält Dovecot 1.2.9 und damit wurde vom alten Plugin "cmusieve" auf das neue Plugin "sieve" gewechselt, welches Dovecot 1.2 oder neuer erfordert (siehe Dovecot Wiki unter LDA/Sieve 🇬🇧)
Abhilfe schaffen in diesem Fall folgende Änderungen in der /etc/dovecot/dovecot.conf (Backup der Original-dovecot.conf nicht vergessen):
1. cmusieve heißt jetzt sieve, also:
# Enabling Sieve plugin for server-side mail filtering mail_plugins = sieve
2. Der Hinweis auf den Ort der eigenen Filterdatei muss in die plugin {}
-Sektion verschoben werden, also:
Zuerst Auskommentieren der folgenden Zeilen in der Sektion protocol managesieve {}
#sieve=~/.dovecot.sieve
und
#sieve_storage=~/sieve
danach Einfügen der Zeile
sieve=~/.dovecot.sieve
in der plugin {}
- Sektion am Ende der dovecot.conf:
plugin { sieve=~/.dovecot.sieve [...] }
3. Danach dovecot wieder wie folgt starten.
sudo /etc/init.d/dovecot start
Links¶
Dovecot-1.x-Wiki 🇬🇧 - ausführliche Dokumentation
ISP Mail Server mit Exim 4, Dovecot, MySQL und SpamAssassin 🇩🇪 - Blogbeitrag, 02/2009
Dovecot-Authentifizierung mit SSL 🇩🇪 - Blogbeitrag, 05/2008
Dovecot, Exim, OpenLDAP und getmail unter Ubuntu – (1) OpenLDAP 🇩🇪 - Blogbeitrag, 03/2009
Serverdienste Übersichtsartikel