我在我的小型邮件服务器上使用 Smartermail。我们最近遇到了一个问题,即收到大量遵循相同模式的雪鞋垃圾邮件。它们一次分 3 或 4 批进货。除了它们链接到的域名外,主体几乎相同。源 IP 往往来自同一个 /24 块一段时间,然后它们切换到另一个 /24。域往往是全新的。他们有有效的 PTR 和 SPF 记录,并且在正文底部有随机胡言乱语以欺骗贝叶斯过滤器。
我使用了十几种不同的 RBL,包括 Barracuda、Spamhaus、SURBL 和 URIBL。他们在捕获其中大部分方面做得不错,但我们仍然有很多漏洞,因为 IP 和域没有被列入黑名单。
我是否可以采用任何策略,包括阻止新创建的域或专门处理 snoeshow 垃圾邮件的 RBL?我希望避免使用第三方过滤服务。
我们的电子邮件服务器最终被列入 sorbs.net 黑名单,我们正在绕圈子试图将其删除,目前这导致我们的供应商之间出现停机时间。
我是一名开发人员,不熟悉 Sorbs,但问我是否可以看看它。
更新:我们的管理员已经确定 sorbs 已经解决了这个问题。
我刚收到这条退回消息:
<????????@att.net>: host scc-mailrelay.att.net[204.127.208.75] said:
521-88.208.246.34 blocked by sbc:blacklist.mailrelay.att.net. 521 DNSRBL:
Blocked for abuse. See http://att.net/blocks (in reply to MAIL FROM
command)
Run Code Online (Sandbox Code Playgroud)
所以我想弄清楚为什么我们的服务器最终会出现在他们的黑名单中。据我所知,网页链接没有告诉我原因。从一些多 RBL 工具中,我得出结论,我们的 IP 仅在 uceprotect.net 的附带损害列表中(付费订阅即可免除此列表),我非常希望 AT&T 不会使用它。
从邮件服务器日志中,我看到@att.net两天前发送到另一个地址的电子邮件没有被阻止。
有没有人有任何想法我可以找出哪里出了问题?
如何在 postfix 中启用 RBL 过滤器?
我目前的配置:
submission inet n - n - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=reject_sender_login_mismatch,permit
-o receive_override_options=no_header_body_checks,no_address_mappings
-o smtpd_sender_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject
Run Code Online (Sandbox Code Playgroud)
正在发送和接收邮件。
当我添加:
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client bl.spamcop.net
Run Code Online (Sandbox Code Playgroud)
Thunderbird 在发送过程中永远循环,什么也没有发生。/var/log/mail.* 为空。
好吧。一些背景。我们有一个反垃圾邮件集群,每天处理大约 2-3 百万封电子邮件,拦截来自最终用户的 99% 的垃圾邮件。
底层 SMTP 服务器是 Postfix 2.2.10。下面附上邮件被运送到 SpamAssassin/ClamAV/ 等之前的“前线防御”。
...basic config....
smtpd_recipient_restrictions =
reject_unauth_destination,
reject_rbl_client b.barracudacentral.org,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client bl.mailspike.net,
check_policy_service unix:postgrey/socket
...more basic config....
Run Code Online (Sandbox Code Playgroud)
如您所见,来自不同公司的标准 RBL 服务以及 Postgrey 服务。
问题是,我有一个客户(数千人中)对我们阻止了他们的重要电子邮件感到非常沮丧。它是通过俄罗斯的免费邮件发送的,他目前在我们的三个 RBL 服务器中的两个中被阻止。我向他们解释了情况,但他们坚持我们不会阻止他们的任何电子邮件。
所以我需要一种方法来将进入 domain.com 的任何电子邮件列入白名单,但是我需要它在任何收件人限制之前发生,他们根本不想要 RBL 或 postgrey 阻止。
我自己做了一些研究,http://www.howtoforge.com/how-to-whitelist-hosts-ip-addresses-in-postfix起初似乎是一个很好的指南,几乎解决了我的问题,但是我希望它接受基于 TO 地址,而不是原始服务器。
那里有很多黑名单,名声不好也好。此外,有些人建议仅在基于分数的系统(如spamassassin)中使用 RBL 列表,而其他人(包括商业服务提供商,认为Barracuda)甚至在查看之前广泛使用列表来硬阻止消息。
使用 RBL 列表直接丢弃消息的问题来自误报,否则 99% 的时间会在基于分数的系统中幸存下来。我想知道是否有可以在队列前充分利用的列表,即使它们在捕获真正的垃圾邮件方面可能不太有效,但误报率非常低。此类列表与灰名单相结合,可以很好地在通过内容分析系统运行之前浏览邮件摄入量的很大一部分。
我们目前仅使用Abuseat 的 CBL来阻止 SMTP 连接,我们不知道由此引入的任何误报。Spamhaus 项目中的列表看起来也很有前景,但哪些列表呢?还是全部(比如使用 ZEN)?
问题
有没有办法让 spamassassin 绕过我的 linux 系统的 dns 服务器来查询 DNSBL?
背景信息
当我的服务器收到电子邮件时,它会被 spamassassin 检查。其中一项检查在 DNS 黑名单中查找相关邮件服务器。不幸的是,我的提供商的 DNS 不允许再查询这些 BL。这由 spamassassin 的标题信息URIBL_BLOCKED在我收到的所有电子邮件中显示。我也手动测试了这个:
root@net:# dig 2.0.0.127.multi.uribl.com txt +short
"127.0.0.1 -> Query Refused. See http://uribl.com/refused.shtml for more information [Your DNS IP: 123.123.123.123]"
Run Code Online (Sandbox Code Playgroud)
(123.123.123.123在我的/etc/resolv.confdns 中配置。)
当我直接 手动查询他们的名称服务器之一(请参阅@cc.uribl.com。)而不使用我的提供者的递归时,我得到了一个答案:
root@net:# dig 2.0.0.127.multi.uribl.com txt @cc.uribl.com. +short
permanent testpoint
Run Code Online (Sandbox Code Playgroud)
(请注意,这是应该给出此结果的 BL 的测试查询)
总结
那么,除了在这个系统上安装 dns 递归器之外,有什么方法可以让 spamassassin 不使用系统默认 dns 进行 dnsbl 查询?
UPDATE
好吧,其实安装本地dns-recursor是没有问题的。它轻巧且易于设置,现在我不再遇到 BL 的问题。
我想接受所有通过 RBL 和 SPF 检查(可能还有一些检查,但这些是我的最低要求)的客户,并将那些没有通过的客户列入灰名单。当客户端通过 SPF 检查(存在 SPF 记录,没有失败,没有软失败)时,我们可以非常确定它不是僵尸网络僵尸,而是会重试交付的 MTA,因此将此类客户端列入灰名单毫无意义。
到目前为止,我一直在使用Whitelister,它可以实现这个规则,但它在过去 10 年左右没有得到维护,并且在现代发行版中不可用,所以我正在寻找替代方案。据我了解,Postfix 只能拒绝 RBL 中的客户端,但不能将 RBL 用作更复杂条件的一部分,所以我reject_rbl_client在这里看不到任何使用方法。是否有可以进行此类检查的策略守护程序?
我在 main.cf 中的收件人限制如下。我不知道我可以用什么代替???:
smtpd_recipient_restrictions =
check_sender_access regexp:/etc/postfix/sender_access_regexp,
permit_mynetworks,
permit_sasl_authenticated,
reject_unknown_sender_domain,
reject_unauth_destination,
???,
check_policy_service unix:postgrey/postgrey.sock
Run Code Online (Sandbox Code Playgroud) 我刚刚听说过policyd-weight所以我做了一个apt-cache search policyd返回三个选项的操作:
哪一个是最好的,你有什么设置它们的技巧吗?
我们当前的设置是白名单加上 postgrey 将 RBLd 主机列入灰名单,如果它们有 10 次失败,则对它们进行故障禁止 10 分钟,然后进行内容过滤(卡巴斯基反垃圾邮件)。内容过滤非常好,但仍有大量垃圾邮件通过 RBL 灰名单。
DNSWL 如何工作?当有人报告垃圾邮件时我很清楚,但我怎样才能获得更高的分数/信任?
有些公司报告“良好”的服务器吗?或者分数会随着时间的推移而上升而不向他们报告垃圾邮件?
在我公司设置的邮件服务器上,我在postfix中使用了几个黑名单。这些确实有助于处理我们收到的垃圾邮件。
但每隔一段时间,我们的一个(潜在)客户就无法向我们发送邮件,因为他们在这样的黑名单上。它通常不是假阳性。他们有时在某个托管公司的服务器上与其他公司共享邮件服务器。或者他们发送特别大量的“通讯”。
虽然这种情况很少发生,但一旦发生,就很难处理。因为显然问题出在我们的邮件服务器上。因为他们向其他人发送邮件没有问题。我通常告诉我们的员工,我不会更改我们完美的配置,以允许电子邮件服务器(或道德规范)混乱的人向我们发送邮件。
将这些人介绍给 RBL 的删除请求页面也毫无意义。这些通常是营销人员,他们不知道我在说什么(并且也不关心它)。
但这仍然给我留下了一个问题,即我们希望能够接收来自他们的邮件。
贵公司遇到这样的情况如何处理?
我正在配置Zabbix以根据多个DNSBL检查我的 IP 。我的 IP 目前没有列入黑名单。我的监控需要进行测试,以验证如果我的某个 IP 确实被列入黑名单,它是否会正确发出警报。我如何获取 DNSBL 上的已知不良 IP 来进行测试?
我搜索过已发布的黑名单,但没有找到。我猜测发布这些列表会帮助垃圾邮件发送者,或者产生其他不良的副作用。
Zabbix 将调用 Ruby 脚本。该脚本可能只会使用rblcheck,因为它检查的列表似乎是一个好的开始:
$ rblcheck 8.8.8.8
8.8.8.8 not listed by sbl.spamhaus.org
8.8.8.8 not listed by xbl.spamhaus.org
8.8.8.8 not listed by pbl.spamhaus.org
8.8.8.8 not listed by bl.spamcop.net
8.8.8.8 not listed by psbl.surriel.com
8.8.8.8 not listed by dul.dnsbl.sorbs.net
Run Code Online (Sandbox Code Playgroud)
rblcheck 使用的 DNSBL 是可配置的。我可以根据需要添加或删除 DNSBL(永久添加或删除)或用于测试。