Cyrus IMAPD

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. ⚓︎ Pakete installieren

  2. ⚓︎ Einen Editor öffnen

  3. ⚓︎ Ein Terminal öffnen

Inhaltsverzeichnis
  1. Installation der benötigten Pakete
  2. Konfiguration von Cyrus
  3. Einrichten der Authentifizierung (saslauth...
  4. Einrichten der Postfächer
  5. Einrichtung sendmail
  6. Backup
  7. Fehlersuche
  8. Links

./cyrus_logo.png Die folgende Anleitung zeigt, wie man den Cyrus 🇬🇧 IMAP-Mail-Server installiert und einrichtet. Das Cyrus-System unterstützt ebenso POP3 und NNTP für Newsgroups. Das IMAP-Protokoll ermöglicht es, Mailboxen inkl. Ordnerstruktur und Statusdaten auf dem Server vorzuhalten. So kann man sich von verschiedenen Rechnern einloggen und erhält immer ein konsistentes Bild. Außerdem beinhaltet der Cyrus-IMAP-Server mit sieve noch eine Technik, um automatische Filterung und Verteilung auf verschiedene Ordner gleich auf dem Server beim Eintreffen der elektronischen Post zu erledigen.

Installation der benötigten Pakete

Folgende Pakete müssen installiert werden [1]:

Befehl zum Installieren der Pakete:

sudo apt-get install cyrus-imapd cyrus-admin sasl2-bin sendmail 

Oder mit apturl installieren, Link: apt://cyrus-imapd,cyrus-admin,sasl2-bin,sendmail

Außerdem benötigt man als Grundvoraussetzung auf jeden Fall einen funktionierenden "Mail Transfer Agent" (MTA), z.B. Postfix, sendmail oder exim.

Konfiguration von Cyrus

Die Konfiguration des IMAP-Servers erfolgt über die Dateien /etc/imapd.conf und /etc/cyrus.conf. Die imapd.conf-Datei bedarf einiger Anpassungen, die man in einem Editor [2] mit Root-Rechten vornehmen muss:

  1. Entfernen des Kommentar-Zeichens (#) vor "admins: cyrus"

  2. Entfernen des Kommentar-Zeichens (#) vor "sasl_mech_list: PLAIN"

  3. Ändern von "sasl_pwcheck_method" in "saslauthd"

  4. auskommentieren von "sasl_auto_transition: no" (# davorsetzen)

Auszug aus der /etc/imapd.conf:

admins: cyrus
sasl_mech_list: PLAIN
sasl_pwcheck_method: saslauthd
#sasl_auto_transition: no

IMAPs ist standardmäßig nicht aktiviert. Wer sein Mails über eine verschlüsselte Verbindung abholen möchte, sollte in der Datei /etc/cyrus.conf an folgender Stelle das Kommentarzeichen # entfernen:

imaps           cmd="imapd -s -U 30" listen="imaps" prefork=0 maxchild=10

Zudem müssen pop3 und nntp auskommentiert werden, wenn man diese nicht nutzen möchte.

Anschließend muss der Cyrus-Server komplett neu gestartet werden. Ein Reload der Konfiguration reicht nicht aus.

Einrichten der Authentifizierung (saslauthd)

Die Authentifizierung, also das Überprüfen des Benutzerpassworts, wird bei Cyrus über das Simple Authentication and Security Layer (SASL) geregelt. Dieser Dienst ist in einem separaten Artikel beschrieben: Cyrus-SASL

Einrichten der Postfächer

Hinweis:

Die in Ubuntu 22.04 mitgelieferte Version enthält einen Fehler, der die Benutzung von cyradm unmöglich macht.

Bei der Installation von Cyrus hat Ubuntu bereits den Benutzer cyrus angelegt. Dieser Benutzer fungiert als Cyrus-Administrator. Damit man Postfächer anlegen kann, muss dieser Benutzer daher zunächst einmal ein Passwort erhalten:

sudo passwd cyrus 

Nun kann man in die Administationskonsole von Cyrus wechseln, welche zuerst nach dem eben gesetzten Passwort fragt und einen dann mit einem eigenen Prompt erwartet:

test@test:~$ cyradm --user cyrus --server ::1
Password: 
::1> 

Mit dem Befehl help kann man ausgeben lassen, welche Befehle die Administationskonsole versteht. Mit quit verlässt man die Konsole.

Da Cyrus die Postfächer in einer eigenen Ordnerstruktur unabhängig von den normalen Unix-Mailboxen verwaltet, muss jedes Benutzerpostfach hier mit folgenden Befehlen eigens eingerichtet werden:

cm user.karl
cm user.otto 

Hinweis:

Es ist wichtig, dass für jede Mailbox das Präfix "user." verwendet wird. Macht man dies nicht, wird eine Newsgroup erstellt.

Falls man einmal eine Mailbox löschen möchte, dann muss man dem Administratorbenutzer "cyrus" zunächst die Rechte dazu geben:

sam user.otto cyrus c #setzt für die Mailbox `user.otto` das `c`-Recht
dm user.otto # löscht die Mailbox `user.otto` 

Nun sollte man sich mit dem Mail-Client beim IMAP-Server einloggen können. Das Postfach ist natürlich noch leer, aber man kann Ordner anlegen und Mails hineinkopieren.

Weitere Informationen über die Rechte sind in der Doku 🇬🇧 zu finden.

Einrichtung sendmail

Damit Cyrus Mails empfangen kann, wird ein MTA benötigt. Cyrus empfängt die Mails mit LMTP und stellt dafür einen Unix_Domain_Socket bereit. Dieser muss vom MTA angesprochen werden und liegt standardmäßig in /run/cyrus/socket/lmtp. Jeder LMTP-kompatible MTA kann hierfür verwendet werden.

Bei sendmail muss die Datei /etc/mail/sendmail.mc editiert werden. Am Ende müssen folgende Zeilen hinzugefügt werden (confLOCAL_MAILER muss vor MAILER_DEFINITIONS stehen, der Mailer selbst danach.

dnl # Default Mailer setup
define(`confLOCAL_MAILER', `cyrusv2')dnl #kam hinzu
MAILER_DEFINITIONS
MAILER(`cyrusv2')dnl #kam hinzu
MAILER(`local')dnl
MAILER(`smtp')dnl

Dies ist nur ein Auszug aus der Konfiguration, in den meisten Situationen müssen am MTA weitere Parameter eingestellt werden, die jedoch für Cyrus keine Rolle spielen.

Backup

Vor dem Sichern der Daten sollte der Cyrus-Dienst vollständig gestoppt werden, sodass man einen konsistenten Datenbestand sichert. Danach sicher man die Verzeichnisse /var/lib/cyrus und /var/spool/cyrus. Die Konfigurationsdateien /etc/cyrus.conf und /etc/imapd.conf können ebenfalls gesichert werden.

Diese können im neuen System zurückgespielt werden.

Fehlersuche

Leider bekommt man bei vielen Fehlern keine besonders schöne Fehlermeldung.

Wenn z.B. die Authentifizierung bei cyrus nicht klappt, dann spuckt cyrus lediglich "cyradm: cannot authenticate to server as user cyrus" aus. Was der eigentliche Grund ist, muss man sich aus den Log-Files rauslesen.

Bei der Fehlersuche sollte man folgende Dateien prüfen: