Sendmail 8.14.4 on CentOS 6.8 tcpwrappers 問題
我在 CentOS 6.8 上執行 sendmail 伺服器。對於 port25 上的 MTA 連接,我想使用 tcpwrappers 拒絕沒有 PTR DNS 記錄的主機。
所以我的 hosts.allow 看起來像:sendmail: ALL EXCEPT UNKNOWN
我的問題是 587 上的郵件送出埠似乎共享此設置。結果是,沒有目前 IP 地址的 PTR 記錄的漫遊使用者(主要在 US Cellular 上)在進行身份驗證之前被拒絕。
我可以通過設置 sendmail: ALL in hosts allow 來解決這個問題,但這大約會使埠 25 上垃圾郵件發送者的垃圾連接數量增加三倍。
有誰知道一種方法可以為埠 25 連接而不是埠 587 連接進行 sendmail 呼叫 libwrap 以進行身份驗證?
謝謝!
tcp_wrappers
(最後一個穩定版本:1997 年)可以追溯到網際網路的一個尷尬階段,當時作業系統和應用程序通常缺乏適當的保護;從那時起,作業系統現在預設附帶防火牆,並且應用程序具有各種可用的業務邏輯(在 sendmail 的情況下是功能和過濾器),以使垃圾郵件發送者保持沉悶的咆哮。tcp_wrappers
在這裡是有問題的,因為它是一個單一的庫,所以需要兩個不同版本的 sendmail 並且可能需要一些 sendmail 更新檔才能使用該庫 viasendmail
和另一個sendmailmsp
.在這種情況下,sendmail 具有合適的功能,將拒絕沒有 rdns 的連接,但允許通過以下
sendmail.mc
定義中繼到經過身份驗證的連接(cf/README
有關這些的詳細資訊以及如何重建,請參見原始碼下sendmail.cf
):FEATURE(`delay_checks')dnl FEATURE(`require_rdns')dnl
(如果沒有這些,下一個選項是通過 milter 執行必要的業務邏輯。)請注意,垃圾郵件發送者的下一個預期舉措是破壞經過身份驗證的帳戶和垃圾郵件,因此日誌監控、速率限制和可能需要有類似的地方來限制和檢測這種情況。