Postfix

Postfix - 在 SPF 通過後跳過 RBL 檢查

  • March 29, 2017

我已經開始使用 policyd-spf 並且正在使用以下收件人限制。我希望通過 SPF 檢查的發件人跳過任何 RBL 檢查。不幸的是,這並沒有發生。

 smtpd_recipient_restrictions =
   permit_mynetworks,
   permit_sasl_authenticated,
   reject_non_fqdn_sender,
   reject_non_fqdn_recipient,
   reject_unauth_destination,
   reject_unauth_pipelining,
   reject_invalid_hostname,
   check_policy_service unix:private/policy-spf
   check_sender_access mysql:/etc/postfix/mysql_sender_checks.cf
   reject_rbl_client zen.spamhaus.org,
   reject_rbl_client bl.spamcop.net,
   reject_rbl_client cbl.abuseat.org,
   reject_rbl_client dnsbl.sorbs.net

失敗的 SPF 檢查是正確的,但正如您從 syslog 中看到的那樣 - policyd-spf 表示它已通過但繼續進行 RBL 檢查:

Mar 29 13:15:51 policyd-spf[6442]: Pass; identity=mailfrom; client-ip=69.171.232.144; helo=mx-out.facebook.com; envelope-from=REDACTED; receiver=REDACTED
Mar 29 13:15:51 postfix/smtpd[5971]: NOQUEUE: reject: RCPT from 69-171-232-144.outmail.facebook.com[69.171.232.144]: 554 5.7.1 Service unavailable; Client host [69.171.232.144] blocked using dnsbl.sorbs.net; Currently Sending Spam See: http://www.sorbs.net/lookup.shtml?69.171.232.144; from=<REDACTED> to=<REDACTED> proto=ESMTP helo=<mx-out.facebook.com>

有誰熟悉 postfix-policyd-spf-python,如果是的話,你能解釋為什麼它沒有按預期工作。

使用:

Debian GNU/Linux 7
Linux XXXXX 3.2.0-4-amd64 #1 SMP Debian 3.2.82-1 x86_64 GNU/Linux
Postfix 2.9.6-2
postfix-policyd-spf-python 1.0.2

根據日誌,該消息被 list 拒絕dnsbl.sorbs.net

如使用 SORBS介紹中所述

作為 SORBS 列表的潛在使用者,您需要問自己的最重要的問題是:我是否了解我計劃使用的列表的列表標準?

然後,您有許多選擇/決定要做:

  1. 您想在阻止垃圾郵件方面有多積極?
  2. 您想信任 SORBS 管理員以及測試腳本嗎?
  3. 您是否相信 SORBS 管理員用來辨識配置錯誤的主機的腳本?

該列表dnsbl.sorbs.net是一個聚合區域,包含除 spam.dnsbl.sorbs.net 之外的所有 SORBS 區域)。這意味著您的設置在阻止垃圾郵件方面非常積極,即您可能會出現誤報,就像您已經做過的那樣。

雖然確實(來自Postfix Configuration Parameterssmtpd_recipient_restrictions

限制按指定的順序應用;第一個匹配的限制獲勝。

唯一的check_policy_service原因是向指定的策略伺服器發送查詢,而不是直接rejectpermit。然後,您python-policyd-spf可以返回rejectif PermError_reject = True,否則只會添加Received-SPF標題並繼續處理限制。

您應該閱讀使用 SORBS獲取可用區域列表。然後您可以決定哪些區域最適合您的需求並單獨添加它們,例如

smtpd_recipient_restrictions =
   . . .
   reject_rbl_client relays.dnsbl.sorbs.net,
   reject_rbl_client web.dnsbl.sorbs.net,
   reject_rbl_client escalations.dnsbl.sorbs.net,
   reject_rbl_client block.dnsbl.sorbs.net,
   reject_rbl_client zombie.dnsbl.sorbs.net,
   reject_rbl_client dul.dnsbl.sorbs.net,
   reject_rbl_client noserver.dnsbl.sorbs.net,
   reject_rbl_client rhsbl.sorbs.net,
   . . .

或者你可以換成dnsbl.sorbs.net不那麼激進的聚合區safe.dnsbl.sorbs.net

引用自:https://serverfault.com/questions/841299