Lors de l'envoi d'un e-mail avec Postfix, comment puis-je masquer l'adresse IP et le nom d'utilisateur de l'expéditeur dans l'en-tête Reçu?

13

Lors de l'envoi de courrier, Postfix insère l'adresse IP et le nom d'utilisateur de l'utilisateur authentifié dans l'en-tête Reçu de l'e-mail. Bien que cela soit utile pour retrouver qui a envoyé un e-mail particulier qui a été envoyé depuis votre serveur de messagerie, cela a également des implications sur la confidentialité. Dans une situation à petite échelle où je peux faire confiance à tous les utilisateurs pour ne pas voir leurs comptes compromis et transformés en zombies de spam, je préfère ne pas diffuser les adresses IP et les noms de compte pour que tous puissent les lire. En bref, comment configurer Postfix pour ne pas envoyer ceci:

Reçu: de [xxxx] (pc1.example.com [xxxx]) (en utilisant TLSv1 avec le chiffrement DHE-RSA-AES256-SHA (256/256 bits)) (Aucun certificat client demandé) (Expéditeur authentifié: utilisateur) par courrier. example.com (Postfix) avec l'ID ESMTPSA CC77010C148 pour; Ven.11 nov.2011 04:55:18 +0000 (UTC)

Michael Kropat
la source

Réponses:

20

La solution standard consiste à utiliser l' option header_checks . Cette volonté de travail, cependant, si l' on filtre reçu des lignes sur l' ensemble du courrier (cela fera comme) entrant et sortant, nous pourrions potentiellement en- têtes reçus lose sur le courrier envoyé à nous, qui peut être important pour le dépannage. Pour contourner ce problème, nous appliquerons la header_checksseule au courrier que nous-mail ne pouvait pas avoir été envoyé qui a été envoyé à la soumission le port (vous êtes utilisez le port de soumission , n'êtes - vous pas? ).

Ce message explique comment postuler header_checksexclusivement au port de soumission. Ce que nous devons faire est de passer l' option cleanup_service_name au service de soumission afin que nous puissions mettre en place un nouveau service de nettoyage, "subcleanup". La section pertinente de /etc/postfix/master.cfpourrait ressembler à ceci:

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

Nous pouvons maintenant passer l' header_checksoption au nouveau service de nettoyage. Cette partie /etc/postfix/master.cfpourrait ressembler à ceci:

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

Enfin, nous devons créer le fichier /etc/postfix/submission_header_checks, qui contiendra l'expression régulière qui filtre les lignes d'en-tête Receiving incriminées. Le regex que vous mettez dans le fichier dépend de si vous l'avez smtpd_sasl_authenticated_headerdéfini.

Si smtpd_sasl_authenticated_headerc'est le cas yes, utilisez:

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

Sinon, utilisez:

/^Received:.*\(Postfix/ IGNORE

(Merci à Dominic P et Bryan Drewery d'avoir montré comment gérer le deuxième cas.)

Michael Kropat
la source
Devez-vous appeler postmap submission_header_checks?
Mitar
@Mitar aucun indice, mais si vous découvrez que vous le faites, n'hésitez pas à modifier la réponse. Ce sont d'anciennes instructions pour 10.04, mais je les mettrai probablement à jour lorsque 14.04 sortira.
Michael Kropat
Il semble que cela a fonctionné sans. :-)
Mitar
1
+1, merci pour la réponse très utile. C'est quelques années plus tard, et j'ai dû faire un petit ajustement. J'utilise Postfix 2.9.6. J'ai changé l'expression régulière en: /^Received:.*\(Postfix/ IGNOREparce que je n'obtenais pas la partie "Expéditeur authentifié" dans mes en-têtes. Voyez-vous des risques associés à ma nouvelle expression régulière?
Dominic P
1
Cette réponse suppose que smtpd_sasl_authenticated_header = yes est défini. Sans cela, le regex modifié par Dominic est nécessaire.
Bryan Drewery
-1

Vous pouvez utiliser

smtpd_sasl_authenticated_header = no

en postfix/main.cfpour éliminer les informations d' en- tête dans vos mails sortants.

Markus
la source
pourquoi cette réponse est-elle beaucoup plus simple que celle de @ Michael? cela supprime-t-il l'IP de tous les en-têtes, au lieu de simplement des e-mails reçus via le port de soumission?
knocte
2
@knocte smtpd_sasl_authenticated_headerest réglé sur "non" par défaut de toute façon. Lorsqu'il est activé, Postfix ajoute le nom d'utilisateur qui a été utilisé pour l'authentification SASL à l'en-tête "Received" initial - c'est ce qui ajoute la partie "Expéditeur authentifié: utilisateur" montrée dans la question. @ La réponse de Michael supprime non seulement la partie utilisateur, mais tout l'en-tête "Received", y compris l'adresse IP du client.
n.st
@ n.st: dites-vous que la réponse de Markus ne supprime pas l'IP et donc pas cette question SO?
knocte
@knocte Exactement.
n.st
1
J'ai besoin de 125+ pour voter contre. Je l'ai testé et il supprime uniquement le nom d'utilisateur, pas l'IP.
John