postfix 是否快取 RBL 查詢?

postfix 是否快取 RBL 查詢?

這讓我發瘋…Linux Debian + postfix…/etc/postfix/main.cf 有以下幾行:

smtpd_recipient_restrictions =
    check_recipient_access hash:/etc/postfix/access,
    reject_invalid_hostname,
    reject_non_fqdn_recipient,
    reject_non_fqdn_sender,
    reject_unauth_destination,
    reject_unauth_pipelining,
    reject_unknown_recipient_domain,
    reject_rbl_client cbl.abuseat.org,
    reject_rbl_client sbl-xbl.spamhaus.org,
    check_policy_service unix:private/policyd-spf,
    check_policy_service inet:127.0.0.1:10023,
    permit_auth_destination,
    reject

如今,postfix 正在拒絕來自一個 IP 的傳入訊息:

 [email protected]
   SMTP error from remote mail server after RCPT TO:<[email protected]>:
   host mail.server.ext [123.123.123.123]: 554 5.7.1 Service unavailable; Client host [234.234.234.234] blocked using cbl.abuseat.org; Blocked - see http://cbl.abuseat.org/lookup.cgi?ip=234.234.234.234

出色地…http://cbl.abuseat.org/lookup.cgi?ip=234.234.234.234報告沒有將 234.234.234.234 列入黑名單(顯然 234.234.234.234 不是真的 IP)。

到目前為止,已有十幾封電子郵件因同樣的原因被阻止,但每次我手動查詢 RBL 時,該 IP 都會報告為乾淨。

postfix 是否快取對 RBL 的查詢?我缺什麼?

在此先感謝您的時間。

答案1

從頂層來看,Postfix 依賴 libc 解析器進行 DNS 查找(包括 RBL),因此行為取決於函式庫。例如,postfix 總是透過 NS 伺服器進行查找,其中定義/etc/resolv.conf.

如果NS伺服器有快取機制,那麼postfix也會得到快取結果。如果您的提供者有“DNS劫持「(轉移到他們的 NS 伺服器的 DNS 封包)。在這種情況下,您還將存取他們的快取(如果他們啟用了它)。

要檢查 DNS 查找的輸出是什麼,可以使用dig指令。例如,檢查 cbl.abuseat.org 中是否列出了 IP 位址 216.154.195.36。

$  dig  36.195.154.216.cbl.abuseat.org

; <<>> DiG 9.10.1-P1 <<>> 36.195.154.216.cbl.abuseat.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 48609
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

如果傳回的是 NXDOMAIN,則 IP 位址未列出。


從底層來看、各smtpd工序已緩存自己的 DNSBL 查找結果。這些結果不會與其他 Postfix 進程共用。每個smtpd行程都會被重複使用,直到max_use或者max_idle到達。當smtpd進程終止時,RBL 快取也會遺失。當守護程式smtpd創建新進程時master它將拾取新的配置on main.cf(包括max_idlemax_use。所以實際上不需要重新啟動 postfix。

相關內容