从后缀中删除/隐藏客户端发件人IP?


16

我正在尝试从后缀发送的电子邮件中隐藏客户端IP。

这是我的意思的示例:

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

注意这一行 (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])

我想从电子邮件中删除该行。

我尝试这样做:

/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

但是我的IP地址仍然在电子邮件的接收部分之内。如果我从本地的smtp服务器发送电子邮件,则IP地址变为localhost.localdomain [127.0.0.1]

如何从标头中删除客户端IP?

Answers:


12

main.cf

smtp_header_checks = pcre:/etc/postfix/smtp_header_checks

dynamicmaps.cf

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

您应该将其放在您的/etc/postfix/smtp_header_checks

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

然后跑

# /etc/init.d/postfix reload

我的IP地址仍然显示。感谢您的努力。
凯尔(Kyle)

没有必要使用postfix-pcre。正则表达式的工作方式相同。
凯尔(Kyle)2012年

好的。我已确保在系统上安装了pcre。我已更改regexp:/etc/postfix/smtp_header_checkspcre:/...。然后,我重新启动了postfix,并监视了邮件日志中是否有任何错误。没有显示错误。该电子邮件仍然显示我的IP。XD迈克,感谢您的努力。
凯尔(Kyle)

嗯...我收到一个错误,但是我发现了这个irbs.net/internet/postfix/0404/1097.html我使用了论据,使用了这个postfix.org/pcre_table.5.html测试了正则表达式: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_checks输出IGNORE是工作。但是,它没有在电子邮件中进行更改...内部字段是否main.cf错误?
凯尔(Kyle)2012年

1
该死的人。我只是浪费你的时间。一开始是我的错 smtp_header_checks原本应该header_checks...现在可以工作。对不起,我浪费了您的时间。感谢您的努力。谢谢。pcre也可以。我在centos上。再次感谢,兄弟。
凯尔(Kyle)

3

打开/etc/postfix/master.cf并找到:

cleanup unix n - n - 0 cleanup

在这些行下面添加并成为:

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

编辑/ etc / postfix / header_checks并添加以下代码:

/^Received:/ IGNORE

现在重新启动后缀。在CentOS上说:

service postfix restart


1
不幸的是,这也将剥夺Received传入邮件的标题。

0

要从Received标头中删除发件人IP以提交新邮件,请使用header_checks键而不是以下smtp_header_checks选项:

header_checks = regexp:/etc/postfix/header_checks_submission

smtp_header_checks选项仅适用于从Postfix发送到外部服务器的邮件,而该header_checks选项适用于从客户端发送到Postfix的传入邮件。

另请参见http://www.postfix.org/OVERVIEW.html上Postfix的接收方式,获取有关组件的概述,邮件来自smtpd-> cleanup->传入队列。该smtpd过程接收邮件,并在Received标题中添加发件人IP地址。该header_checks(5)选项由cleanup(8)清理电子邮件标题的组件处理。

这是建议设置这样一个header_checks在全球范围内main.cf选择,因为这将修改接收的报头的所有电子邮件,即使是那些从外部服务器接收。相反,您应该将客户端配置为通过端口587上的专用提交服务发送电子邮件,并配置Postfix以仅重写这些经过身份验证的提交的标头。

在中/etc/postfix/master.cf,在该-o行之后添加以下submission行:

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

时间配置清理服务 uthenticated 小号 ubmissions。我选择名称ascleanup以使其简短和对齐,但是任何名称都可以。为此,请在同一文件中复制清理服务行master.cf,但重命名第一个字段并添加新选项以选择过滤器文件:

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

(使用该pcre表需要postfix-pcre在Debian上进行安装,这将自动处理更新dynamicmaps.cf文件。对此无需进行任何更改。)

最后一部分是中的实际过滤器配置/etc/postfix/header_checks_submission。您可能会使用类似:

/^Received: .*/ IGNORE

这将删除完整的Received标头行,但相反,您也可以from helo.host (reverse.host.name [192.0.2.1])在保留其他信息的同时放下零件:

/^Received: from [^ ]+ \([^ ]+ \[[IPv0-9a-f:.]+\]\)\s+(.* \(Postfix\) with .+)$/ REPLACE Received: $1

如果确实更改了该mail_name选项,请更改Postfix单词以匹配您的配置。(根据Postfix源代码smtpd / smtpd.c,此模式是准确的。)

我在Debian Buster上用postfix 3.4.7-0 + deb10u1测试了这一点。有关使用此方法的另一个详细说明,请参阅使用Postfix发送电子邮件时,如何在Received标头中隐藏发件人的IP和用户名?

通过上述修改,以下内容变为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)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.