如何配置 Postfix 以仅允许发送到某个(外部)域?
我已经在使用 check_recipient_access。我的 /etc/postfix/recipients_restrictions 的内容:
domain.com OK
我的(当前)配置:
smtpd_recipient_restrictions =
permit_mynetworks,
check_recipient_access hash:/etc/postfix/recipients_restrictions,
permit_sasl_authenticated,
reject_unknown_recipient_domain,
reject_unauth_destination,
reject
我已经尝试切换 permit_mynetworks 和 check_recipient_access。如果我在 Recipients_restrictions 文件中创建“baddomain.com REJECT”之类的条目,它就可以正常工作。我发现,在这个文件中没有办法为“Reject”创建通配符(如果我错了,请纠正我)。
我希望该服务器仅向少数域的地址发送邮件,并出于安全考虑限制其向任何其他域发送邮件。
答案1
check_mumble_access 表永远不会返回默认值 REJECT;fallthrough 默认值始终为 DUNNO,这意味着它将检查其余的限制。
您也不想对您希望允许的所有域返回 OK,因为这样不会检查其余的限制。
您应该使用 SASL 和 TLS 在端口 587 上设置提交,以将邮件提交到 postfix 机器;然后,这个专用的监听器可以只允许流量到一个域。
如果失败的话,您将必须为其创建一个restriction_class,以便permit_checks依赖于收件人(域)和发件人(域)。
这是一个不简单的练习。
答案2
/etc/postfix/main.cf:
smtpd_recipient_restrictions =
check_recipient_access hash:/etc/postfix/protected_destinations
...the usual stuff...
smtpd_restriction_classes = insiders_only
insiders_only = check_sender_access hash:/etc/postfix/insiders, reject
/etc/postfix/protected_destinations:
[email protected] insiders_only
[email protected] insiders_only
/etc/postfix/insiders:
my.domain OK matches my.domain and subdomains
another.domain OK matches another.domain and subdomains
取自此处: http://vicky2183.wordpress.com/2010/07/09/postfix-per-recipient-sender-restrictions/
几年前我就用过这样的设置。我限制本地收件人只能发送和接收来自允许目的地的电子邮件。
答案3
我发现我必须删除permit_mynetworks
它才能拒绝任何未指定的内容check_recipient_access
。