我注意到大量的垃圾邮件与相同范围的IP相关。
所有垃圾邮件都有不同的HTML文本(这是英语的,但没有意义)和一些嵌入的图片(我阻止),但显然是机器生成的,内部格式非常相似。顺便说一句,所有链接和外部图片都被我的邮箱阻塞了。
我注意到,用于“from”地址域的MX都位于一个小范围的is中,它们都在同一个VPS服务'Node Outlet India LLP‘上。所以有人利用这个服务来招待一群垃圾邮件。
我想制定一条垃圾邮件刺客规则,上面写着:
我使用运行在Linux上的spampd代理和垃圾邮件杀手。
为了澄清,下面是一个例子:垃圾邮件来自buymystuff@stufftobuy.com
源电子邮件通过SPF,DMARC和DKIM签署-所有合法-但它是垃圾邮件。仅凭这些支票,它的得分就像火腿一样好。
唯一的垃圾邮件就是内容。大多数HTML和领域外链接嵌入式图片和小文本,只有这些功能使它有一个垃圾邮件评分,但不是一个大的。这些电子邮件显然是为了避免反垃圾邮件措施而设计的。
我在stufftobuy.com上进行了MX查找,您得到了mail.stufftobuy.com,在mail.stufftobuy.com上执行了一个and查找,它从其中返回一个IPV4 --所有来自域MX记录指向的几个地址狂怒。
我需要做更多的分析,但似乎只有两个服务器场,一个在印度,另一个在土耳其。
在1000封电子邮件中,一个IPV4可能只出现两次。
我不能只是得分或阻止stufftobuy.com,因为实际的域名只能使用一次。下一条消息可能来自makecatvids.com或其他什么。
同样地,我不能盲目地阻止成千上万的IPV4在后缀,因为这将作出假设,ISP是坏的,而不是他们的客户之一。
更新:我可以看到未定义的存在,但我看不出一条规则如何提供给另一条规则。单次DNS查找是不够的。
发布于 2019-11-21 18:49:21
更重要的是:确保您使用的是发送方IP声誉,例如通过Spamhaus禅宗和SpamCop阻塞列表。默认情况下,这些内容已经包含在SpamAssassin中(请参阅RCVD_IN_PBL和RCVD_IN_BL_SPAMCOP_NET),只需确保正确加载了邮件::SpamAssassin::Plugin::DNSEval,并确保启用了网络测试(AskDNS也需要这样的测试)。
邮件::SpamAssassin::Plugin::AskDNS不能这样做。你需要编写你自己的插件来做你想要的事情。
然而,也许这种AskDNS的使用可以让您接近:
ifplugin Mail::SpamAssassin::Plugin::AskDNS
askdns JM_SPF_HAS_36_255 _AUTHORDOMAIN_ TXT /\sip4:36\.255\.(?:2[0-4]|3[01])\./
describe JM_SPF_HAS_36_255 From header's SPF record blesses an IP in 36.255.24.0/21
score JM_SPF_HAS_36_255 2.0
endif这将检查来自域的报头的发送方策略框架 (SPF)记录。注意事项:
HELO & mail from命令中的域,而不是标头v=spf1 ip4:198.51.100.21 mx a include:example.com ~all存在问题:。mx,我们无法将其解析为IPa或另一个include:…,可以列出这个IP。关于第一个问题: MX记录指的是接收邮件,所以我认为SPF允许发送主机的列表在一般情况下更相关,尽管我不能说出您的确切意图。
更新:您提到这些垃圾邮件是DKIM-signed。假设它们都共享相同的签名域,只需基于此阻止(不需要网络查找!):
header JM_DKIM_EVIL_EXAMPLE_COM DKIM-Signature =~ /\sd=evil\.example\.com;/
describe JM_DKIM_EVIL_EXAMPLE_COM Message has DKIM signed by evil.example.com
score JM_DKIM_EVIL_EXAMPLE_COM 2.0您发现的每个签名域(d=…)都需要这些规则中的一条,我希望这是一个很小的数目。
或者,您可以使用regex交替。例如:
/\sd=(?:(?:evil|spammer)\.example\.com|bad\.example\.info);/将阻止d=evil.example.com;、d=spammer.example.com;和d=bad.example.info;。
https://serverfault.com/questions/991845
复制相似问题