黑名單客戶:為什麼 Postfix 沒有拒絕這封郵件?
回答
最好的答案是在 postfix-users郵件列表中,為了方便 serverfault 的使用者,這裡對其進行了總結。
- 我忘記了
soft_bounce = yes
。no
在驗證配置後始終將其切換回- 在尋求有關 Postfix 配置的幫助時,請始終包括完整的輸出
postconf -n
- 停止接受來自沒有 PTR 記錄的 IP 的郵件。添加
reject_unknown_reverse_client_hostname
到smtpd_recipient_restrictions
之後permit_mynetworks
和permit_sasl_authenticated
如果回复碼是 4xx,它會邀請其他郵件伺服器重試。IP 地址似乎被“雪鞋式”垃圾郵件發送者使用,使得檢測更加困難。這些 IP 地址在黑名單中進出,因為黑名單運營商(在本例中為 Spamhaus)正在努力對抗雪鞋行走者的策略。這是一場持續的全球軍備競賽。拒絕來自沒有 PTR 記錄的 IP 的郵件會顯著減小本地戰場的規模。
原始問題
這是在低使用率的個人 Postfix 伺服器上記錄的。我認為根據下面的標題拒絕電子郵件應該有兩個原因,但結果是發送到收件箱。以下是相關 Postfix 配置的摘錄,我的問題在最後。
日誌練習
Jun 5 09:58:37 x2 postfix/smtpd[8440]: connect from unknown[157.52.162.99] Jun 5 09:58:37 x2 postfix/smtpd[8440]: NOQUEUE: reject: RCPT from unknown[157.52.162.99]: 454 4.7.1 Service unavailable; Client host [157.52.162.99] blocked using zen.spamhaus.org; from=<newsletter@vacque.com> to=<XXX@XXX> proto=ESMTP helo=<mr99.dgnmkt.com> Jun 5 09:58:37 x2 postfix/smtpd[8440]: disconnect from unknown[157.52.162.99] Jun 5 10:01:57 x2 postfix/anvil[8394]: statistics: max connection rate 1/60s for (smtp:198.2.130.200) at Jun 5 09:51:57 Jun 5 10:01:57 x2 postfix/anvil[8394]: statistics: max connection count 1 for (smtp:198.2.130.200) at Jun 5 09:51:57 Jun 5 10:01:57 x2 postfix/anvil[8394]: statistics: max cache size 2 at Jun 5 09:55:18 Jun 5 10:06:39 x2 postfix/smtpd[8507]: connect from unknown[157.52.162.99] Jun 5 10:06:40 x2 policyd-spf[8513]: None; identity=helo; client-ip=157.52.162.99; helo=mr99.dgnmkt.com; envelope-from=newsletter@vacque.com; receiver=XXX@XXX Jun 5 10:06:40 x2 policyd-spf[8513]: Pass; identity=mailfrom; client-ip=157.52.162.99; helo=mr99.dgnmkt.com; envelope-from=newsletter@vacque.com; receiver=XXX@XXX Jun 5 10:06:40 x2 postfix/smtpd[8507]: 49D01C1EDE: client=unknown[157.52.162.99] Jun 5 10:06:40 x2 postfix/cleanup[8514]: 49D01C1EDE: message-id=messageid-3-M3w1NDIzfDU4fDM3ODk3OTR8eWxlYmF5Y2EwNEBzZmluYS5jb218U2F0LCAwNCBKdW4gMjAxNiAwNToxNDowNyAtMDcwMA== Jun 5 10:06:40 x2 opendkim[1220]: 49D01C1EDE: [157.52.162.99] [157.52.162.99] not internal Jun 5 10:06:40 x2 opendkim[1220]: 49D01C1EDE: not authenticated Jun 5 10:06:43 x2 opendkim[1220]: 49D01C1EDE: no signature data Jun 5 10:06:43 x2 postfix/qmgr[1337]: 49D01C1EDE: from=<newsletter@vacque.com>, size=91945, nrcpt=1 (queue active) Jun 5 10:06:43 x2 postfix/smtpd[8507]: disconnect from unknown[157.52.162.99] Jun 5 10:06:43 x2 dovecot: lmtp(8516): Connect from local Jun 5 10:06:43 x2 dovecot: lmtp(8516, YYY@XXX): nhVjEfMxVFdEIQAAzX/GXw: msgid=messageid-3-M3w1NDIzfDU4fDM3ODk3OTR8eWxlYmF5Y2EwNEBzZmluYS5jb218U2F0LCAwNCBKdW4gMjAxNiAwNToxNDowNyAtMDcwMA==: saved mail to INBOX Jun 5 10:06:43 x2 postfix/lmtp[8515]: 49D01C1EDE: to=<YYY@XXX>, orig_to=<XXX@XXX>, relay=XXX[private/dovecot-lmtp], delay=3.6, delays=3.5/0.01/0.02/0.05, dsn=2.0.0, status=sent (250 2.0.0 <YYY@XXX> nhVjEfMxVFdEIQAAzX/GXw Saved) Jun 5 10:06:43 x2 dovecot: lmtp(8516): Disconnect from local: Successful quit Jun 5 10:06:43 x2 postfix/qmgr[1337]: 49D01C1EDE: removed
關於日誌的註釋
@XXX 是我的域名
XXX@XXX 是別名
YYY@XXX 是郵箱
- 我的理解是錯誤的發件人$$ 157.52.162.99 $$根據 zen.spamhaus.org 在 9:58:37 已被阻止,但 8 分鐘後它重新連接並成功傳遞了不應通過的內容。
應該被拒絕的郵件標題
Return-Path: <newsletter@vacque.com> Delivered-To: <YYY@XXX> Received: from XXX by XXX (Dovecot) with LMTP id nhVjEfMxVFdEIQAAzX/GXw for <YYY@XXX>; Sun, 05 Jun 2016 10:06:43 -0400 Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=157.52.162.99; helo=mr99.dgnmkt.com; envelope-from=newsletter@vacque.com; receiver=XXX@XXX Received: from mr99.dgnmkt.com (unknown [157.52.162.99]) by XXX (Postfix) with ESMTP id 49D01C1EDE for <XXX@XXX>; Sun, 5 Jun 2016 10:06:39 -0400 (EDT) Received: from stormmta (unknown [157.52.162.99]) by mr99.dgnmkt.com (Postfix) with ESMTP id DD84AE61F8A for <XXX@XXX>; Sun, 5 Jun 2016 08:16:33 -0700 (PDT) From:=?UTF-8?B?VG1hcnQuY29t?=<newsletter@e.ailander.com> To:XXX@XXX
後綴配置
相關的 main.cf 選項
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination reject_invalid_hostname reject_non_fqdn_hostname reject_non_fqdn_sender reject_non_fqdn_recipient reject_unknown_sender_domain reject_unknown_recipient_domain check_recipient_access hash:/etc/postfix/recipients # used to have Postgrey here # check_policy_service inet:127.0.0.1:10023 reject_rbl_client zen.spamhaus.org check_policy_service unix:private/policy-spf permit smtpd_restriction_classes = ebay ebay = check_reverse_client_hostname_mx_access pcre:/etc/postfix/ebay.pcre
/etc/postfix/收件人
XXX@XXX ebay
易趣網
/.ebay.com$/ DUNNO /(.*)/ REJECT Not allowed to relay from $1. Please use eBay's contact form if you have legit communication for this email address.
我的意見和問題
我分配別名來隔離郵件來源。一個這樣的別名被分配給 eBay。eBay 將買家的電子郵件地址洩露給商家。並非所有商家都尊重買家的溝通偏好。我的解決方案是將 eBay 別名上接受的電子郵件限制為來自 eBay 的電子郵件,並拒絕所有噪音。
首先,我認為這封電子郵件應該被以下人員拒絕:
check_recipient_access hash:/etc/postfix/recipients
因為遵循
/etc/postfix/recipients
易趣限制適用並且ebay.pcre
會在第二行抓住它。其次,我認為這封電子郵件應該被以下人員拒絕:
reject_rbl_client zen.spamhaus.org
就像幾分鐘前的嘗試一樣。
顯然我所期望的並沒有發生。為什麼?我該如何解決?
據我所知,Spamhouse 第二次的回答似乎有所不同。即第一個回答是“有垃圾郵件發送者”,但 8 分鐘後回答是“沒有什麼特別的”。為什麼它被回答很難說。
如果您有權訪問設置為解析郵件伺服器的 dns 查詢的 DNS 伺服器查詢日誌,您可能會在那裡找到一些線索。例如,Spamhouse 根據他們的政策提供服務,其中規定了每小時、每月可以進行多少次查詢等限制。他們甚至可以評估這次向誰提供服務,並選擇不對他們認為是垃圾郵件發送者的人提供有意義的答案。
您可能會將此日誌直接發送到 Spamhouse,他們可以為自己說話。
但!如果沒有看到詳細的調試級別 2,很難準確地說出 Postfix 在每個 XXX_restriction 選項中記錄每個語句的查詢資訊。確切的 rbl 回復也會記錄在那裡。
此外,您送出 Postfix 配置的方式是錯誤的。您應該始終給出“postconf”命令的完整輸出。這是 Postfix 開發人員在他們的郵件列表中所要求的,並且有理由這樣做。