我想通过运行邮件服务器来了解如何运行邮件服务器。
为了负责任地避免成为开放中继,我希望 Postfix 拒绝所有未发往 <有效用户>@<主机名> 或(来自 <有效用户>@<主机名> 且连接来自本地主机)的邮件。它会默认这样做吗?还是我必须设置一些配置?
答案1
您可以在内部进行许多检查main.cf
,以便您可以完全按照自己的意愿行事。有些可能已设置,有些则可能未设置。例如,Debian 和 Ubuntu 似乎通常具有合理的默认值,而 RHEL 等通常没有。
在规范中main.cf
,您通常必须mydestination
使用逗号分隔的允许作为目标域的域名列表。此外,您可能只允许接受某些事情,例如通过设置mynetworks
为 IP 地址和子网 (CIDR) 列表进行中继。然后,根据您设置的这两个值(以及其他内容)将所有内容放在一起smtpd_recipient_restrictions
,例如以下摘录:
smtpd_recipient_restrictions =
permit_sasl_authenticated,
reject_invalid_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unknown_sender_domain,
reject_unknown_recipient_domain,
reject_unauth_pipelining,
permit_mynetworks,
reject_unauth_destination,
...
限制的顺序做问题。您可以看到,在允许mynetworks
( permit_mynetworks
) 之前,我们已经限制了接收消息。
你最好的做法可能是阅读优秀的文档,例如以下是您最关心的话题。
答案2
Postfix 应该正确配置为不是开放式中继,开箱即用。您必须明确更改设置以使其成为开放中继。