Cyrus IMAPD
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 22.10 Kinetic Kudu
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
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]:
cyrus-imapd (universe, der IMAP-Teil des Mail-Servers Cyrus )
cyrus-admin (universe, Administrations-Tools für cyrus )
sasl2-bin (benötigt cyrus zum Authentifizieren der Benutzer)
sendmail (universe, MTA zum Empfangen von Mails)
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:
Entfernen des Kommentar-Zeichens (#) vor "admins: cyrus"
Entfernen des Kommentar-Zeichens (#) vor "sasl_mech_list: PLAIN"
Ändern von "sasl_pwcheck_method" in "saslauthd"
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:
Cyrus schreibt Fehlermeldungen standardmäßig nach /var/log/mail.err oder /var/log/mail.info
saslauthd nutzt dazu die Datei /var/log/auth.log
Links¶
Homepage 🇬🇧