Einige kommerzielle Mailanbieter, die sich dem Schutz der persönlichen Nutzerdaten verschrieben haben, bieten die Möglichkeit, eingehende Mails automatisch mit dem eigenen GPG-Schlüssel zu verschlüsseln. Der Vorteil liegt klar auf der Hand: auch bei unverschlüsselter Kommunikation befinden sich die Mails nicht im Klartext auf dem Server des Anbieters.
Diese Funktionalität lässt sich mit Dovecot und Sieve auch auf dem heimischen Mailserver umsezten. Eine entsprechende Anleitung befindet sich hier. Nun ist diese schon etwas älter, deshalb sollen nachfolgend ein paar Punkte aktualisiert und an die Empfehlungen der Dovecot-Doku angepasst werden. Voraussetzung ist ein funktionierende Dovecot-Server unter Debian Jessie.
Inhaltsverzeichnis
Funktionsweise
- Die Verschlüsselung per GPG wird per Sieve-Filter ausgelöst.
Der Filter führt über das Sieve-Extprograms-Plugin ein Perl-Skript aus, welches die eigentliche Verschlüsselung vornimmt.
Der Filter besteht aus zwei Teilen: einem globalen Teil inbox_encryption.sieve, welches das externe Perl-Skript aufruft und dem persönlichen Teil, der das globale Skript per Sieve-include einbindet
Installation
Installation der notwendigen Debian-Pakete:
apt install libmime-tools-perl libmail-gnupg-perl
Perl-Skript installieren:
git clone git://perot.me/gpgit
Einrichtung von Dovecot
Sofern das Sieve-Plugin schon aktiviert und eingerichtet wurde, müssen noch die folgenden Punkte konfiguriert werden:
In /etc/dovecot/conf.d/90-sieve.conf wird das Sieve-Plugin aktiviert und konfiguriert:
sieve_plugins = sieve_extprograms sieve_global_dir = /data/sieve/global sieve_global_extensions = +vnd.dovecot.filter
In /etc/dovecot/conf.d/90-sieve-extprograms.conf wird der Pfad zu dem externen Programm angegeben:
sieve_filter_bin_dir = /data/sieve/sieve-filter
Perl-Skript verlinken:
ln -s /path/to/gpgit/gpgit.pl /data/sieve/sieve-filter/gpgit
- Anschließend Dovecot neu starten
Sieve-Filter anlegen
Der entsprechende globale Sieve-Filter liegt unter /data/sieve/global/inbox_encryption.sieve und sieht so aus:
require ["variables", "envelope", "vnd.dovecot.filter"]; if envelope :matches "to" "*" { set :lower "my_recipient" "${1}"; filter "gpgit" "${my_recipient}"; }
Jeder User kann nun in seinem persönlichen Sieve-Skript die Verschlüsselung aktivieren, bspw. me@example.org:
require ["include","variables"]; # rule:[gpg encypt incoming] if header :contains "to" "me" { include :global "inbox_encryption"; }
Schlüsselbund verwalten
Damit alles klappt, muss der eigene Schlüssel natürlich zum Schlüsselbund des Accounts hinzugefügt werden, mit dem Dovecot ausgeführt wird. Für den Account "vmail" sind folgende Schritte notwendig:
Wechseln des Nutzers: su vmail
- Anlegen des gpg-Verzeichnisses
- Import des eigenen Schlüssels
Da Schlüssel muss zusätzlich als vertrauensvoll markiert sein:
gpg --edit-key me@example.org gpg> trust 1 = I don't know or won't say 2 = I do NOT trust 3 = I trust marginally 4 = I trust fully 5 = I trust ultimately m = back to the main menu Your decision? 5 Do you really want to set this key to ultimate trust? (y/N) y gpg> save
Fertig.
Hinweise
- Alles eingehenden Mails werden automatisch verschlüsselt, sofern sich ein zur Adresse passender GPG-Schlüssel im Schlüsselbund befindet.
- Bei Verwendung von Alias-Adressen sollten diese zum Schlüssel hinzugefügt werden.
- Regeln zur Spamfilterung sollten stets an erster Stelle kommen, da ansonsten auch der Spam verschlüsselt wird.
- Alle anderen Regeln sollten nach der Verschlüsselung folgen.