我怎样才能阻止来自[email protected]的外部邮件?

一家安全公司一直在testing我的邮件服务器,并声称我的Postfix守护进程是一个开放的中继。 证据如下(为了安全起见,mail.mydomain.com的有效公共IP已更改为10.1.1.1):

Relay User: postmaster Relay Domain: 10.1.1.1 Transaction Log: EHLO elk_scan_137 250-mail.mydomain.com 250-PIPELINING 250-SIZE 20480000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN MAIL FROM: postmaster@[10.1.1.1] 250 2.1.0 Ok RCPT TO: postmaster@[10.1.1.1] 250 2.1.5 Ok 

我已经阻止邮件的根,但显然我不应该阻止邮政局长。 我觉得把邮件从服务器发送到自己的能力并不会形成一个开放的中继。 但是,我怎样才能安全地阻止伪造的[email protected]发件人?

[注意我使用mxtoolbox.com扫描自己,他们说这是安全的,而不是一个开放的中继]

有人可以发邮件给你自己的邮件服务器的IP地址这一事实,对邮件服务器是否是一个开放的中继完全没有任何影响。

开放中继接受邮件的pipe理域外的任何和所有系统,并转发他们。 这显然不是在这里展示的。

要求安全公司分享他们正在吸烟的东西,因为这显然是好东西。

由于没有人提到过,所以这是SPFdevise要解决的问题之一。 如果您在DNS中发布了正确的SPFlogging,并让您的服务器检查SPFlogging,则会知道外部服务器不允许使用“From:*@yourdomain.com”发送电子邮件。 作为奖励,这不仅可以解决您的即时问题,还可以阻止垃圾邮件,并帮助我们其他人拦截垃圾邮件!

有关SPF和修复电子邮件/垃圾邮件问题的更多信息,请阅读:

战斗垃圾邮件 – 我可以做什么:电子邮件pipe理员,域名所有者或用户?

正如迈克尔指出的那样,这不是一个“开放中继”的问题。 如果他们认为是这样,你应该认真考虑解雇你的审计师。 这个东西并不难,而且就这个问题的术语和严重程度来说,他们是完全错误的

我想你需要使用smtpd限制。

我的configuration片段:

 smtpd_helo_restrictions = permit_mynetworks, reject_unauth_pipelining, permit_sasl_authenticated, reject_invalid_helo_hostname, reject_non_fqdn_hostname, reject_rbl_client zombie.dnsbl.sorbs.net, reject_rbl_client zen.spamhaus.org, reject_rbl_client bl.spamcop.net smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_non_fqdn_recipient, permit_sasl_authenticated, reject_unauth_destination, check_policy_service inet:[127.0.0.1]:2501, permit smtpd_sender_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_non_fqdn_sender, reject_unknown_sender_domain, permit_sasl_authenticated, permit_tls_clientcerts, check_sender_access regexp:$config_directory/tag_as_foreign.re, permit smtpd_data_restrictions = reject_unauth_pipelining, reject_multi_recipient_bounce, permit 

根据您的configuration,您可以执行多种检查。 SMTP工作stream程的每个阶段都有一个限制。 在http://www.postfix.org/postconf.5.html查看更多内容。

您应该为所有阶段定义限制,即smtpd_helo_restrictionssmtpd_data_restrictionssmtpd_sender_restrictionssmtpd_recipient_restrictionssmtpd_client_restrictions 。 在Postfix 2.10+有一个新的smtpd_relay_restrictions选项,可能是完全适合你。

请注意,如果您希望自己的邮件通过SMTP服务器进行中继,则需要以某种方式进行身份validation – 例如在$mynetworks使用身份validation。

我的configuration也使用黑名单,灰名单和身份validation。

基本上,您的SMTP限制应该允许:

  1. 您的networking(本地主机,内部网等;请参阅permit_mynetworks ),
  2. 经过身份validation的用户(用户使用SMTPlogin进行login,可以将邮件转发给外部服务器;请参阅permit_sasl_authenticated ),
  3. 发送给您的电子邮件(=您是他们的“最终目的地”;请参阅reject_unauth_destination )。
  4. 可选的所有其他电子邮件域您正在中继电子邮件; 例如,当您的服务器不是某个域的最终目标,而是例如前端代理时,您应该检查收件人的白名单并将其传输到下一个目的地。

所有其他电子邮件,由未经授权的用户从任何地方发送到外部服务器,意味着开放中继。

禁用VRFY和EXPN,因为这个参数可以被垃圾邮件发送者使用http://cr.yp.to/smtp/vrfy.html