我有一个 SMTP 中继器,可中继到我们的电子邮件转发服务器,但目前它正在接受来自各种恶意垃圾邮件发送者的邮件,并且我们的电子邮件转发主机已(正确地)暂停了转发,直到我们可以进一步锁定。因此,我想锁定此中继器,以便只接受具有特定“发件人”值的电子邮件,这是一个好的开始。
根据 QA在 Postfix 中拒绝未列出的发件人,我尝试过将其设置为main.cf
:
smtpd_sender_restrictions =
check_sender_access hash:/etc/postfix/acl_unknown_permited
reject_unlisted_sender
/etc/postfix/acl_unknown_permited
..并创建一个包含以下内容的新文件:
[email protected] permit
...使用适当的服务器名称。
但这似乎并没有拒绝电子邮件,因为将发件人地址设置为[email protected]
类似地址之外的内容[email protected]
并没有被拒绝。
是否有其他设置可以覆盖我在此处设置的设置?
目前我认为唯一可能出错的是我们的中继目标目前正在推迟电子邮件发送尝试。这会不会掩盖问题(我预计在遇到以下错误之前会发生拒绝,并且我谨慎地开启下一阶段,直到我们完全锁定中继)?
Apr 25 22:13:37 smtp-relay postfix/smtp[447151]: BE0FB4247C: to=<[email protected]>, relay=email.forwarder.com [X.X.X.X]:587, delay=0.29, delays=0.09/0.02/0.17/0, dsn=4.0.0, status=deferred (SASL authentication failed; server email.forwarder.com [X.X.X.X] said: 535 Too many failed login requests from Y.Y.Y.Y. Try again later. #MS-ST-D)
答案1
这听起来像是一次更大规模重新评估的开始,所以让我们从两件事开始:
Postfix SMTPdSMTP 守护进程强制执行限制:一旦,同时选择是否接受已提交的邮件并将其排队,或者是否拒绝。在对新接受邮件,你仍然需要手动整理不需要的邮件已接受到您的队列。运行
postqueue -p
以生成队列当前的样子的列表。如果您无法轻松确定每个队列项都是未经授权的,您可以通过查找说明来找到区分好坏的方法postsuper
。仅对可接受的信封发件人可能对你转发的垃圾邮件数量影响很小甚至没有影响 - 垃圾邮件发送者可能仍然会使用任何标题来自地址和任何内容。您可能希望实施大量额外限制,例如要求发件人认证或要求邮件来自特定网络(IPv4/IPv6)在您的控制之下(通常通过设置完成
mynetworks
)。