Benutzer-Werkzeuge

Webseiten-Werkzeuge


benno-imap

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
benno-imap [2018/02/15 15:51] – [Konfiguration der Schlüssel] lwsystemsbenno-imap [2023/03/30 12:37] (aktuell) – [Benutzer anlegen] lwsystems
Zeile 5: Zeile 5:
 //Zum einmaligen Import bestehender E-Mail Bestände sollte er Import per POP3 (mittels [[benno-pop3]]) oder IMAP (mittels [[benno-imapimport]]) durchgeführt werden.// //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 an das E-Mail System sollte möglichst direkt über die hiefür vorgesehenen Schnittstellen erfolgen.
   * [[benno-milter]] bei Unix- oder Linux-Mailsystemen   * [[benno-milter]] bei Unix- oder Linux-Mailsystemen
   * [[benno-exchange]] bei Microsoft Exchange Installationen   * [[benno-exchange]] bei Microsoft Exchange Installationen
Zeile 15: Zeile 15:
 Die für diese Funktionalität benötigten Software-Komponenten werden mit Hilfe des Pakets //benno-imap// installiert. 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//+Bei Nutzung einer MySQL Datenbank werden zusätzlich die Pakete //python-mysqldb// und //php-mysql//
 benötigt. benötigt.
 +Darüber hinaus muss in der MySQL Datenbank noch die Relation [[:datenbank-schema#imapuser]] angelegt werden, sowie die Konfiguration in ''/etc/benno-imap/imapauth.conf'' bzw. ''/etc/benno-imap/imapsync.conf'' angepasst werden.
  
  
Zeile 22: Zeile 23:
  
 ====== Konfiguration ====== ====== Konfiguration ======
- 
-===== Authentisierung am Web-Interface ===== 
- 
-Die Authentisierung erfolgt gegen einen IMAP-Server mit Hilfe des externen 
-[[Authentisierung#Externe_Authentisierungs-Backends|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 ===== ===== Schlüsselpaar zur Speicherung der Passwörter =====
  
 Die IMAP Passwörter werden reversibel verschlüsselt in der Datenbank Die IMAP Passwörter werden reversibel verschlüsselt in der Datenbank
-gespeichert.Das Schlüsselpaar hierfür wird mit OpenSSL angelegt.+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.
  
-==== Privaten Key + Zertifikat erstellen ====+Die Schlüssel können auch [[Schlüsselpaar erstellen|nachträglich erstellt werden]].
  
-<code bash> +===== Konfiguration der Schlüssel =====
-openssl req -newkey rsa:2048 -new -sha256 -x509 -days 3650 -keyout benno-imap.rsakey -out benno-imap.crt +
-</code>+
  
-==== Privaten Key konvertieren ====+Der private Schlüssel wird in der Konfigurationsdatei von benno-imapsync (''[[imapsync.conf|/etc/benno-imap/imapsync.conf]]'') festgelegt.
  
-<code bash> +**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.\\ 
-openssl rsa -outform der -des3 -in benno-imap.rsakey > /etc/benno-imap/benno-imap.key +In einem  solchen Fall erwartete ''benno-imapsync'' den privaten Schlüssel als Datenstrom auf STDIN. [[Externer Schlüssel für IMAP Import|Ein solches Setup]] ermöglicht die Übergabe des Schlüssels per PIPE von einem anderen Host aus einer gesicherten Umgebung.
-</code>+
  
-==== Public Key aus Zertifikat extrahieren ==== 
  
-<code bash> +===== Authentisierung am Web-Interface =====
-openssl x509 -outform der -pubkey -noout -in benno-imap.crt > /etc/benno-web/benno-imap.pub +
-</code>+
  
 +Die Authentisierung erfolgt gegen den IMAP-Server des Benutzers mit Hilfe des externen
 +[[Authentisierung#Externe_Authentisierungs-Backends|Authentisierungs-Moduls]] //benno_imapauth//.
  
-==== X509 Zertifikatsdateien löschen ====+Die Aktivierung des Authentisierungs-Moduls erfolgt, indem es perl Symlink in den Authentisierungs-Stack aufgenommen wird.
  
-Die Zertifikatsdateien //benno-imap.rsakey// und //benno-imap.crt// werden nicht mehr benötigt und können gelöscht werden.+  ln -s /usr/lib/benno-imap/benno_imapauth /etc/benno-web/auth.d/60_benno_imapauth
  
-===== Konfiguration der Schlüssel ===== 
  
-Der private Schlüssel wird in der Konfigurationsdatei von benno-imapsync (''[[imapsync.conf|/etc/benno-imap/imapsync.conf]]'') +==== Konfiguration benno_imapauth ==== 
-festgelegtDas Passwort für den Schlüssel kann hier ebenfalls konfiguriert + 
-werden.+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.
  
-Falls kein Schlüssel angegeben ist, liest benno-imapsync beim Start den +Nach erfolgreicher Authentisierung gegen den IMAP-Server wird das Passwort mit dem Public-Key verschlüsselt und  in der internen Datenbank gespeichert.
-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.+
  
  
Zeile 93: Zeile 65:
 Ein neuer Benutzer wird mit dem Program //benno-imapuser// angelegt, falls das Programm Ein neuer Benutzer wird mit dem Program //benno-imapuser// angelegt, falls das Programm
 mit -u <username> -i <imaphost> -C <container> aufgerufen wird. 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 Defaultparameatern der Konfigurationsdatei vorbelegt. +Nicht übergebenen Parameter werden mit den Defaultparametern der Konfigurationsdatei vorbelegt. 
  
 <code bash> <code bash>
-benno-imapuser -u benno@lw-systems.net -i imap.lw-systems.net -C LWsystems +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  +  -n 'Benno LWsystems' -e benno@lw-systems.net,info@lw-systems.net
 </code> </code>
  
-Das Passwort kann optional übergeben werden. Andernfalls wird es mit einem erfolgreichem Login am Web-UI in der Datenbank gespeichert.+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 ===== ===== Benutzer löschen =====
  
-Mit ''benno-imapuser -D -u <username>'' wird der Benutzer aus der Datenbank+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 gelöscht. Damit wird auch keine Synchronisation des IMAP Kontos mehr
-vorgenommen.  +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 ===== ===== Benutzerpasswort ändern =====
Zeile 123: Zeile 98:
 Konfiguration erfolgt in der mit dem Parameter -c übergebenen Datei (/etc/benno-imap/imapsync.conf). 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. Hier können Beispielsweise Ordner wie //Drafts// von der Synchronisation ausgeschlossen werden.
- 
  
 Die zu importierenden Accounts werden aus der Tabelle "imapuser" Die zu importierenden Accounts werden aus der Tabelle "imapuser"
Zeile 129: Zeile 103:
  
 Falls hier die Meldung "//RSA key format is not supported//" ausgegeben wird, wurde versehentlich ein RSA-Key statt des 3DES Keys erstellt / konfiguriert. 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 +===== Cron-Job =====
-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. +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.
-=== 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. +<file>
- +
-<code bash> +
-cat $KEYFILE | ssh -q benno@$CLOUDHOST '/etc/benno-imap/benno-imapsync.sh' +
-</code> +
- +
-=== 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. +
- +
-<code bash> +
-#!/bin/sh+
 # #
 +# Start IMAP import every 15 minutes
 # #
-THISDAY=$(date +%Y-%m-%d) +#*/15 *   * * *   benno [ -/usr/sbin/benno-imapsync ] && /usr/sbin/benno-imapsync -c /etc/benno-imap/imapsync.conf -f /var/log/benno/imapsync.log 
-LOGLEVEL=INFO +</file>
- +
-/usr/bin/sudo -u benno +
-    /usr/sbin/benno-imapsync +
-    -c /etc/benno-imap/imapsync.conf +
-    -L $LOGLEVEL \ +
-    -f /var/log/benno/imapsync-${THISDAY}.log +
-</code> +
benno-imap.1518709903.txt.gz · Zuletzt geändert: 2018/02/15 15:51 von lwsystems