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 [[http://dovecot.org|Dovecot]] und Sieve auch auf dem heimischen Mailserver umsezten. Eine entsprechende Anleitung befindet sich [[https://perot.me/encrypt-specific-incoming-emails-using-dovecot-and-sieve|hier]]. Nun ist diese schon etwas älter, deshalb sollen nachfolgend ein paar Punkte aktualisiert und an die Empfehlungen der [[http://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Extprograms#Configuration|Dovecot-Doku]] angepasst werden. Voraussetzung ist ein funktionierende Dovecot-Server unter Debian Jessie. <> = Funktionsweise = * Die Verschlüsselung per GPG wird per Sieve-Filter ausgelöst. * Der Filter führt über das [[http://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Extprograms|Sieve-Extprograms-Plugin]] ein [[https://github.com/EtiennePerot/gpgit|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.