OpenSMTPd:根据“已接收”域阻止发件人

OpenSMTPd:根据“已接收”域阻止发件人

对于 OpenSMTPd,我想根据服务器的域名阻止该服务器向我发送邮件。它在各地拥有大量 IP 地址,阻止每个 IP 地址的工作量太大,尤其是它发送的垃圾邮件数量巨大。我想直接阻止该服务器,有没有办法默默拒绝来自“example.com”邮件服务器的所有邮件(“已接收”包含此邮件)?

谢谢你!

答案1

Received不应使用标头来确定电子邮件的来源,因为它们很容易被欺骗。相反,您应该只信任您的邮件服务器可以自行获取的信息,例如源地址、主机HELO名和MAIL FROM(针对发件人域的 SPF 记录进行测试)。最后一个即最上面的Received:标头由您的服务器添加,此信息来自HELOSMTP 命令(结合 IP 地址和反向PTR)。

可以使用 Postfix 等工具检查标头内容header_checks(操作REJECT),但 OpenSMTPd 似乎没有实现任何类似的东西。此外,OpenSMTPd 只能将邮件转发到外部过滤器,这使得连接阶段拒绝对于失败的 SFP 或基于 DNS 的阻止列表(DNSBL)不可能。

OpenSMTPd 可以做什么来提供帮助smtpd.conf(5)match 选项 reject

  • 你说有一个到处都有大量 IP 地址,但它们实际上可能都在同一个网络块中。使用 egwhois IP.ADD.RE.SS确定子网为 CIDR 表示法,因为 OpenSMTPd 能够读取以 CIDR 表示法表示的子网,例如以下块192.0.2.0/24

    match from src 192.0.2.0/24 reject
    
  • 如果你想拒绝所有来自以下邮件服务器的邮件example.com并且该域名确实用于HELO主机名,则可以使用该信息进行拒绝。同样,match有一个选项,您可以使用列表table(5)文件:

    match helo <rejectHeloDomains> reject
    table rejectHeloDomains file:/etc/mail/rejectHeloDomains
    

    包含允许的域、通配符的列表文件:

    example.com
    *.example.com
    

不要默默地丢弃绝对是垃圾邮件,但使用连接阶段拒绝,正如这些例子一样。

相关内容