本期首页 | 过往期刊 | 公司主页
2010.04 - 第四十五期
让邮件更有力量
 

    电子邮件在过去20-30年里,给整个社会带来的通信便利无可估量。现在很多小学生、中学生没见过信纸、不曾贴过邮票,很多中学生、大学生,参加工作很多年的,可能都很少收到普通的信件了。

    这,就是电子邮件的力量。电子邮件更环保、更快捷、更方便。

    如今,电子邮件也碰到前所未有的挑战。主要原因,我觉得有2个:
    1、通信手段的发展,使邮件、短信、即时通讯三分天下。用即时通讯能沟通的,就不用邮件了,用短信能解决问题的,就不用即时通讯了。
    2、电子邮件系统不好用。究其原因可能很多种,最重要一点,垃圾邮件闹的。垃圾邮件太多了,导致收信费时费力,从垃圾邮件挑拣正常邮件很麻烦。发送的邮件也不能保证100%的收到。

    不管什么通信手段,可用性、可靠性是第一位的。没有了可用性、可靠性,这种通信手段就不被信赖。

    我们在长期的客户服务过程中,逐渐摸索出一些对付垃圾邮件的办法,这个可以跟邮件的同行一起探讨。其中用到的一个技术,就是根据FQDN来判断。FQDN就是服务器的全域名(FQDN,Fully Qualified Domain Name)是指主机名加上全路径,全路径中列出了序列中所有域成员。全域名可以从逻辑上准确地表示出主机在什么地方,也可以说全域名是主机名的一种完全表示形式。从全域名中包含的信息可以看出主机在域名树中的位置。

    通过判断垃圾邮件发送者的FQDN,我们发现一些端倪。很多垃圾邮件发送者是通过ADSL拨号上网后发的,FQDN都带有一些数字特征。

    ^[^.]*[0-9][^0-9.]+[0-9].*\.
    ^[^.]*[0-9]{5}
    ^([^.]+\.)?[0-9][^.]*\.[^.]+\..+\.[a-z]
    ^[^.]*[0-9]\.[^.]*[0-9]-[0-9]
    ^[^.]*[0-9]\.[^.]*[0-9]\.[^.]+\..+\.
    ^(dhcp|dialup|ppp|[achrsvx]?dsl)[^.]*[0-9]

    金笛邮件系统新版本V3.10 ,采用S25R (Selective SMTP Rejection)检查,也就是FQDN正则表达式匹配的方式,取得很好的效果。

    S25R检查是一种垃圾邮件过滤策略,简单地说,就是"接受来自邮件服务器的SMTP访问而拒绝来自End User的访问"。详细信息请参照以下说明。 这个方法是对付垃圾邮件的一种强有力的对策。不过,在使用时需要注意。为了不拒绝正规的连接,请进行以下的工作。 如果可能请强制正规用户使用SMTP认证的连接。JDWA对在SMTP认证上成功的连接不进行 S25R 检查。 请持续维护白名单和黑名单列表。特别是白名单的维护很重要。 为了S25R 检查需要进行 DNS 的逆向查询,在 DNS 不能使用的环境会对 JDMail 的服务造成延迟和障碍发生的可能性。为确保 DNS 没有问题,请经常定期做检查。

    为了实现S25R检查,需要开启[过滤器的管理]-[过滤器的开/关] "SMTP RCPT 后处理过滤器(在线)",或 "SMTP DATA 后处理过滤器(在线)" 。如果对DNS反向解析没有充分的知识的情况下,实行S25R检查的事不能贸然推进。

    如果使用ADSL的用户访问了JDMail,有根据S25R检查被拒绝连接的可能性。这个情况,让合法用户进行SMTP认证的连接或在白名单登记。

    由于通过SMTP认证的JDMail用户的连接不进行 S25R 检查,建议对本地合法用户只准许SMTP认证的连接。请在[环境配置]-[JDMail环境配置]中把"许可(EnableAuthSMTP-POP3)"设为无效,把"POP before SMTP"设为有效。

(*1) JDWA的S25R检查顺序如下。

