Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| benno-imap [2018/02/15 15:51] – [Konfiguration der Schlüssel] lwsystems | benno-imap [2025/06/11 07:53] (aktuell) – lwsystems | ||
|---|---|---|---|
| Zeile 2: | Zeile 2: | ||
| 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. | 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. | ||
| + | |||
| + | **Der Import per Benno IMAP ist nicht konform zur GOBD! Das Tool benno-imapimport wird nicht mehr aktiv weiter entwickelt!** | ||
| //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 | + | 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 17: | ||
| Die für diese Funktionalität benötigten Software-Komponenten werden mit Hilfe des Pakets // | Die für diese Funktionalität benötigten Software-Komponenten werden mit Hilfe des Pakets // | ||
| - | Bei Nutzung einer MySQL Datenbank werden zusätzlich die Pakete // | + | Bei Nutzung einer MySQL Datenbank werden zusätzlich die Pakete // |
| benötigt. | benötigt. | ||
| + | Darüber hinaus muss in der MySQL Datenbank noch die Relation [[: | ||
| Zeile 22: | Zeile 25: | ||
| ====== Konfiguration ====== | ====== Konfiguration ====== | ||
| - | |||
| - | ===== Authentisierung am Web-Interface ===== | ||
| - | |||
| - | Die Authentisierung erfolgt gegen einen IMAP-Server mit Hilfe des externen | ||
| - | [[Authentisierung# | ||
| - | |||
| - | Das Authentisierungs-Modul wird in der Konfigurationsdatei | ||
| - | / | ||
| - | |||
| - | EXTERNAL_AUTH = / | ||
| - | |||
| - | |||
| - | ===== Konfiguration Authentisierungsmodul ===== | ||
| - | |||
| - | Die Konfiguration für das Authentisierungs-Modul " | ||
| - | der Datei / | ||
| - | INI-Format ausgeführt (https:// | ||
| - | den User des Webservers lesbar sein. | ||
| - | |||
| - | Nach erfolgreicher Authentisierung wird das Passwort in der Datenbank | ||
| - | ''/ | ||
| - | " | ||
| - | (imapauth.conf: | ||
| - | |||
| ===== 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 | + | gespeichert. Das Schlüsselpaar wird bei der Installation automatisch |
| - | ==== Privaten Key + Zertifikat | + | Die Schlüssel können auch [[Schlüsselpaar |
| - | <code bash> | + | ===== Konfiguration der Schlüssel ===== |
| - | openssl req -newkey rsa:2048 -new -sha256 -x509 -days 3650 -keyout benno-imap.rsakey -out benno-imap.crt | + | |
| - | </ | + | |
| - | ==== Privaten Key konvertieren ==== | + | Der private Schlüssel wird in der Konfigurationsdatei von benno-imapsync ('' |
| - | <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 |
| - | openssl rsa -outform | + | In einem solchen Fall erwartete '' |
| - | </ | + | |
| - | ==== Public Key aus Zertifikat extrahieren ==== | ||
| - | <code bash> | + | ===== Authentisierung am Web-Interface ===== |
| - | openssl x509 -outform der -pubkey -noout -in benno-imap.crt > / | + | |
| - | </ | + | |
| + | Die Authentisierung erfolgt gegen den IMAP-Server des Benutzers mit Hilfe des externen | ||
| + | [[Authentisierung# | ||
| - | ==== X509 Zertifikatsdateien löschen ==== | + | Die Aktivierung des Authentisierungs-Moduls erfolgt, indem es perl Symlink in den Authentisierungs-Stack aufgenommen wird. |
| - | Die Zertifikatsdateien | + | ln -s /usr/lib/ |
| - | ===== Konfiguration der Schlüssel ===== | ||
| - | Der private Schlüssel wird in der Konfigurationsdatei von benno-imapsync ('' | + | ==== Konfiguration benno_imapauth ==== |
| - | festgelegt. Das Passwort | + | |
| - | werden. | + | Die Konfiguration für das Authentisierungs-Modul // |
| + | der Datei ''/ | ||
| + | INI-Format ausgeführt (https://de.wikipedia.org/ | ||
| + | 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. | + | |
| - | Start versucht, diese von STDIN zu lesen. | + | |
| Zeile 93: | Zeile 67: | ||
| Ein neuer Benutzer wird mit dem Program // | Ein neuer Benutzer wird mit dem Program // | ||
| mit -u < | mit -u < | ||
| + | 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 "< | ||
| - | Nicht übergebenen Parameter werden mit den Defaultparameatern | + | Nicht übergebenen Parameter werden mit den Defaultparametern |
| <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' | + | -n 'Benno LWsystems' |
| </ | </ | ||
| - | Das Passwort | + | Das Passwort wird nach jeder erfolgreicher Anmeldung |
| ===== Benutzer löschen ===== | ===== Benutzer löschen ===== | ||
| - | Mit '' | + | Mit '' |
| gelöscht. Damit wird auch keine Synchronisation des IMAP Kontos mehr | gelöscht. Damit wird auch keine Synchronisation des IMAP Kontos mehr | ||
| - | vorgenommen. | + | vorgenommen. |
| + | |||
| + | Die Ausgabe von '' | ||
| ===== Benutzerpasswort ändern ===== | ===== Benutzerpasswort ändern ===== | ||
| Zeile 123: | Zeile 100: | ||
| Konfiguration erfolgt in der mit dem Parameter -c übergebenen Datei (/ | Konfiguration erfolgt in der mit dem Parameter -c übergebenen Datei (/ | ||
| 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 " | Die zu importierenden Accounts werden aus der Tabelle " | ||
| Zeile 129: | Zeile 105: | ||
| Falls hier die Meldung "//RSA key format is not supported//" | Falls hier die Meldung "//RSA key format is not supported//" | ||
| - | ==== 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 | + | |
| - | 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 ''/ |
| - | === 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 '/ | + | |
| - | </ | + | |
| - | + | ||
| - | === 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 [ -x /usr/sbin/benno-imapsync ] && |
| - | LOGLEVEL=INFO | + | </file> |
| - | + | ||
| - | /usr/bin/sudo -u benno \ | + | |
| - | | + | |
| - | | + | |
| - | -L $LOGLEVEL \ | + | |
| - | | + | |
| - | </code> | + | |