Wie kann ich beim Senden von E-Mails mit Postfix die IP-Adresse und den Benutzernamen des Absenders im Header Received ausblenden?

13

Beim Senden von E-Mails fügt Postfix die IP-Adresse und den Benutzernamen des authentifizierten Benutzers in den Header Received in der E-Mail ein. Dies ist zwar nützlich, um herauszufinden, wer eine bestimmte E-Mail gesendet hat, die von Ihrem Mailserver gesendet wurde, hat jedoch auch Auswirkungen auf den Datenschutz. In einer kleinen Situation, in der ich darauf vertrauen kann, dass alle Benutzer ihre Konten nicht kompromittieren und in Spam-Zombies verwandeln, möchte ich lieber keine IP-Adressen und Kontonamen für alle zum Lesen senden. Kurz gesagt, wie richte ich Postfix so ein , dass dies nicht gesendet wird:

Empfangen: von [xxxx] (pc1.example.com [xxxx]) (unter Verwendung von TLSv1 mit Verschlüsselung DHE-RSA-AES256-SHA (256/256 Bit)) (Kein Client-Zertifikat angefordert) (Authentifizierter Absender: Benutzer) per E-Mail. example.com (Postfix) mit der ESMTPSA-ID CC77010C148 für; Fr, 11. November 2011, 04:55:18 Uhr +0000 (UTC)

Michael Kropat
quelle

Antworten:

20

Die Standardlösung besteht darin, die Option header_checks zu verwenden . Dieser Wille Arbeit, aber wenn wir Linien auf alle E - Mails sowohl eingehende als auch ausgehende empfangene Filter (wie dies tun wird), könnten wir möglicherweise verlieren Received Header auf Mail geschickt , um uns, die für die Fehlersuche wichtig sein kann. Um das zu umgehen dieses Problem, werden wir die Anwendung header_checksnur auf die Mail , die unmöglich gesendet wurden uns-Mail , die an die gesendet wurde Einreichung Port (Sie werden mit der Einreichung Port , nicht wahr? ).

In diesem Beitrag wird erläutert, wie Sie sich header_checksausschließlich für den Übermittlungsport bewerben . Was müssen wir tun , ist die passieren cleanup_service_name Option auf die Einreichung Service , so dass wir einen neuen Bereinigungs Dienst einrichten können „subcleanup.“ Der relevante Abschnitt von /etc/postfix/master.cfkönnte folgendermaßen aussehen:

submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
  -o cleanup_service_name=subcleanup

Jetzt können wir die header_checksOption an den neuen Bereinigungsdienst übergeben. Dieser Teil von /etc/postfix/master.cfkönnte so aussehen:

cleanup   unix  n       -       -       -       0       cleanup
subcleanup unix n       -       -       -       0       cleanup
  -o header_checks=regexp:/etc/postfix/submission_header_checks

Schließlich müssen wir die Datei erstellen /etc/postfix/submission_header_checks, die den regulären Ausdruck enthält, der beleidigende empfangene Kopfzeilen filtert. Welche Regex Sie in die Datei einfügen, hängt davon ab, ob Sie festgelegt haben smtpd_sasl_authenticated_header.

Wenn smtpd_sasl_authenticated_headerja yes, verwenden Sie:

/^Received:.*\(Authenticated sender:/ IGNORE

Andernfalls verwenden Sie:

/^Received:.*\(Postfix/ IGNORE

(Vielen Dank an Dominic P und Bryan Drewery, die gezeigt haben, wie man mit dem zweiten Fall umgeht.)

Michael Kropat
quelle
Müssen Sie anrufen postmap submission_header_checks?
Mitar
@Mitar keine Ahnung, aber wenn Sie herausfinden, dass Sie dies tun, können Sie die Antwort jederzeit bearbeiten. Dies sind alte Anweisungen für 10.04, aber ich werde sie wahrscheinlich aktualisieren, wenn 14.04 herauskommt.
Michael Kropat
Es scheint, als hätte es ohne funktioniert. :-)
Mitar
1
+1, danke für die sehr hilfreiche Antwort. Es ist ein paar Jahre später und ich musste eine kleine Änderung vornehmen. Ich verwende Postfix 2.9.6. Ich habe den regulären Ausdruck in: geändert, /^Received:.*\(Postfix/ IGNOREweil ich den Teil "Authentifizierter Absender" in meinen Headern nicht erhalten habe. Sehen Sie irgendwelche Risiken im Zusammenhang mit meinem neuen regulären Ausdruck?
Dominic P
1
Diese Antwort setzt voraus, dass smtpd_sasl_authenticated_header = yes gesetzt ist. Ohne sie wird dann der modifizierte reguläre Ausdruck von Dominic benötigt.
Bryan Drewery
-1

Sie können verwenden

smtpd_sasl_authenticated_header = no

in postfix/main.cf, um die Header-Informationen in Ihren ausgehenden Mails zu entfernen.

Markus
quelle
Warum ist diese Antwort viel einfacher als die von @ Michael? Entfernt dies die IP aus allen Headern und nicht nur aus den E-Mails, die über den Übermittlungsport empfangen wurden?
Knocte
2
@knocte smtpd_sasl_authenticated_headerist ohnehin standardmäßig auf "no" gesetzt. Wenn es aktiviert ist, fügt Postfix den Benutzernamen, der für die SASL-Authentifizierung verwendet wurde, zum anfänglichen "Received" -Header hinzu. Dadurch wird der in der Frage gezeigte Teil "Authenticated sender: user" hinzugefügt. @ Michaels Antwort entfernt nicht nur den Benutzerteil, sondern den gesamten "Received" -Header, einschließlich der IP des Clients.
n.st
@ n.st: Wollen Sie damit sagen, dass Markus 'Antwort die IP nicht entfernt und daher diese SO-Frage nicht?
Knocte
@knocte Genau.
n.st
1
Ich brauche 125+, um abzustimmen. Ich habe es getestet und es entfernt nur den Benutzernamen, nicht die IP.
John