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 {'印 $2'} |awk -F: {'印 $1'} |排序| uniq-c|排序 -n | grep -v(未知)| awk {'印 $1"|"$2'}

因此您也可以阻止簡單的未加密的 smtp 提交。

問候!

答案3

您也可以使用樣本監控外寄郵件,當樣本偵測到 qmail-send 達到最大值(例如:遠端 30/30)時,會向您發送警報。

您可以使用 tcpserver 限制補丁:使 tcpserver 能夠在伺服器的平均負載高於特定數量、從相同 IP 位址接收到超過特定數量的連線或超過特定數量的連線時拒絕連線。連接(即,它們的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'}

問候!

相關內容