我怎样才能使Postfix拒绝邮件传输基于地址?

我想通过运行邮件服务器了解运行邮件服务器。

为了有一定的责任心,避免成为一个开放的中继,我希望Postfix拒绝所有没有发往<有效用户> @ <主机名>的邮件或(来自<有效用户> @ <主机名>,而连接来自本地主机)。 它会默认这样做,还是我必须设置一些configuration?

你可以在main.cf里面放置很多检查,这些检查可以让你做到你想要的。 有些可能已经到位,有些则可能不到位。 例如Debian和Ubuntu经常似乎有合理的默认值,而RHEL等通常不会。

在规范的main.cf您通常会将mydestination作为逗号分隔的允许用作目标域的域名列表。 此外,您可能只允许接受某些事情,如通过将mynetworks的networking设置为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, ... 

限制的顺序很重要。 你可以看到,我们已经限制了我们在允许我的mynetworkspermit_mynetworks )之前接收消息。

你最好的行动方式是阅读优秀的文档,例如这里关于你最关心的话题 。

Postfix应正确configuration为不能打开中继,开箱即用。 您将不得不明确更改设置,以使其成为开放中继 。