mail-crypt-plugin ISPCONFIG

Trimilur

New Member
Hallo,

ich würde gerne das mail-crypt-plugin mit ispconfig nutzen. Funktioniert das nach der Einrichtung gemäß Dokumentation auch nach Updates weiter bzw. sollte ich da iwas beachten?

Gruß
 

Till

Administrator
Dafür wirst Du das mail setup anpassen müssen und eigene deovecot config Dateien erstellen damit Deine Änderungen nicht überschrieben wedren bei Updates, aber dann sollte es wohl gehen.
 

matz

Active Member
Danke für diesen Thread. Ich war mit dem Gedanken der verschlüsselten Speicherung der Mails schon etwas länger beschäftigt, ohne zu wissen, dass dovecot dieses Plugin hat. Bei mir habe ich es schon ans Laufen gebracht, war ein simpler Task. Habe den einfacheren, schlechteren Weg des Global Keys gewählt, aber ich bin auf meinem Server alleine unterwegs.
 
Zuletzt bearbeitet:

gw2345

New Member
Ich würde Dovecot mail_crypt gern im Benutzer-Passwort Modus ausprobieren. Hierbei verschlüsselt Dovecot eingehende Mail (vereinfacht) mit einem öffentlichen Schlüssel des Benutzers.

Der geheime Schlüssel ist dann mit dem Mail-Kennwort des Benutzers gesichert.

Läuft auch schon soweit, jedoch muss ich die Dovecot-Benutzer Schlüsselpaare bisher noch per Hand erstellen.

Damit das automatisch klappt müsste ich ISPConfig dazu bringen:

1) Bei der Erstellung einer Mailbox einen Shell-Befehl auszuführen, der das _klartext_ Kennwort als Eingabeparameter bekommt.

2) Bei jeder Passwortänderung über ISPConfig ebenfalls einen Shellbefehl auszuführen, der dann das alte und das neue PW im Klartext als Parameter braucht.

Gibt es eine Stelle wo bei bestimmten ISPConfig-Aktionen Shell Befehle einbauen kann?

LG
Gerd
 

Till

Administrator
ISPConfig speichert keine klartext Passworte aus Sicherheitsgründen. Wenn Du anfängst Passworte im Klartext zu speichern, dann wird Dein system Durch Deine Änderungen unsicherer und nicht sicherer.
 

gw2345

New Member
Mir ist klar das ISPConfig keine klartext PW speichert. Ich will auch keine KlartextPW speichern, dann wäre ja der Sinn weg ;-)

Aber ISPConfig nimmt die PW ja entgegen und hasht Sie. An der stelle möchte ich eben das Schlüsselpaar für Dovecot erstellen, also sowas wie:

doveadm -o plugin/mail_crypt_private_password=password mailbox cryptokey generate -u beispiel@example.com -U

ausführen.
Gruss Gerd
 

Till

Administrator
Du hast oben geschrieben Du brauchst das alte und neue pw, dazu musst Du das alte pw speichern oder die GUI umbauen dass es beide pW abfragt. Und das Passwort hashing läuft in der GUI und nicht erst im Server teil, das heißt Du kannst Befehle auf der shell aufrufen, aber nur als unprivilegierter user 'ispconfig' und nicht als root.
 

gw2345

New Member
1)
Stimmt, beim ändern des PW über ISPC wird ja das alte ja gar nicht abgefragt. Dann müsste ich die GUI verändern oder eine andere Lösung für PW-Änderungen zur verfügung stellen. Verstanden.
2)
Zum Anlegen eines Mailkontos brauch ich ja nur das neue PW. Das Problem mit dem unpriviligierten User könnte ich ja über eine eng gestrickte sudo-Regel lösen. Kannst Du mir einen Hinweis gegen, wo ich den Aufruf bei der Mail-User Erstellung unterbringen könnte? Vielleicht sowas wie

shell_exec('hier mein befehl'.$mailusername.'hier befehl'.$PW);

in die richtige php datei?
Gruß
Gerd
 

gw2345

