Postfix - 如何防止外部客户端使用我的服务器作为中继?

Postfix - 如何防止外部客户端使用我的服务器作为中继?

我在 Ubuntu 14.04 上安装了 postfix 服务器。机器上运行的 PHP 脚本使用它来发送外发电子邮件。此外,我使用 postfix 接收发送到本地帐户的邮件,然后将其转发到我的个人 gmail。

但是,这意味着任何人都可以连接到我的服务器并将其用作垃圾邮件的开放中继。如何防止远程连接中继电子邮件?

这是我的main.cf:

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = aviacao.pt
virtual_alias_maps = hash:/etc/postfix/virtual
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = aviacao.pt, localhost.localdomain, localhost
relayhost = 
mynetworks = 0.0.0.0/0
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4

如果我更改mynetworks127.0.0.0/8那么人们将无法向本地帐户发送电子邮件。

答案1

你的smtpd_relay_restrictions应该防止任何人都可以连接到我的服务器并将其用作垃圾邮件的开放中继。

的价值mynetworks不能确定其他人是否可以给您发送电子邮件。 127.0.0.0/8是正确的值,而 0.0.0.0/0 则不是。

决定是否接受您帐户的电子邮件的[email protected]设置取决于通知 Postfix 应该接受域名电子邮件的设置example.com,例如mydestination

答案2

您所拥有的 smtpd_relay_restrictions 设置是正确的,只是您将 mynetworks 定义为完全开放(如下所示,来自您的 main.cf)

mynetworks = 0.0.0.0/0

只需删除 mynetworks;默认值应限制中继访问。例如,我的默认值如下所示。

postconf -d |grep mynetworks
mynetworks = 127.0.0.0/8 192.168.1.0/24

您确实应该测试您的服务器以确保它不是开放中继。有很多可用的在线工具,例如:http://www.mydnstools.info/smtprelay

参考:http://www.postfix.org/SMTPD_ACCESS_README.html

相关内容