Inhaltsverzeichnis

Benno IMAP

Benno IMAP (benno-imap) ist für die Synchronisation der E-Mails aus IMAP Mailboxen vorgesehen. Hierbei werden die E-Mails in regelmäßigen Abständen vom IMAP-Server in das MailArchiv importiert.

Zum einmaligen Import bestehender E-Mail Bestände sollte er Import per POP3 (mittels benno-pop3) oder IMAP (mittels benno-imapimport) durchgeführt werden.

Die Anbindung an das E-Mail System sollte möglichst direkt über die hiefür vorgesehenen Schnittstellen erfolgen.

Die Anbindung per IMAP sollte nur dann konfguriert werden, falls keine direkte Anbindung möglich ist. Hier besteht systembedingt die Gefahr, daß E-Mails auf dem IMAP-Server gelöscht werden, bevor sie archiviert wurden.

Installation

Die für diese Funktionalität benötigten Software-Komponenten werden mit Hilfe des Pakets benno-imap installiert.

Bei Nutzung einer MySQL Datenbank werden zusätzlich die Pakete python-mysqldb und php-mysql benötigt. Darüber hinaus muss in der MySQL Datenbank noch die Relation imapuser angelegt werden, sowie die Konfiguration in /etc/benno-imap/imapauth.conf bzw. /etc/benno-imap/imapsync.conf angepasst werden.

Konfiguration

Schlüsselpaar zur Speicherung der Passwörter

Die IMAP Passwörter werden reversibel verschlüsselt in der Datenbank gespeichert. Das Schlüsselpaar wird bei der Installation automatisch angelegt und in den Dateien /etc/benno-imap/benno-imap.pub und /etc/benno-imap/benno-imap.sec gespeichert.

Die Schlüssel können auch nachträglich erstellt werden.

Konfiguration der Schlüssel

Der private Schlüssel wird in der Konfigurationsdatei von benno-imapsync (/etc/benno-imap/imapsync.conf) festgelegt.

ACHTUNG! Der private Schlüssel sollte möglichst nicht auf Systemen gespeichert werden, die direkt aus dem Internet erreichbar sind. In diesem Fall sollte der Parameter keyfile auskommentiert werden.
In einem solchen Fall erwartete benno-imapsync den privaten Schlüssel als Datenstrom auf STDIN. Ein solches Setup ermöglicht die Übergabe des Schlüssels per PIPE von einem anderen Host aus einer gesicherten Umgebung.

Authentisierung am Web-Interface

Die Authentisierung erfolgt gegen den IMAP-Server des Benutzers mit Hilfe des externen Authentisierungs-Moduls benno_imapauth.

Die Aktivierung des Authentisierungs-Moduls erfolgt, indem es perl Symlink in den Authentisierungs-Stack aufgenommen wird.

ln -s /usr/lib/benno-imap/benno_imapauth /etc/benno-web/auth.d/60_benno_imapauth

Konfiguration benno_imapauth

Die Konfiguration für das Authentisierungs-Modul benno_imap ist in der Datei /etc/benno-imap/imapauth.conf gespeichert. Diese Datei ist im INI-Format ausgeführt (https://de.wikipedia.org/wiki/Initialisierungsdatei) und muss für den User des Webservers lesbar sein.

Nach erfolgreicher Authentisierung gegen den IMAP-Server wird das Passwort mit dem Public-Key verschlüsselt und in der internen Datenbank gespeichert.

Benutzer verwalten

Benutzer anlegen

Ein neuer Benutzer wird mit dem Program benno-imapuser angelegt, falls das Programm mit -u <username> -i <imaphost> -C <container> aufgerufen wird. Das Programm kann unterschiedliche IMAP-Server abfragen, so daß die Möglichkeit besteht daß ein Username auf mehreren Server vorkommen kann. Daher wird ein Benutzer durch den „<username>“ und den „<imaphost>“ eindeutig identifizert werden kann.

Nicht übergebenen Parameter werden mit den Defaultparametern der Konfigurationsdatei vorbelegt.

benno-imapuser -u benno@lw-systems.net -i imap.lw-systems.net -C BennoContainer \
  -n 'Benno LWsystems' -e benno@lw-systems.net,info@lw-systems.net

Das Passwort wird nach jeder erfolgreicher Anmeldung am Benno MailArchiv Web-Interface in der Datenbank gespeichert. Alternativ kann es direkt beim Anlegen des Benutzers mit dem Parameter -p angegeben werden.

Benutzer löschen

Mit benno-imapuser -D -u <username> -i <imaphost> wird der Benutzer aus der Datenbank gelöscht. Damit wird auch keine Synchronisation des IMAP Kontos mehr vorgenommen. Es sind beide Angaben notwendig, da ein IMAP-User nur so eindeutig identifiziert werden kann.

Die Ausgabe von benno-imapuser -l gibt zeilenweise die Benutzer und IMAP-Host Parameter aus, so ggfs. direkt kopiert und eingefügt werden können.

Benutzerpasswort ändern

Falls das Passwort eines Benutzers auf dem IMAP-Server geändert wird, muss sich der Benutzer einmal mit diesem Passwort am Web-Interface anmelden. Dann wird das neue Passwort in der Datenbank gespeichert und die E-Mails können vom IMAP-Server importiert werden.

Alternativ kann das Passwort mit dem Kommando benno-imapuser -u <username> -p <password> geändert werden.

Import von E-Mails

Der Import von neuen E-Mails erfolgt mit dem Programm benno-imapsync. Die Konfiguration erfolgt in der mit dem Parameter -c übergebenen Datei (/etc/benno-imap/imapsync.conf). Hier können Beispielsweise Ordner wie Drafts von der Synchronisation ausgeschlossen werden.

Die zu importierenden Accounts werden aus der Tabelle „imapuser“ gelesen. Das Passwort wird mit dem privaten Schlüssel (imapsync.conf: keyfile = …) entschlüsselt.

Falls hier die Meldung „RSA key format is not supported“ ausgegeben wird, wurde versehentlich ein RSA-Key statt des 3DES Keys erstellt / konfiguriert.

Cron-Job

Für die regelmäßige Abholung wird der Cron-Job in der Datei /etc/cron.d/benno-imap durch Entfernen des Kommentarzeichens zu Beginn der Zeile mit dem Kommandoaufruf aktiviert.

#
# Start IMAP import every 15 minutes
#
#*/15 *   * * *   benno [ -x /usr/sbin/benno-imapsync ] && /usr/sbin/benno-imapsync -c /etc/benno-imap/imapsync.conf -f /var/log/benno/imapsync.log