Linuxspicker

Admins kleiner Zettelkasten für die Lösung von Linuxproblemen

Verschlüsselung des Posteingangs mittels GnuPG auf einem Mailserver mit Postfix, Procmail und Dovecot

Beim Betreiben eines eigenen E-Mailservers ist für leicht paranoische Leute die größte Angst, dass der Server gehackt wird und damit alle auf dem Server vorhandenen Mails für Außenstehende lesbar sind. Dem kann durch eine generelle Verschlüsselung mittels GnuPG allen Maileingangs vorgebeugt werden, denn dann sind für die Eindringlinge nur noch verschlüsselte E-Mails zu sehen, bei denen höchstens die Headerdaten wie der Absender, der Betreff oder das Datum auswertbar sind.

Für diesen Zweck gibt es bei den einschlägigen Codehostern mehrere Scripts zu finden, die mit Mailserversoftware wie Exim oder Postfix funktionieren. Auf dem vorhandenen Mailserver mit Postfix findet ein Script von Mike Cardwell seit Jahren zuverlässig Anwendung.

Das verschlüsselt mit GnuPG Mails und findet sich hier, wobei in untenstehendem Beispiel der Bugfix von diesem Commit mit integriert wurde.

Die Perlmodule MIME::Tools und Mail::GnuPG müssen installiert sein, dazu noch Procmail und Postfix sollte bereits laufen. Das lässt sich in Debian mit nachfolgendem Befehl installieren:

sudo apt install libmime-tools-perl libmailgnupg-perl procmail

Damit sollten auch andere Abhängigkeiten geklärt werden.

Die .procmailrc-Datei im Homeverzeichnis des entsprechenden Users sieht dann nach dem Speichern von gpgit.pl in /usr/local/bin so aus.

:0 fw
* ^To: .+@linuxspicker\.net(\>)?$
| /usr/local/bin/gpgit.pl --encrypt-mode pgpmime --skip-single-part-bug --skip-ms-bug posteingang@linuxspicker.net

Damit werden alle eingehenden Mails, die an Adressen mit linuxspicker.net adressiert sind, durch das Script gpgit.pl gejagt und mit dem Schlüssel für die hypothetische E-Mailadresse posteinganglinuxspicker.net@ verschlüsselt.

Abgerufen und gelesen werden die verschlüsselten Mails dann entweder mit Thunderbird auf dem Rechner oder K9-Mail und Openkeychain oder Maildroid unter Android gelesen.

Ein Problem bleiben dabei die gesendeten Mails in Maildir/.Sent und bereits vorhandene Mails auf dem Server. Dafür gibt es das Script encmaildir.sh, das zum Einen auf den vorhandenen Bestand losgelassen werden kann und zum Anderen regelmäßig per Cronjob neu gesendete Mails nachträglich verschlüsselt.

Das kann dann so aussehen:

*/30 * * * * root /usr/bin/nice -n 19 if [ -d "/home/linuxspicker/Maildir/.Sent" ]; then /usr/local/bin/encmaildir.sh /home/linuxspicker/Maildir/.Sent posteingang@linuxspicker.net linuxspicker "-mtime 1 -type f"; fi

Damit wird jede 30 Minuten der .Sent-Ordner des Users linuxspicker auf neue Dateien innerhalb der vergangenen Stunde überprüft und diese werden mittels des in /usr/local/bin/ liegenden Scripts encmaildir.sh mit dem öffentlichen Schlüssel für posteingang@linuxspicker.net mittels GnuPG verschlüsselt.

In jenem Beispiel wird vorausgesetzt, dass der User linuxspicker in seiner GnuPG —Installation einen öffentlicher Schlüssel für die E-Mailadresse posteingang@linuxspicker.net hat. Das lässt sich als root beispielsweise mit sudo -u linuxspicker gpg --list-keys überprüfen. Der zugehörige private Schlüssel muss dann dementsprechend allen E-Mailprogrammen hinzugefügt werden.


Stichworte: , , , , , , , ,
Kategorien: ,


Kommentare

Keine Kommentare

Kommentare

Geben Sie Ihren Kommentar hier ein. * Eingabe erforderlich. Sie müssen die Vorschau vor dem Absenden ansehen.