JDWA的过滤器对 JDMail 的连接不是 SMTP 认证的情况,开始对连接原主机进行 S25R 检查。
过滤器使用 gethostbyaddr 函数取得连接原主机的FQDN。
过滤器判断如果与连接原主机的信息白名单的东西相符,则判断是来自正规用户的连接。
过滤器判断如果与连接原主机的信息黑名单的东西相符,则判断是来自垃圾邮件的连接。
过滤器最终地通过[过滤基本条件]和连接原主机的信息比较进行判断。
过滤器,指示如果最终判断连接原主机是垃圾邮件发送主机,JDMail是强行终止SMTP会话还是继续。强行终止的情况把邮件保存到垃圾邮件夹下,继续后续处理则在邮件头部添加SPAM标识。
在SMTP DATA后进行S25R检查,根据检查被判定为垃圾邮件,将会在邮件头部(message header)添加详细信息。比如 "X-S25R-JDWA-Check:1; NonFQDN(x.x.x.x, RC:451)","X-S25R-JDWA-Check:1; BlackList(x.x.x.x, RC:554, yy.yy.yy)","X-S25R-JDWA-Check:1; DefaultRule(x.x.x.x, RC:451, yy.yy.yy)" 的信息被添加。(x.x.x.x:IP地址,RC:451应答编码,yy.yy.yy是DNS反向解析结果)。分别表示"反向解析名没找到","在黑名单内","符合过滤条件"。

(*2) 选择 SMTP RCPT 后还是 SMTP DATA 后进行S25R检查。

SMTP RCPT 后处理的情况,是在收到邮件数据(邮件头和邮件体)之前的处理,对系统的负荷轻。
SMTP DATA 后处理的情况,是在接收邮件数据后进行处理,对系统的负荷重。

(*3) DNS正常,但是不能得到查询结果,(1) 继续试图连接 (2) DNS设置有误,一般是垃圾邮件的可能性比较大。

(*5) 为了灵活使用S25R检查,需要经常维护白名单和黑名单。可以查看[垃圾邮件日志(记录)],如果发现有正常的连接请加入到白名单。如果有被判断为正常的非法连接请添加到黑名单。

(*6) 如果JDMail在短时间内有大量邮件访问,为减少系统负荷,建议暂时关闭S25R日志记录。

(*7) 垃圾邮件主机和判定的连接原主机的 FQDN 再以正则表达式指定 IP 地址。指定条件从前往后顺序匹配,最先相符条件的圾邮件处理被执行,条件的编辑需要正则表达式的知识。一般使用默认设置即可。

(*8) 如果判断是垃圾邮件主机的连接而强行终止连接,邮件不保存。这个情况,(1)SMTP 客户端不进行再次发送,(2)尝试重发。

(*9) 请参照关于垃圾邮件文件夹功能 (*12)。

(*10)(*11) 在S25R检查阶段不进行处理(连接切断),想以后进行某种垃圾邮件处理的情况这个选择有效。如在Subject:加上标记,[S25R-Spam]等。还可以在邮件头部增加 X-Spam-Host: Yes 标识。

(*12) 象以下的示例一样指定切断跟垃圾邮件主机连接的应答编码和应答消息。
451 Please try again later
550 Connection not accepted due to spam
554 Transaction failed
(什么都没指定的情况,JDMail 既定的应答编码(500)退回到垃圾邮件主机)
如果返回451,有从同样的主机同样的邮件被再次发送的可能性。如果返回500,被看做是致命的错误,没有再送的可能性。

(*13) 根据S25R检查被判定了实行垃圾邮件文件夹功能,垃圾邮件到达时,如果那个地址是本地用户,相应用户的邮箱内会创建 spam 这个邮件夹,并在那里保存。

这个功能 "SMTP DATA 后处理"开启才可能生效,需要从[过滤器的管理]菜单开启。如果"SMTP RCPT 后处理"进行 S25R 检查这个功能不能运行。
[JDWM管理]-[环境设置]-[基本设置] "垃圾邮件文件夹功能的使用" 设置为 "许可" 。

SPAM对策在 [反垃圾邮件]菜单内的[垃圾邮件地址的管理],[垃圾邮件主机的管理],[垃圾邮件消息的管理],[安全性]-[SMTP连接数限制]等功能都可以使用。

垃圾邮件处理的记录通过本页的[垃圾邮件日志(记录)]能浏览。同时,[访问日志(记录)]-[过滤器处理的日志(记录)3(JDWA-S25R检查)]也能查看。

Copyright 1997-2017 北京春笛信息技术有限公司 地址:北京海淀区知春路23号863软件园量子银座九层