qmail限制用户或域每小时发送的电子邮件数量

qmail限制用户或域每小时发送的电子邮件数量

我为几个不同的域名托管一个邮件服务器。最近,其中一个用户的密码被猜出/破解,该帐户被用来发送了几十万封邮件,然后我才注意到并关闭了它,导致整个服务器被列入黑名单

我想在 qmail 中设置一个限制,以便根据每个用户/域/时间限制发送电子邮件的速率,但到目前为止还没有找到任何内置功能。

您所知道的任何技术都会有用。我遇到的一个选项是通过 SpamAssassin 发送出站电子邮件,但我担心会阻止合法邮件。

答案1

有某种节流阀贴片适用于符合您描述的 Qmail。我怀疑如果不修补 Qmail,是否还有内置功能,因为 Qmail 本身就编码完美。

请查看关于各种 MTA 的讨论,特别是关于 Qmail 的说明。请记住,这个讨论是 6 年前的,当时关于 Qmail 的说法更是如此。这也许不在您的短期或中期计划中,但从 Qmail 迁移应该是一件值得考虑的事情,特别是如果您必须应用一堆随机补丁才能让它做您想做的事情。

嗯,关于如何在 Postfix 中做类似的事情的讨论是使用政策附加组件。浏览一下该项目,你会发现它可以与不同的 MTA 一起使用,因此你也许可以说服 Qmail 使用它。

答案2

效果非常好,谢谢!

您还应该在第一个 grep 后面包含下一行:

grep "$(date +" %b %d")" /var/log/maillog| grep 提交:| awk -Fsuccess {'print $2'} |awk -F: {'print $1'} | sort | uniq -c | sort -n | grep -v (未知)| awk {'print $1"|"$2'}

所以您也可以阻止简单的未加密的 smtp 提交。

问候!

答案3

您还可以使用 swatch 监视外发邮件,当 swatch 检测到 qmail-send 达到最大值(例如:远程 30/30)时,向您发送警报。

您可以使用 tcpserver limits 补丁:使 tcpserver 能够在服务器的平均负载高于某个数字时、从同一 IP 地址接收到超过一定数量的连接时或从同一 C 类块中的机器接收到超过一定数量的连接时拒绝连接(即,它们的 IP 地址中的“前三个数字”相同。“1.2.3.4”和“1.2.3.100”在同一个 C 类块中。)https://qmail.jms1.net/ucspi-tcp/

答案4

还请添加此行以保护您的服务器免受本地身份验证的用户的侵害:

grep "$(date +"%b %_d")" /var/log/maillog |
grep auth: |
grep ALL |
grep '127.0.0.1' |
awk -Ffrom\: {'print $2'} |
awk -Fto\: {'print $1'} |
sort | uniq -c | sort -n | grep -v bounce |
awk {'print $1"|"$2'}

问候!

相关内容