Postfix Header anonymisieren

Wenn ein eigener Mailserver betrieben wird sendet dieser unter anderem auch deinen User-Agent und deine IP-Adresse im ersten Received Block mit.

Received: from [192.168.xxx.xxx] (xxx-xxx-xxx-xxx-xxx.netcologne.de [78.34.xxx.xxx])
 (Authenticated sender: tester)
 by mailout.adminforge.de (Postfix) with ESMTPSA id 4CED91036375B;
 Sun, 21 Mai 2017 08:36:27 +0200 (CEST)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101  Thunderbird/52.1.1

Mit folgender Anleitung kannst du dies in Postfix unterbinden und bleibst dabei RFC5321 konform.

Punkt 1: Header Check hinzufügen

Wir sagen Postfix das er eine Header Datei hat und diese auch für jede ausgehende Mail anwenden soll.

# add header for authenticated mail to strip IP
smtpd_sasl_authenticated_header = yes
smtp_header_checks = pcre:/etc/postfix/header_checks

Dazu wird das Paket postfix-pcre benötigt.

apt-get install postfix-pcre

Punkt 2: Header anonymisieren

Nun sagen wir Postfix er möge diese Zeilen im Header der ausgehende Mails ignorieren.

/^Received: .*\(Authenticated sender:.*/ IGNORE
/^Received: by MAIL\.HOSTNAME\.DE .*from userid [0-9]+\)/ IGNORE
/^User-Agent:/ IGNORE
/^X-Originating-IP:/ IGNORE

WICHTIG: In der zweiten Zeile ersetzt ihr MAIL\.HOSTNAME\.DE mit z.B. mail\.adminforge\.de, dem Hostnamen deines Postfix.

Punkt 3: Postfix Restart und Test

Wir starten den Mail Service neu.

systemctl restart postfix.service

Jetzt kann getestet werden, sende eine Testmail an die genannte Adresse auf der Webseite mail-tester.com.

Das erste Feld „Klicken Sie hier, um Ihre Nachricht anzuzeigen“ klappen wir aus und klicken auf „Quelle“. Dort sollte kein User-Agent und keine Received Zeile mit deiner IP-Adresse mehr zu finden sein.

Update 01.04.2018: REPLACE anstelle IGNORE

Obige Methode funktioniert weiterhin tadellos.
Wer seinen ersten Received Header des Clients behalten möchte, kann seine IP-Adresse mit 127.0.0.1 austauschen.

In der Hauptkonfiguration lassen wir smtpd_sasl_authenticated_header weg (Default: no).

# add header to strip IP
smtp_header_checks = pcre:/etc/postfix/header_checks

Der Header wird mit diesen 3 Zeilen gesäubert.

/^(Received: from)[^\n]*(.*)/ REPLACE $1 127.0.0.1 (localhost [127.0.0.1])$2
/^User-Agent/ IGNORE
/^X-Originating-IP/ IGNORE

Nach einem Neustart von Postfix sieht die erste gesäuberte Received-Zeile in etwa so aus.

Received: from 127.0.0.1 (localhost [127.0.0.1])
	(using TLSv1.2 with cipher ECDHE-ECDSA-AES128-GCM-SHA256 (128/128 bits))
	by mail.adminforge.de (Postfix) with ESMTPSA id D7F5718D258
	for <xxx@xxx.xx>; Sun,  1 Apr 2018 10:35:55 +0200 (CEST)

 

Dominion

Dominion

Linux Systemadministrator

Das könnte Dich auch interessieren …

