当我在ubuntu服务器上使用postfixbuild立电子邮件服务器时,如何确保它不会是一个开放的中继?
作为开放中转意味着您正在接受来自未经身份validation的用户的邮件,而不是您pipe理的域 。
Postfix有一些非常简单的configuration选项可以帮助:在它们之间的mynetworks和mynetworks_style规定从哪个networking地址到任何目的地的消息都将被接受。 mydestination用于指定哪些域是您pipe理的域(即,您应该接受因为他们是你的消息)。
所以最简单的设置看起来像:
mydomain = yourexampledomain.com mydestination = $myhostname, $mydomain mynetworks = 127.0.0.1/32 smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
这将只接受邮件:
并会拒绝其他任何事情。
这是我能想出的最基本的设置。 您需要在postconf(5)中读取mydomain,mydestination,mynetworks {_style}的条目。
如果您需要通过除networking以外的任何其他标准(例如用户名和密码或kerberos票据)来接受来自客户端的邮件,则需要阅读有关SMTP_AUTH的信息 。
我相信您需要在Postfixconfiguration文件中设置mynetworks_style
, mynetworks
和relay_domains
设置。 基本上,前两个控制哪个服务器Postfix将接收邮件,最后一个控制它将邮件转发到哪个服务器。 确切的设置取决于你希望如何configuration你的邮件服务器(也就是说,谁有权通过服务器发送邮件),但是通常relay_domains
应该只设置为邮件服务器本身的主机名(与mydestinations
), mynetworks_style
可以是设置为host
,这意味着只接受本地主机本身的电子邮件。
在http://articles.slicehost.com/2008/8/7/postfix-checking-for-an-open-relay上列出了一些testing,您可以使用它来检查您的服务器是否正在运行开放中继。 (其中一些链接可能已经死了,但我很确定至less有一个仍然有效…不记得是哪一个)
这里是我的服务器的Postfixconfiguration摘录:
luser_relay = mydestination = $ myhostname,$ mydomain,localhost,localhost。$ mydomain mynetworks = 127.0.0.1/32 [服务器的IP地址] / 32 mynetworks_style = host myorigin = $ mydomain relay_domains = $ mydestination smtpd_helo_restrictions = permit_mynetworks, reject_non_fqdn_hostname, reject_invalid_hostname smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, check_policy_service unix:private / postgrey, check_policy_service unix:private / policyd-spf, reject_rbl_client sbl-xbl.spamhaus.org
给 这个网站 这个网站试试。 它将允许您检查您是否正确configuration了您的邮件服务器
第一个网站更新不再有效