AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 845504
Accepted
umläute
umläute
Asked: 2017-04-21 04:13:48 +0800 CST2017-04-21 04:13:48 +0800 CST 2017-04-21 04:13:48 +0800 CST

spamassassin 误报来自拨号地址的电子邮件

  • 772

我主要是 spamassassin (3.4.0-6) + exim4 (4.84.2) 的快乐管理员,在 Debian/jessie 系统上设置服务器端垃圾邮件过滤。

最近有用户报告了一些误报。仔细检查后发现,合法的电子邮件是

  1. 从某个拨号 IP 地址发送(在多个黑名单中列出)
  2. 传递到发件人的 ISP 的邮件服务器(使用他们现有的任何身份验证),这
  3. 然后将电子邮件发送到我的邮件服务器
  4. 将邮件标记为垃圾邮件,因为“已接收”标头中的 IP 之一被列入黑名单

spamassassin 匹配了一些黑名单规则(RCVD_IN_BL_SPAMCOP_NET, RCVD_IN_SBL_CSS, RCVD_IN_SORBS_SPAM, RCVD_IN_SORBS_WEB)。请注意,由于 IP 被列入黑名单,电子邮件仅获得了正面分数。

触发垃圾邮件标记的电子邮件中的相关标题是:

Received: from [10.126.95.175] (unknown [109.126.64.1])
    by smtpfilter1.public.one.com (Halon) with ESMTPSA
    id ee1f1e82-251c-11e7-8f0e-b8ca3afa9d73;
    Wed, 19 Apr 2017 16:26:25 +0000 (UTC)

现在鉴于:

  • 发件人的 ISP 的邮件服务器都是干净的(似乎没有在任何黑名单中列出)

  • 我显然不知道发件人如何向他们的 ISP 证明他们的电子邮件是合法的,但我认为确实发生了某种形式的身份验证

...我认为 spamassassin 不应该将该电子邮件标记为垃圾邮件。

准确地说:我的直觉告诉我 spamassassin 应该为直接从黑名单 IP 地址接收的邮件添加垃圾邮件分数。但是,如果邮件通过“干净”的 MTA(ISP 的邮件服务器),sa 应该假定“他们”(ISP)已采取适当的措施来确保电子邮件的合法性。

由于我运行我的设置已经有一段时间了,直到现在还没有很多误报,我想知道:

  • 是上述预期的行为吗?

  • 如果不是,是我这边的问题吗(例如,我错误地配置了我的垃圾邮件分析以将接收链的一部分考虑在内,它不应该考虑。如果是这样,我应该在哪里寻找修复?)

  • 如果不是,是 ISP 方面的问题吗?(例如,他们应该更好地隐藏他们接受授权电子邮件的损坏IP地址。如果是这样,我应该直接向他们投诉吗?)

debian
  • 2 2 个回答
  • 5929 Views

2 个回答

  • Voted
  1. Esa Jokinen
    2017-04-21T05:44:52+08:002017-04-21T05:44:52+08:00

    如果在邮件的Received 标头中列出了中继,则这些 SpamAssassin 规则匹配...

    • RCVD_IN_BL_SPAMCOP_NET...在Spamcop DNSBL中,一个基于时间的自动阻止列表。

    • RCVD_IN_SBL_CSS对于Spamhaus CSS似乎不再存在,但RCVD_IN_SBL对于包含 CSS 组件的Spamhaus SBL也是如此。

    虽然RCVD_IN_SORBS_WEB更接近您希望他们所有人做的事情:

    check根据 SORBS 维护的 DNSBL测试最后一个不受信任的中继的 IP 地址。

    如果您不信任这些测试,您可以随时调整规则分数。score RCVD_IN_BL_SPAMCOP_NET 0如果测试匹配,则不添加任何分数,从而导致测试将完全禁用。

    Spamassassin 不需要仅针对最新的Received:标头进行测试,因为这是Received来自您自己的 MTA 的,它可能已经完成了相同的测试,并且实际上拒绝了来自匹配 IP 地址的邮件,而不是将其标记为垃圾邮件。

    在Postfix main.cf中,等效的收件人限制是:

    smtpd_recipient_restrictions =
    
        reject_rbl_client sbl.spamhaus.org,
        reject_rbl_client bl.spamcop.net,
        reject_rbl_client dnsbl.sorbs.net
    

    并在ACL 中使用Exim 4.x:acl_rcptexim.conf

    deny     message  =  Access denied - $sender_host_address\
                         listed by $dnslist_domain\n$dnslist_text
             dnslists =  sbl.spamhaus.org : \
                         bl.spamcop.net : \
                         dnsbl.sorbs.net
    

    如果您dnslists在模式下使用 Exim,您可以通过添加标头仅在最后一次 MTA 交付时warn模拟样式规则RCVD_IN_*X-blacklisted-at

    warn     message  =  X-blacklisted-at: $dnslist_domain
             dnslists =  sbl.spamhaus.org : \
                         bl.spamcop.net : \
                         dnsbl.sorbs.net
    

    然后在 Spamassassin 中对该标头的存在(或内容)进行评分,而不是RCVD_IN_*:

    header LAST_RCVD_BLACKLISTED exists:X-blacklisted-at
    score LAST_RCVD_BLACKLISTED 10.0
    

    请注意,这些拒绝列表对于您实际需要的内容可能太宽,例如,这dnsbl.sorbs.net是一个包含几乎所有可用 SORBS 区域的聚合区域。在根据这些列表拒绝甚至标记之前,您应该熟悉每个列表的目的,并决定您想要变得多么激进。

    就我个人而言,我更信任SPF、DMARC和贝叶斯过滤,并且在信任 DNSBL 方面非常敏感,即仅使用带有 IP 的列表,当然仅用于垃圾邮件,例如smtp.dnsbl.sorbs.net开放的 SMTP 中继服务器或edrop.spamhaus.org包含“被劫持”的网络块。

    • 1
  2. Best Answer
    umläute
    2017-05-10T02:54:52+08:002017-05-10T02:54:52+08:00

    我找到了一个可以满足我要求的解决方案。可以调整这些黑名单规则以跳过第一个(不受信任的)跃点,而不是调整分数,

    这是我所做的调整(更改只是-notfirsthop在表达式中添加后缀;例如zen变成zen-notfirsthop跳过对原始 IP 的检查):

    header RCVD_IN_SBL              eval:check_rbl_sub('zen-notfirsthop', '127.0.0.2')
    header RCVD_IN_SBL_CSS      eval:check_rbl_sub('zen-notfirsthop', '127.0.0.3')
    header RCVD_IN_BL_SPAMCOP_NET   eval:check_rbl_txt('spamcop-notfirsthop', 'bl.spamcop.net.', '(?i:spamcop)')
    
    • 0

相关问题

  • 关闭 FTP

  • 如何在同一台电脑上从 putty 连接 debian vmware

  • debian- 文件到包的映射

  • Debian Ubuntu 网络管理器错误 [关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve