拒绝使用我的虚拟域之一作为发件人地址而不是我的合法用户的传入电子邮件会很好。
我知道我可以拒绝使用现有别名/帐户名的传入电子邮件,smtpd_sender_restrictions=reject_sender_login_mismatch
但这仍然允许攻击者将不存在的电子邮件地址与我的一个虚拟域一起使用。(这在垃圾邮件检测方面受到青睐)。
拒绝使用我的虚拟域之一且未经身份验证的传入邮件的最佳方法是什么?
由于邮件列表和转发存在问题,SPF 和 DKIM 已设置但配置为 SoftFail。我不是在寻找 SPF 或 DKIM,而是针对作为上述域的 MX 的后缀服务器的解决方案。
我找到了两种可能的方法,但也许有更好的方法。
第一种方法:
现在我修改了 my
smtpd_sender_login_maps
以返回域表中admin
是否存在域的条目。这样会返回一条记录,即使电子邮件地址不作为 maibox/alias 存在,但当外部域是发件人地址时则不会。方法二:
check_sender_access
如果域是虚拟域而用户不是,则此方法使用返回拒绝操作的查找sasl_authenticated
。mysql_reject_virtual_domains.cf
:第三种方法(感谢masegaloeh):
我不知道有多少 cpu-load/SQL-queries reject_unlisted_sender生成,因为它检查了很多东西:
请求 Postfix SMTP 服务器拒绝来自未知发件人地址的邮件,即使没有
reject_unlisted_sender
指定明确的访问限制。这可以减缓蠕虫或病毒伪造邮件的爆炸式增长。当一个地址匹配一个虚拟(5)别名或一个规范(5)映射时,它总是被认为是“已知的”。
正确的方法是为您的域设置 SPF 并在 MTA 中启用 SPF。然后,您不仅可以为自己的域伪造获得保护,还可以为所有其他启用了 SPF 的域获得保护。
您应该尝试至少实现以下一项(两者都更好):
另一个没有联合的单独查询的第一种方法: