Supprimer / masquer l'adresse IP de l'expéditeur client de Postfix?

16

J'essaie de cacher l'adresse IP du client des e-mails envoyés par postfix.

voici un exemple de ce que je veux dire:

Received: from mail.[removed].com (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])
    (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
    (No client certificate requested)
    by mail.[removed].com (Postfix) with ESMTP id D50C7BF185DD
    for <[removed]@gmail.com>; Thu,  2 Aug 2012 16:14:21 +0900 (JST)
Date: Thu, 02 Aug 2012 07:14:08 +0000

Remarquez cette ligne (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])

Je souhaite supprimer cette ligne de l'e-mail.

J'ai essayé de faire ça:

/etc/postfix/main.cf:

smtp_header_checks = regexp:/etc/postfix/smtp_header_checks

smtp_header_checks:

/^((.*) [(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])])/    IGNORE

Mais mon adresse IP est toujours à l'intérieur de la partie reçue de l'e-mail. Si j'envoie un e-mail sur le serveur smtp localement, l'adresse IP devientlocalhost.localdomain [127.0.0.1]

Comment supprimer les adresses IP clientes de l'en-tête?

Kyle
la source

Réponses:

12

Dans main.cf:

smtp_header_checks = pcre:/etc/postfix/smtp_header_checks

Dans dynamicmaps.cf:

# Use your real path to dict_pcre.so, below
pcre    /usr/lib/postfix/dict_pcre.so           dict_pcre_open

Vous devez mettre ceci dans votre /etc/postfix/smtp_header_checks:

/^Received: .*/     IGNORE
/^X-Originating-IP:/    IGNORE

Exécutez ensuite

# /etc/init.d/postfix reload
Mike Pennington
la source
Mon adresse IP est toujours affichée. J'apprécie les efforts.
Kyle
Il n'est pas nécessaire d'avoir postfix-pcre. Regexp fonctionne de la même manière.
Kyle
Bien. J'ai vérifié que pcre était installé sur le système. J'ai changé regexp:/etc/postfix/smtp_header_checkspour pcre:/.... J'ai ensuite redémarré postfix et surveillé maillog pour toute erreur. Aucune erreur n'a été affichée. L'e-mail affiche toujours mon adresse IP. XD Merci pour les efforts, Mike.
Kyle
Hmm ... je reçois une erreur mais j'ai trouvé cet irbs.net/internet/postfix/0404/1097.html J'ai testé l'expression régulière avec cet argument postfix.org/pcre_table.5.html en utilisant: postmap -q "Received: from mail.[removed].com (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])" pcre:/etc/postfix/smtp_header_checkset la sortie était IGNOREtelle qu'elle est travail. Cependant, il ne fait pas de changements dans l'e-mail ... Le champ à l'intérieur est-il main.cffaux?
Kyle
1
Merde. Je viens de perdre ton temps. C'est ma faute au tout début. smtp_header_checksétait censé être header_checks... Cela fonctionne maintenant. Je suis vraiment désolée d'avoir perdu votre temps. J'apprécie vos efforts. Je vous remercie. pcre fonctionne également. Je suis sur centos. Merci encore, mon frère.
Kyle
3

Ouvrez /etc/postfix/master.cf et recherchez:

cleanup unix n - n - 0 cleanup

Ajoutez sous ces lignes et devenez:

cleanup unix n - n - 0 cleanup -o header_checks=pcre:/etc/postfix/header_checks

Modifiez / etc / postfix / header_checks et ajoutez les codes ci-dessous:

/^Received:/ IGNORE

Redémarrez maintenant postfix. Disons sur CentOS:

service postfix restart

igtztorrero
la source
1
Malheureusement, cela supprimera également l'en- Receivedtête du courrier entrant.
0

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_checksclé au lieu de l' smtp_header_checksoption:

header_checks = regexp:/etc/postfix/header_checks_submission

L' smtp_header_checksoption s'applique uniquement au courrier envoyé de Postfix à des serveurs externes, tandis que l' header_checksoption 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 smtpdprocessus reçoit du courrier et injecte l'en- Receivedtê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_checksoption 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 -olignes suivantes après la submissionligne:

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 ascleanuppour le garder court et aligné, mais tout nom fonctionne. Pour ce faire, dupliquez la ligne de service de nettoyage dans le même master.cffichier, 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 pcretable nécessite une installation postfix-pcresur 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_nameoption, changez le Postfixmot 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 <[email protected]>; Sun, 12 Jan 2020 02:23:15 +0000 (UTC)
Lekensteyn
la source
-1

utilisez ceci:

/^Received: from .*127.0.0.1**/ IGNORE

n'utiliser que des *deux extrémités

HiperKulet
la source
Ou plus comme ça? / ^ Reçu: de. * 127 \ .0 \ .0 \ .1. * / IGNORE
Jack B.