Benutzer-Werkzeuge

Webseiten-Werkzeuge


benno-imap

Dies ist eine alte Version des Dokuments!


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 generell 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 php5-mysql benötigt.

Konfiguration

Authentisierung am Web-Interface

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

Das Authentisierungs-Modul wird in der Konfigurationsdatei /etc/benno-web/benno.conf festgelegt.

EXTERNAL_AUTH = /usr/lib/benno-imap/benno_imapauth

Konfiguration Authentisierungsmodul

Die Konfiguration für das Authentisierungs-Modul „benno_imap“ wird 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 wird das Passwort in der Datenbank /var/lib/benno-web/bennoweb.sqlite in der Tabelle „imapuser“ gespeichert. Vor dem Speichern wird es mit dem Public-Key (imapauth.conf: keyfile =) verschlüsselt.

Schlüsselpaar zur Speicherung der Passwörter

Die IMAP Passwörter werden reversibel verschlüsselt in der Datenbank gespeichert.Das Schlüsselpaar hierfür wird mit OpenSSL angelegt.

Privaten Key + Zertifikat erstellen

openssl req -newkey rsa:2048 -new -sha256 -x509 -days 3650 -keyout benno-imap.rsakey -out benno-imap.crt

Privaten Key konvertieren

openssl rsa -outform der -des3 -in benno-imap.rsakey > /etc/benno-imap/benno-imap.key

Public Key aus Zertifikat extrahieren

openssl x509 -outform der -pubkey -noout -in benno-imap.crt > /etc/benno-web/benno-imap.pub

X509 Zertifikatsdateien löschen

Die Zertifikatsdateien benno-imap.rsakey und benno-imap.crt werden nicht mehr benötigt und können gelöscht werden.

Konfiguration der Schlüssel

Der private Schlüssel wird in der Konfigurationsdatei von benno-imapsync (/etc/benno-imap/imapsync.conf) festgelegt. Das Passwort für den Schlüssel kann hier ebenfalls konfiguriert werden.

Falls kein Schlüssel angegeben ist, liest benno-imapsync beim Start den unverschlüsselten Schlüssel von STDIN. Dieser kann z.B. von Remote übergeben werden. Falls der Schlüssel angegeben wird, aber keine Passphrase, wird beim Start versucht, diese von STDIN zu lesen.

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.

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

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

Das Passwort kann optional übergeben werden. Andernfalls wird es mit einem erfolgreichem Login am Web-UI in der Datenbank gespeichert.

Benutzer löschen

Mit benno-imapuser -D -u <username> wird der Benutzer aus der Datenbank gelöscht. Damit wird auch keine Synchronisation des IMAP Kontos mehr vorgenommen.

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.

Konfiguration des Imports

Der private Key der verschlüsselten Passwörter sollte nie auf dem Server gelagert werden. Der Import kann per Cron-Job von einem System aus dem internen Netz getriggert werden, wobei der Key per STDIN übergeben wird.

Als Beispiel sei die folgende Konfiguration vorgeschlagen.

Interner Host

Ein Cron-Job auf dem internen System startet das Script zum Aufruf der Synchronisation.per ssh und übergibt den privaten Schlüssel auf STDIN.

cat $KEYFILE | ssh -q benno@$CLOUDHOST '/etc/benno-imap/benno-imapsync.sh'

Benno Cloud Server

Hier wird ein Script zum Start des Synchronisationsprozesses erstellt. Dieses Script schreibt die Logdaten für jeden Tag in eine getrennte Logdate.

#!/bin/sh
#
#
THISDAY=$(date +%Y-%m-%d)
LOGLEVEL=INFO
 
/usr/bin/sudo -u benno \
    /usr/sbin/benno-imapsync \
    -c /etc/benno-imap/imapsync.conf \
    -L $LOGLEVEL \
    -f /var/log/benno/imapsync-${THISDAY}.log
benno-imap.1504517315.txt.gz · Zuletzt geändert: 2017/09/04 09:28 von lwsystems