阻挠垃圾邮件发送者

阻挠垃圾邮件发送者

我想设置一种方法来阻止连接到我的邮件服务器的垃圾邮件发送者 - 我已经设置了 fail2ban 来运行 iptables tarpit,它似乎正在工作。问题是,我如何断开 postfix smtpd 进程以释放这些资源,同时仍然阻止垃圾邮件发送者?

答案1

您可能会发现这些选项很有趣...

如果超过 10 条消息,我真的很怀念 qmail 为每个额外的收件人/消息添加的 60 秒左右的延迟......

在 main.cf 上使用这些

# limit max sends per minute
anvil_rate_time_unit = 60s
smtpd_client_event_limit_exceptions = $mynetworks
smtpd_client_recipient_rate_limit = 15
smtpd_client_message_rate_limit = 30

您可能想尝试减少这些数字,15 和 30 仍然有点大。今天我被两个垃圾邮件发送者攻击了,一个使用 90 个,另一个使用 183 个不同的 IP 地址。如果每个都以每分钟 15 个的速度发送,他们每分钟发送 4.095 封电子邮件!那当然比每分钟 100,000 个要好。:)

但是,如果您将其设置得太低,您的客户可能会抱怨无法将照片附加到他们的长客户列表中。

Qmail 的 tarpit 只是在消息超过阈值时增加消息之间的延迟,无论列表中有多少收件人,这都没问题。这也可以以某种方式应用于 postfix,您可以安全地将列表限制为每分钟 5 个收件人/消息。:/

答案2

不完全是诱捕,但你可能想看看灰名单- 有一些postfix 的解决方案

我个人并不认同这种方法(因为人们希望邮件能够近乎实时地工作),但有一点是肯定的 - 它在拦截垃圾邮件方面非常有效。

答案3

当你检测到垃圾邮件发送者时,你会立即将数据包发送到垃圾邮件发送者邮箱吗?

如果您找不到方法来终止处理该连接的特定进程,也许您可​​以让当前连接完成? 应该可以设置 iptables,以便每当数据包与您的主机黑名单匹配时,它首先检查它是否是现有连接的一部分(如果是,则让它通过),否则将其发送到 NOTRACK 和 TARPIT?

答案4

这可能现在对您没有帮助,但 Postfix 2.8 计划获得 postscreen 服务,这是一个单独的 smtpd 前筛选过程,在传递连接之前会进行一些基本检查。根据您将连接识别为 tarpittable 的速度,您可能能够在它们到达 smtpd 之前捕获它们。要立即获得此功能,您必须运行实验版本或从中提取 postscreen 二进制文件并尝试将其集成到您当前的设置中(可能很困难)。

现在,您可以研究如何反转 fail2ban 所执行的 iptables 操作,以便 Postfix 获取 RST 数据包并释放 smtpd。

相关内容