我不知道有多久了 — — 也许是十年 — — 我的 postfix 配置中一直有以下内容:
smtpd_client_restrictions = reject_rbl_client sbl.spamhaus.org,
reject_rbl_client blackholes.easynet.nl
最近,我的用户偶尔会遇到退回的情况,我在服务器上看到的情况如下:
Nov 14 03:23:33 ip-10-0-200-150 postfix/smtpd[25205]: connect from mail-cwlgbr01
on2134.outbound.protection.outlook.com[40.107.11.134]
Nov 14 03:23:33 ip-10-0-200-150 postfix/smtpd[25205]: Anonymous TLS connection e
stablished from mail-cwlgbr01on2134.outbound.protection.outlook.com[40.107.11.13
4]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Nov 14 03:23:33 ip-10-0-200-150 postfix/smtpd[25205]: NOQUEUE: reject: RCPT from mail-cwlgbr01on2134.outbound.protection.outlook.com[40.107.11.134]: 554 5.7.1 Service unavailable; Client host [40.107.11.134] blocked using sbl.spamhaus.org; Error: open resolver; https://www.spamhaus.org/returnc/pub/3.64.1.98; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<GBR01-CWL-obe.outbound.protection.outlook.com>
但两分钟后
Nov 14 03:25:43 ip-10-0-200-150 postfix/smtpd[25205]: connect from mail-cwlgbr01
on2125.outbound.protection.outlook.com[40.107.11.125]
Nov 14 03:25:44 ip-10-0-200-150 postfix/smtpd[25205]: Anonymous TLS connection e
stablished from mail-cwlgbr01on2125.outbound.protection.outlook.com[40.107.11.12
5]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Nov 14 03:25:44 ip-10-0-200-150 postfix/smtpd[25205]: 4E7A780053: client=mail-cw
lgbr01on2125.outbound.protection.outlook.com[40.107.11.125]
Nov 14 03:25:44 ip-10-0-200-150 postfix/cleanup[25245]: 4E7A780053: message-id=<[email protected]>
Nov 14 03:25:44 ip-10-0-200-150 mimedefang.pl[23843]: 4E7A780053: MDLOG,4E7A780053,mail_in,,,<[email protected]>,<[email protected]>,FW: Undeliverable: FW: The Philosopher's Trading Experiment: Peter Thiel and the Big Short That Never Was
Nov 14 03:25:44 ip-10-0-200-150 mimedefang[20720]: 4E7A780053: Filter time is 21ms
Nov 14 03:25:44 ip-10-0-200-150 opendkim[11822]: 4E7A780053: mail-cwlgbr01on2125.outbound.protection.outlook.com [40.107.11.125] not internal
Nov 14 03:25:44 ip-10-0-200-150 opendkim[11822]: 4E7A780053: not authenticated
Nov 14 03:25:44 ip-10-0-200-150 opendkim[11822]: 4E7A780053: failed to parse authentication-results: header field
Nov 14 03:25:44 ip-10-0-200-150 opendkim[11822]: 4E7A780053: DKIM verification successful
Nov 14 03:25:44 ip-10-0-200-150 postfix/qmgr[28094]: 4E7A780053: from=<[email protected]>, size=177480, nrcpt=1 (queue active)
Nov 14 03:25:44 ip-10-0-200-150 amavis[22145]: (22145-03) ESMTP [127.0.0.1]:10024 /var/spool/amavisd/tmp/amavis-20221113T221855-22145-4K_9q1uQ: <[email protected]> -> <[email protected]> SIZE=177480 Received: from ip-10-0-200-150.eu-central-1.compute.internal ([127.0.0.1]) by localhost (my.postfixserver.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP for <[email protected]>; Mon, 14 Nov 2022 03:25:44 +0000 (UTC)
链接的SpamHaus 错误页面这并不会让我认为这应该是一个间歇性问题。
最重要的问题是,我该如何解决这个问题?邮件服务器在 AWS EC2 实例上运行,服务器上没有特殊的 DNS 配置。AWS 是否可能对 DNS 查询进行某种循环,并且他们查询的某些服务器现在是公共解析器?
深入挖掘后,我想知道我是否应该进行这项检查,或者它是否已经过时了。相同的链接错误页面试图说服我使用SpamHaus DQS。这个 ServerFault 问题aboutdbl.spamhaus.org
指出文档指出,如果您每天发送的电子邮件少于 20 万封,则您根本不应该在邮件服务器中执行此操作,而应该在 SpamAssassin 中执行此操作,但我在文档中找不到类似的警告/建议sbl
。相反,sbl
文档似乎希望人们停止使用sbl
独立版本,而是改用集成版本禅宗 DNSBL。
一方面,我非常认同“如果它没坏,就不要修理它”的理念,这就是为什么这句话几乎永远都在我的 Postfix 配置中。但另一方面,现在它似乎已经坏了,而且在 2017-2019 年期间似乎发生了很多变化,而且现在没有很好的记录(所有 Postfix/AmavisD 虚拟邮件“操作方法”似乎要么是在此之前编写的,要么只是说“Amavis 运行 SpamAssassin,不需要特殊配置”,但没有提到 DNSBL。
在现代世界中,对于低容量邮件服务器,我该如何做呢?
答案1
停止现在,由于暂时性错误(应该是 4XX)而永久(554)拒绝邮件。如果您认为值得,请考虑进一步的更改。
查询公共解析器
这句话指的是不止几家大型公共服务。他们想知道谁在探查他们的数据来源,他们也希望让大用户付费。他们不在乎这是否是真正公开的东西,还是亚马逊为你和数据中心的其他所有人设置的东西。如果这让你的流量难以与其他服务器区分开来,他们宁愿看到 DNS 流量直接从您的服务器,并附加一个清晰的 rDNS 名称(通常:通过在邮件服务器本身上运行的递归服务器)。
Spamhaus 文档建议不要在 SMTP 级别进行阻止
利用其自动学习功能
因为这样可以得到更好的结果。如果你现在没有使用这些功能,我建议你不要太关注性能或音量数字。
如果你的音量较低,请将其视为成本效益在浪费在垃圾邮件上的用户生命与花费在配置、维护和故障排除上的管理员生命之间进行权衡。SpamAssassin 体现了某些历史上与 Perl 相关的软件设计选择。而 Rspamd,嗯,它是一个非常复杂的解析器,以高性能为目的,使用内存高度不安全的语言编写。它们是免费使用的,但肯定不是就像啤酒一样。
“操作指南”似乎要么是在此之前编写的,要么只是说“Amavis 运行 SpamAssassin,不需要特殊配置”
然而,Spamhaus 提供的集成中有一些非常新的文档,用于垃圾邮件杀手和垃圾邮件。请注意,这些不适用于公共镜像。它们通过发送唯一标识您帐户的密钥进行查询 - 您必须手动请求,然后复制密钥。因此,他们可以检查您个人是否超出了他们免费提供的范围。这也将解决您最初面临的问题。