Archiv/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:

  1. Installation von Programmen

  2. Ein Terminal öffnen

  3. Einen Editor öffnen

  4. Root-Rechte

Inhaltsverzeichnis
  1. Pakete installieren
  2. Konfigurieren
  3. Server starten
  4. Mögliche Probleme
  5. Zusätzliche Funktionen
  6. Links

./dovecot_logo.gif 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:

Paketliste zum Kopieren:

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