Pour supprimer l'adresse IP de l'expéditeur de l'en-tête Reçu pour les nouvelles soumissions de courrier, utilisez la header_checks
clé au lieu de l' smtp_header_checks
option:
header_checks = regexp:/etc/postfix/header_checks_submission
L' smtp_header_checks
option s'applique uniquement au courrier envoyé de Postfix à des serveurs externes, tandis que l' header_checks
option s'applique au courrier entrant envoyé par votre client à Postfix.
Voir aussi Comment Postfix reçoit le courrier sur http://www.postfix.org/OVERVIEW.html pour une vue d'ensemble des composants, le courrier passe de smtpd -> nettoyage -> file d'attente entrante. Le smtpd
processus reçoit du courrier et injecte l'en- Received
tête avec l'adresse IP de l'expéditeur. L' header_checks(5)
option est traitée par le cleanup(8)
composant qui nettoie les en-têtes des e-mails.
Il n'est pas recommandé de définir une telle header_checks
option globalement dans votre main.cf car cela modifierait l'en-tête Received dans tous les e-mails, même ceux reçus de serveurs externes. Au lieu de cela, vous devez configurer votre client pour envoyer des e-mails via un service de soumission dédié sur le port 587, et configurer Postfix pour réécrire les en-têtes pour ces soumissions authentifiées uniquement.
Dans /etc/postfix/master.cf
, ajoutez les -o
lignes suivantes après la submission
ligne:
submission inet n - y - - smtpd
# Require SASL authentication
-o smtpd_sasl_auth_enable=yes
# Require TLS transport security, do not leak your credentials in plaintext.
-o smtpd_tls_security_level=encrypt`
# Disallow unauthenticated users from sending mail through this port.
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# Use a different cleanup service (see below)
-o cleanup_service_name=ascleanup
Il est temps de configurer le nettoyage service pour un uthenticated s ubmissions. Je choisis le nom ascleanup
pour le garder court et aligné, mais tout nom fonctionne. Pour ce faire, dupliquez la ligne de service de nettoyage dans le même master.cf
fichier, mais renommez le premier champ et ajoutez une nouvelle option pour sélectionner le fichier de filtre:
cleanup unix n - y - 0 cleanup
ascleanup unix n - y - 0 cleanup
-o header_checks=pcre:/etc/postfix/header_checks_submission
(L'utilisation de la pcre
table nécessite une installation postfix-pcre
sur Debian, qui se chargera automatiquement de la mise à jour du fichier dynamicmaps.cf. Aucune autre modification n'est nécessaire pour cela.)
La dernière pièce est la configuration réelle du filtre /etc/postfix/header_checks_submission
. Vous pourriez potentiellement utiliser quelque chose comme:
/^Received: .*/ IGNORE
ce qui supprimera la ligne d'en-tête Received complète, mais à la place, vous pouvez également supprimer la from helo.host (reverse.host.name [192.0.2.1])
pièce tout en préservant les autres informations:
/^Received: from [^ ]+ \([^ ]+ \[[IPv0-9a-f:.]+\]\)\s+(.* \(Postfix\) with .+)$/ REPLACE Received: $1
Si vous avez changé l' mail_name
option, changez le Postfix
mot pour qu'il corresponde à votre configuration. (Ce modèle est précis sur la base du code source de Postfix, smtpd / smtpd.c .)
J'ai testé cela avec postfix 3.4.7-0 + deb10u1 sur Debian buster. Pour une autre description intéressante avec la même approche, voir Lors de l'envoi d'e-mails 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?
Avec la modification ci-dessus, ce qui suit est transformé en Received: by ...
:
Received: from debian (unknown [IPv6:fe80::b036:2ff:fe6e:73f4])
by mail.example.nl (Postfix) with ESMTPSA id 1571B910B
for <some@example.com>; Sun, 12 Jan 2020 02:23:15 +0000 (UTC)