Postfix

黑名單客戶:為什麼 Postfix 沒有拒絕這封郵件?

  • June 11, 2016

回答

最好的答案是在 postfix-users郵件列表中,為了方便 serverfault 的使用者,這裡對其進行了總結。

  • 我忘記了soft_bounce = yesno在驗證配置後始終將其切換回
  • 在尋求有關 Postfix 配置的幫助時,請始終包括完整的輸出postconf -n
  • 停止接受來自沒有 PTR 記錄的 IP 的郵件。添加reject_unknown_reverse_client_hostnamesmtpd_recipient_restrictions之後permit_mynetworkspermit_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 開發人員在他們的郵件列表中所要求的,並且有理由這樣做。

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