OpenSMTPd:根據「已接收」網域封鎖寄件者

OpenSMTPd:根據「已接收」網域封鎖寄件者

對於 OpenSMTPd,我想根據伺服器的網域阻止伺服器向我發送郵件。它在各處擁有大量 IP 位址,阻止每個單獨的 IP 位址的工作量太大,尤其是在它發送大量垃圾郵件的情況下。我想直接封鎖伺服器,有沒有一種方法可以默默地拒絕來自「example.com」郵件伺服器(「已接收」包含此內容)的所有郵件?

謝謝你!

答案1

Received頭不應用於確定電子郵件的來源,因為它們很容易被欺騙。相反,您應該只信任您的郵件伺服器可以自行獲取的信息,例如來源位址、HELO主機名稱和MAIL FROM(針對寄件者網域的 SPF 記錄進行測試)。最後一個,即最上面的Received:標頭是由您的伺服器添加的,該資訊來自HELOSMTP 命令(與 IP 位址和反向結合PTR)。

可以使用 Postfix 等進行標頭內容檢查header_checks(action REJECT),但 OpenSMTPd 似乎還沒有實現類似的功能。此外,OpenSMTPd 只能將郵件轉送到外部過濾器,這使得連線階段拒絕對於失敗的 SFP 或基於 DNS 的封鎖列表(DNSBL)不可能。

OpenSMTPd 可以做哪些可能有幫助的事情在 中進行了描述smtpd.conf(5)match 選項 reject

  • 你說有一個遍佈各處的大量 IP 位址,但它們實際上可能都在同一個網路區塊中。使用 例如 將whois IP.ADD.RE.SS子網路確定為 CIDR 表示法,因為 OpenSMTPd 能夠讀取以 CIDR 表示法表示的子網,例如 區塊192.0.2.0/24

    match from src 192.0.2.0/24 reject
    
  • 如果你想拒絕來自郵件伺服器的所有郵件example.com並且該網域確實在主機名稱中使用HELO,因此可以使用該資訊進行拒絕。同樣,match有一個選項,您可以使用列表table(5)文件:

    match helo <rejectHeloDomains> reject
    table rejectHeloDomains file:/etc/mail/rejectHeloDomains
    

    包含網域的清單文件,允許使用通配符:

    example.com
    *.example.com
    

不要默默地丟棄明確的垃圾郵件,但使用連線階段拒絕,就像這些例子一樣。

相關內容