让垃圾邮件发送者

我想设置一个方法来阻止连接到我的邮件服务器的垃圾邮件发送者 – 我已经设置了fail2ban来运行一个iptables tarpit,它似乎正在工作。 问题是,我怎样才能断开后缀smtpd进程释放这些资源,同时仍然持有垃圾邮件发送者tarpitted?

你可能会发现这些选项有趣…

我真的很想念60秒左右的延迟qmail添加到每个额外的收件人/消息,如果他们超过说10条消息…

在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 

你可能会试图减less这些数字,15和30还是有点大。 今天,我遭到了两名垃圾邮件发送者的袭击,一名使用90,另一名使用183个不同的IP地址。 如果每个人以15分钟的速度发送他们每分钟发送4.095封电子邮件 ! 那么当然会好于一万分钟。 🙂

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

Qmail的tarpit只是在消息超出阈值时才添加延迟,无论列表中有多less个接收者,都是好的。 这可以以某种方式适用于后缀,你可以安全地限制列表低至每分钟5收件人/邮件。 :/

不完全陷阱,但你可能想看看灰名单 – 有一些解决scheme的后缀 。

就我个人而言,我并没有发现这种方法(因为人们期望邮件几乎是实时工作的),但有一件事是肯定的 – 在截断垃圾邮件方面非常有效。

一旦发现垃圾邮件发送者,您是否会将数据包发送到tarpit?

如果你不能find一种方法来杀死处理该连接的特定进程,也许你可以让当前的连接完成? 应该可以设置iptables,以便每当一个数据包匹配你的主机黑名单时,它首先检查它是否是现有连接的一部分(如果是的话就让它通过),否则发送给NOTRACK&TARPIT?

这可能对你现在没有什么帮助,但是Postfix 2.8预定了postscreen服务,这是一个单独的pre-smtpd筛选过程,在传递连接之前进行一些基本的检查。 取决于你确定连接的速度有多快,你可能能够在它们到达smtpd之前捕获它们。 为了实现这个目标,你必须运行实验版本或者从中提取屏幕后的二进制文件,并尝试将其集成到当前的设置(可能很困难)。

现在,你可以研究一下fail2ban做的iptables动作,以便Postfix得到一个RST包并释放smtpd。