Als Serverbetreiber mache ich mir Gedanken um den Schutz der Daten meiner Kunden, dazu bin ich als bei der Bundesnetzagentur gemeldeter Webhoster sogar verpflichtet und alle 2 Jahre muss ich dies durch die Einreichung eines Sicherheitskonzeptes nachweisen.

Ein Thema, welches viele Webhoster vergessen, sind die Email-Header.

 Received: from meintollerPC (xxxxxxx.dip0.t-ipconnect.de [217.251.229.xxx])
    (Authenticated sender: xxxxxxxxxx(at)xxxxxxx.de)
    by server6.andrehotzler.de (Postfix) with ESMTPSA id 39A39100A92
    for <a.xxxxxxx(at)xxxxx.de>; Tue,  1 Sep 2015 14:53:49 +0200 (CEST)

Wie man in diesem Header-Auszug gut sehen kann, werden folgende Informationen eingebettet:

  • Name des Computers, der die Email versendete
  • Ip-Adresse
  • Login, der zum Versenden benutzt wurde, in der Regel handelt es sich hierbei um eine Emailadresse

Authenticated sender ist keine Standard-Einstellung, sie macht aber Sinn.
Wird der Login+Passwort zu einem Emailpostfach Spamern bekannt und Spam von extern eingeliefert, sieht man im Logfile sofort, welche Zugangsdaten benutzt werden und kann diese sperren.

Eingeschaltet wird die Option in der Postfix-Hauptkonfiguration main.cf:

 smtpd_sasl_authenticated_header = yes

Neben den Bestimmungen der Datenschutzgesetze sehe ich die Weitergabe dieser Daten als problematisch an. Insbesondere über "Authenticated sender" kann man Informationen erlangen, mit denen man Unfug anrichten kann. Beispielsweise senden einige meiner Kunden mit nachgelagerten Email-Servern (zum Beispiel Exchange-Server), die meine Systeme als "Smart-Host" benutzen immer mit dem selben Login.
Andere Kunden haben diverse Emailadressen, senden aber immer über das selbe Konto. Betrachtet man den Header, könnte man hier an Informationen gelangen, die der Sender lieber geheim halten möchte.

Wie schaut nun die Lösung aus?

Vor einiger Zeit habe ich hier: http://streibelt.de/blog/2011/07/31/postfix-ip-adresse-des-absenders-verbergen/ eine Lösung gefunden. Leider fehlt hier noch die Lösung für ipv6-Adressen.

Gemäß dieser Anleitung habe ich in der Postfix-Konfiguration main.cf stehen:

header_checks = pcre:/etc/postfix/header_checks.pcre

Und meine Datei header_checks.pcre sieht so aus:

/^Received: from (.* \([-._[:alnum:]]+ \[[.[:digit:]]{7,15}\]\))(.*)\(Authenticated sender: ([^)]+)\)(.*)(by server6\.andrehotzler\.de) \(([^)]+)\) with (E?SMTPS?A?) id ([A-F[:digit:]]+)(.*)/ REPLACE Received: from anonymized.ipv4.by.server6.andrehotzler.de (localhost [127.0.0.1])$2(Authenticated sender: hidden)$4$5 ($6) with $7 id $8 $9
/^Received: from (.*IPv6\:(([0-9a-f]{0,4}:){1,7}[0-9a-f]{1,4}|([0-9]{1,3}\.){3}[0-9]{1,3})]\))(.*)\(Authenticated sender: ([^)]+)\)(.*)(by server6\.andrehotzler\.de) \(([^)]+)\) with (E?SMTPS?A?) id ([A-F[:digit:]]+)(.*)/ REPLACE Received: from anonymized.ipv6.by.server6.andrehotzler.de (localhost [::1])$7(Authenticated sender: hidden)$7$8 ($9) with $10 id $11 $12

Ergebnis für ipv4:

Received: from anonymized.ipv4.by.server6.andrehotzler.de (localhost [127.0.0.1])
    (Authenticated sender: hidden)
    by server6.andrehotzler.de (Postfix) with ESMTPSA id 8097B1007C9 
    for <xxxx(at)xxxxx.xxx>; Wed,  2 Sep 2015 16:03:26 +0200 (CEST)

Ergebnis für ipv6:

Received: from anonymized.ipv6.by.server6.andrehotzler.de (localhost [::1])
    (Authenticated sender: hidden)
    by server6.andrehotzler.de (Postfix) with ESMTPSA id 81519101354 
    for <xxxxxx(at)xxxxxx.de>; Thu,  3 Sep 2015 13:38:15 +0200 (CEST)