
我維護著一個供數百名客戶使用的郵件伺服器。有時,客戶會被病毒感染並開始發送大量垃圾郵件。我注意到這一點主要是因為它在郵件佇列中填滿了數萬封待處理的郵件,而不是幾百封。
找到垃圾郵件寄件者的 IP 位址並封鎖它很簡單,但我的郵件佇列中仍然有數以萬計的垃圾郵件,並且通常具有不同的寄件者位址。
當我使用它來列印貼文佇列時,postqueue -p
它會顯示郵件 ID、寄件者電子郵件地址和所有收件者。它不顯示寄件者的 IP。
我可以透過執行以下命令找到郵件的寄件者 IP:
postcat -q ABCDEF1234 | egrep "\\bclient_address="
其中「ABCDEF1234」是郵件 ID。
我編寫了一個工具,列出所有郵件 ID,然後循環遍歷postcat -q
每個郵件 ID,並過濾掉那些與輸入 ID 不符的郵件。
這可行,但它是非常慢。過濾包含 441 封電子郵件的貼文佇列需要 7-8 秒。如果我試圖過濾一個充滿垃圾郵件的郵件佇列,其中包含數萬封郵件,那麼這個工具將毫無用處。
我希望有一些我不知道的工具或標誌可以讓我按寄件者 IP 位址進行過濾。
我正在運行 Postfix 2.10