9 Antworten

  1. Avatar Finn sagt:

    Danke für den Tipp, habe ich gleich eingebaut und funktioniert super. Allerdings musste ich noch das Paket postfix-pcre nachinstallieren, da es bei mir noch gefehlt hat.

  2. Avatar Firlus sagt:

    Hi, danke für deinen Beitrag. Leider setzt postfix nun die config auch für eingehende Mails um. Was kann man da machen?

    • Dominion Dominion sagt:

      Hallo Firlus,

      ich kann dein Problem leider nicht nachstellen. Welche der beiden Varianten hast du genommen?
      Mein Test mit der REPLACE Variante sieht wie folgt aus (jeweils erste Received Zeile):

      Gesendet:
      Received: from 127.0.0.1 (localhost [127.0.0.1]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mail.xxxxxx.de (Postfix) with ESMTPSA id 3A6A718739C for ; Sat, 13 Apr 2019 09:30:50 +0200 (CEST)

      Empfangen:
      Received: by mail-ed1-f45.google.com with SMTP id x61so10266989edc.9
      for ; Sat, 13 Apr 2019 00:31:42 -0700 (PDT)

      Gruß,
      Dominion

  3. Avatar Firlus sagt:

    Hallo Dominion, ich habe die erstere Variante genommen, da die Zweite mit IPv6 nicht ganz einwandfrei funktioniert. Entschuldige, mit den IP Adressen klappt es auch wie bei dir, nur werde. auch die Parameter X-Mailer, Originaling IP, User-Agent bei eingehenden Mails entfernt.

  4. Avatar Firlus sagt:

    Hey Dominion,

    ich habe es getestet, mit einem großen deutschen Mailprovider und die Regeln einmal aktiviert und deaktiviert. Wenn sie deaktiviert sind ist die User Agent Kennung bei eingehenden Mails da und wenn die Regeln wieder aktiviert sind, wird auch bei zu empfangenen Mails die User Agent Kennung entfernt. Merkwürdig… Es handelt sich auch nicht um ein riesen Setup mit Relay und so, sondern ist nur ein Single Server.

    Wie sind die Replace- Regeln bei IPv6 Benutzung am besten zu setzen? Bei mir wird die Ipv6 Adresse nämlich abgeschnitten und nur anteilig überschrieben.

    • Dominion Dominion sagt:

      Hallo Firlus,

      ich kann das Problem leider nicht nachvollziehen, eingehend sollte nichts verändert werden, nur ausgehende Mails!
      Und es funktioniert auch mit IPv6. Hier ein Test mit und ohne Header Replacement.

      Deaktiviert:

      Received: from [IPv6:xxxx:4dd7:xxxx:0:497d:1e32:xxxx:xxxx] (xxxx-4dd7-6bb4-0-497d-1e32-xxxx-xxxx.ipv6dyn.xxxxx.de [IPv6:xxxx:4dd7:6bb4:0:497d:1e32:xxxx:xxxx])
      (using TLSv1.2 with cipher ECDHE-ECDSA-AES128-GCM-SHA256 (128/128 bits))
      (Client did not present a certificate)
      by mail.xxxx.de (Postfix) with ESMTPSA id 344CE2A107D
      for ; Tue, 16 Apr 2019 14:19:17 +0200 (CEST)

      Aktiviert:

      Received: from 127.0.0.1 (localhost [127.0.0.1])
      (using TLSv1.2 with cipher ECDHE-ECDSA-AES128-GCM-SHA256 (128/128 bits))
      (Client did not present a certificate)
      by mail.xxxx.de (Postfix) with ESMTPSA id DE7891821AE
      for ; Tue, 16 Apr 2019 14:20:34 +0200 (CEST)

      Gruß,
      Dominion

  5. Avatar Firlus sagt:

    Hey Dominion,

    ich habe da jetzt Stunden rumprobiert. Das Ergebnis bleibt leider das Selbe. Wenn die Parameter gesetzt sind, werden bei eingehenden und ausgehenden Mails die Header User-Agent, X-Mailer entfernt und nicht nur bei ausgehenden Mails. Sendest und empfängst du deine Mails über die identische Postfix Instanz?
    Mir scheint es so als sei es normal, dass eingehende und ausgehende Mails gleich behandelt werden. Auch brachte die Umstellung zwischen smtp_header_checks zu header_checks und pcre zu regexp nichts. Hat es vielleicht damit etwas zu tun, auf welchen Ports die Mails versendet und empfangen werden?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.