New Member
Das Anlegen neuer E-Mail-Konten mit individuell verschlüsseltem Dovcot Storage funktioniert. Ich habe es etwas unelegant so gemacht wie unten beschrieben. Für mich war das nur eine Art proof of concept, der nicht produktiv eingesetzt wird. M.E. ist das Risiko eines Datenverlustes sehr hoch und ich bin mir keinesfalls sicher, ob das vorgehen nicht Sicherheitslücken aufreißt die vorher nicht da waren.
ToDo: Passwortänderung durch den Benutzer ist z.Z. noch nicht möglich.

Falls es trotzdem wen interesiert:

0) dovecot mail_crypt frei nach dieser Anleitung konfiguriert: https://workaround.org/ispmail/buster/optional-server-based-mailbox-encryption/

1) ein script in /usr/local/bin/dovkeygen.sh erstellt mit dem Inhalt:

Code:
#!/bin/bash
doveadm -o plugin/mail_crypt_private_password=$1 mailbox cryptokey generate -u $2 -U

2) sudo installiert und mit visudo folgendes in /etc/sudoers eingetragen:
Code:
# Cmnd alias specification
Cmnd_Alias  DOVEKEY = /usr/local/bin/dovkeygen.sh
# User privilege specification
PANEL ALL = (root) NOPASSWD: DOVEKEY

3)
In die Datei /usr/local/ispconfig/interface/web/mail_user_edit.php am Ende der Funktion onAfterInsert() (bei mir ist das ca. Zeile 323) folgendes eingefügt:
Code:
$befehl='sudo /usr/local/bin/dovkeygen.sh '.$_POST["password"].' '.$this->dataRecord["email"];
$ausgabet = shell_exec($befehl);

Gerd
 
Zuletzt bearbeitet:

matz

Active Member
(...)
ToDo: Passwortänderung durch den Benutzer ist z.Z. noch nicht möglich.

Falls es trotzdem wen interesiert:
(...)

Passwortänderung durch Benutzer ist auf jeden Fall möglich, wenn der Benutzer als Kunde mit Kundenzugang im IPSC angelegt ist und seine eigene Domain hat. Ich weiß jetzt nicht wie das auf deinem Server aussieht, von daher lasse ich den ersten Satz einfach mal so stehen.

Ansonsten danke für die Veröffentlichung deines Ansatzes und mich interessiert es sehr. Bisher sind alle eingegangenen Mails nicht wirklich kritisch aber das kann sich jederzeit ändern und meine jetzige serverweite Verschlüsselung mit Key ohne PW-Schutz ist nichts weiter als ziemlich billige Verschleierung.

BTW, wie verhält sich deine Lösung wenn das Benutzer-Passwort geändert wird? Müsste da nicht auch etwas in der Funktion onAfterUpdate() geändert werden?
 
Zuletzt bearbeitet:

gw2345

New Member
Hi Matz,
Mein Satz "Passwortänderung z.Z. noch nicht möglich" bezog sich eben genau auf die Problematik, dass wenn der User sein PW nur über ISPConfig ändert, die Schlüsselpaare die Dovecot mit dem (alten) PW gesichert hat nicht mehr verfügbar sind. Der User kommt dann nicht mehr an seine E-Mails.

Lösung wäre, genau wie Du schreibst, z.B. ein Aufruf in onAfterUpdate(), das geht allerdings nicht so einfach, weil in ISPConfig bei einer PW Änderung das alte PW gar nicht im Formular abfragt. Das alte PW wird aber von dovecot für die "umschlüsselung" benötigt.

Daher müsste man entweder das ISPConfig PW-Änderungs-Formular so umbauen, dass das alte PW ebenfalls abgefragt wird, oder aber ein eigenes Formular machen, dass 1. Das alte und neu PW abfragt, 2. Das neue PW mit dem richtigen hash in die ISPConfig DB schreibt und 3. den Doveadm Befehl mit altem und neuem PW aufruft, der die Schlüsseländerung auslöst.

Aber da dass ganze für mich erst mal nur "ausprobiere" war, mach ich das nicht mehr.
LG Gerd
 
Zuletzt bearbeitet:

Werbung

Top