![停止来自内部网络的 Postfix 中继](https://linux22.com/image/625713/%E5%81%9C%E6%AD%A2%E6%9D%A5%E8%87%AA%E5%86%85%E9%83%A8%E7%BD%91%E7%BB%9C%E7%9A%84%20Postfix%20%E4%B8%AD%E7%BB%A7.png)
我正在使用 Postfix 2.7.1(暂时无法更改为较新的版本),并且它运行良好,但即使指定的发件人不是来自 Postfix 服务的域,它也允许从内部网络中继邮件。
换句话说,如果我的域名是 mydomain.com,则我本地网络上的任何计算机都可以使用以下方式向任何其他域发送电子邮件[电子邮件保护]作为发件人的电子邮件地址,我该如何阻止这种情况?
我在 main.cf 中有这个:
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
我试图将 mynetworks 限制为仅限 localhost 或将 smtpd_recipient_restrictions 中的顺序更改为:
smtpd_recipient_restrictions = 拒绝未认证目的地,允许我的网络,允许 sasl_authenticated
但结果是网络上的所有用户都无法发送电子邮件。
在此先感谢您的帮助!
答案1
如果您遇到有人使用“非官方”或虚假账户发送的问题,smtpd_sender_login_maps选项就是您所需要的。它将获取 SASL 登录名,并检查文件/DB/正则表达式以查看 From: 名称是否有效,然后进行中继或拒绝。您必须创建映射,但这是唯一涉及的工作。
答案2
我假设您想要发送电子邮件,只要它们来自您的域作为发件人地址。
smtpd_sender_restrictions = reject_unknown_sender_domain, reject_unlisted_sender, check_sender_access hash:/etc/postfix/localdomain, reject
在/etc/postfix/localdomain中:
mydomain.com OK
在 localdomain 中,您还可以添加出现的任何受损帐户:
[email protected] 550 Account compromised
不要忘记在 localdomain 文件上运行 postmap,因为它是一个散列文件引用。