[转帖]公安部4 号达标之不完全手册
公安部4 号达标之不完全手册 <br><br>
公安部4 号令达标之不完全手册 <br>
Author 何智强(He zhiqiang)hzqbbc <br>
Change Log 2004-6-10 从“基于SMTP 会话信息的Anti-Spam策略原理及应用技术分析与实现”一文中将本文分离出来 <br>
Copyright 1998-2004 hzqbbc.com <br>
2002-2004 jagmail.cn <br>
2004-2004 PBIP 实验室 <br>
注意 更详细的内容参见:“基于SMTP 会话信息的Anti-Spam策略原理及应用技术分析与实现” <br>
<br>
为什么? <br>
国家四部委即将在全国范围开展垃圾电子邮件专项治理工作的行动(简称6·30 行动),而离行动的验收日期(6/30)已时间不多,不少电子邮件服务器的系统管理员为达到该行动对清理垃圾邮件所提出的要求(见公安部4 号令有关的详细内容)大伤脑筋。 <br>
为了帮助广大的同行达到4 号令中提及的部分甚至全部功能,笔者本着“最大限度地使用免费技术+尽可能少的投入”之宗旨,编写了本文。 <br>
<br>
声明 <br>
请所有阅读此文的读者先仔细阅读本声明,否则造成的损失作者一概不负责任。 <br>
·本文的内容和公布的源代码以GPL v2 版权释出 <br>
·作者不对使用了本文所提及的方法/服务/代码提供任何的商业保证,如出现任何纠纷或损失,作者一概不承担任何责任 <br>
·请在使用时保留程序与文章的版权声明 <br>
·欢迎对作者所提及的任何内容批评与建议,欢迎一起讨论 <br>
<br>
<br>
<br>
<br>
怎么办? <br>
公安部4 号令中关于电子邮件服务器具备清理垃圾邮件的若干要求如下: <br>
(一)具备对发送垃圾电子邮件的特定网络地址、电子邮箱进行屏蔽的功能; <br>
(二)具备限制来自相同客户端网络地址的并发连接数量超过最大限制值的功能; <br>
(三)具备限制来自相同客户端网络地址的连接频率超过最大限制值的功能; <br>
(四)具备限制本地电子邮件用户一次性发送同一电子邮件发送数量的功能; <br>
(五)具备判别电子邮件虚假路由,对伪造虚假路由的电子邮件限制发送的功能; <br>
(六)具备关闭电子邮件服务器匿名转发或采取用户身份认证、电子邮件转发授权控制措施的功能; <br>
(七)具备对大量群发、连发同样特征的已知垃圾电子邮件进行拦截的功能,其中特征指电子邮件长度、信头字段、信体符合特定条件。 <br>
根据现有的技术,作者认为这七项要求要达到并不困难。以下就按MTA 分类来逐个分析其实现方法: <br>
<br>
<br>
Qmail <br>
(一)具备对发送垃圾电子邮件的特定网络地址、电子邮箱进行屏蔽的功能; <br>
通过设置badfrom 可以达到对域及电子邮箱的屏蔽,通过tcpserver 则可以屏蔽特定的网络地址(ip 地址);替换方法:使用qmail-acl_policy 补丁,在acl_server.pl 或相关程序中增加黑名单(badfrom 与ip 屏蔽)功能。 <br>
(二)具备限制来自相同客户端网络地址的并发连接数量超过最大限制值的功能; <br>
如果是Linux,可以使用iptable 来限制并发数,具体请参考iptables 的手册及邮件列表。简单的做法是编写一个简单的iptables 封/解封ip 脚本,定期(如每隔30 秒或1 分钟)检查网 <br>
络连接情况,将超过并发限制的ip 交由该脚本处理,限制该ip。同理适用于BSD 类系统(使用ipfw)。 <br>
(三)具备限制来自相同客户端网络地址的连接频率超过最大限制值的功能; <br>
使用qmail-acl_policy 补丁,通过补丁调用ACL/Policy Service 从而使用anvil 模块,统计某个ip 地址的客户端连接的频率,包括RCPT TO 阶段的频率。如果超过频率限制,则拒绝接收来自该ip 的电子邮件。 <br>
(四)具备限制本地电子邮件用户一次性发送同一电子邮件发送数量的功能; <br>
该功能可使用tarpit patch for qmail,见:<a target=_blank href=http://www.palomine.net/qmail/tarpit.html>http://www.palomine.net/qmail/tarpit.html</a> <br>
该补丁统计RCPT TO 的次数并适当延迟响应的速度,因此可以通过该补丁达到限制一次性发送电子邮件的数量。但需要修改一两行代码,给这个计数一个上限,一旦达到上限就抛出错误。 <br>
(五)具备判别电子邮件虚假路由,对伪造虚假路由的电子邮件限制发送的功能; <br>
使用qmail-acl_policy 补丁,通过补丁调用ACL/Policy Service 的相应模块组,限制了伪造路由、伪造来信人及其他伪造信息的电子邮件发送。 <br>
(六)具备关闭电子邮件服务器匿名转发或采取用户身份认证、电子邮件转发授权控制措施的功能; <br>
使用qmail SMTP AUTH 的补丁,为qmail 增加认证补丁可达到该效果。 <br>
(七)具备对大量群发、连发同样特征的已知垃圾电子邮件进行拦截的功能,其中特征指电子邮件长度、信头字段、信体符合特定条件。 <br>
使用Spamassassin + maildrop 或procmail 等可以达到该目的,详细的可参考SA 的手册及相关用户组和邮件列表。 <br>
<br>
<br>
Postfix <br>
(一)具备对发送垃圾电子邮件的特定网络地址、电子邮箱进行屏蔽的功能; <br>
使用access(5) 配合hash/cdb 或CIDR 即可达到该功能。 <br>
(二)具备限制来自相同客户端网络地址的并发连接数量超过最大限制值的功能; <br>
方法见qmail,此处略。 <br>
(三)具备限制来自相同客户端网络地址的连接频率超过最大限制值的功能; <br>
使用ACL/Policy Service,通过anvil 模块统计某个ip 地址的客户端连接的频率,包括RCPT <br>
TO 阶段的频率。如果超过频率限制,则拒绝接收来自该ip 的电子邮件;替换方法:使用Postfix 最新版,编写程序,监测邮件日志,根据anvil 子程序对ip 的统计汇报而统计出超出 <br>
限制的ip,并将该ip 自动加到access(5) map 里,拒绝这些ip 的SMTP 请求。 <br>
(四)具备限制本地电子邮件用户一次性发送同一电子邮件发送数量的功能; <br>
设置smtpd_recipient_limit 为期望限制的数量值即可。 <br>
(五)具备判别电子邮件虚假路由,对伪造虚假路由的电子邮件限制发送的功能; <br>
使用ACL/Policy Service,可限制伪造路由、伪造来信人及其他伪造信息的电子邮件发送。 <br>
(六)具备关闭电子邮件服务器匿名转发或采取用户身份认证、电子邮件转发授权控制措施的功能; <br>
激活SASL 并使用SMTP AUTH 即可达到该效果。 <br>
(七)具备对大量群发、连发同样特征的已知垃圾电子邮件进行拦截的功能,其中特征指电子邮件长度、信头字段、信体符合特定条件。 <br>
使用Spamassassin + maildrop 或procmail 等可以达到该目的,详细的可参考SA 的手册及相关用户组和邮件列表。 <br>
<br>
公安部4 号达标之不完全手册 hzqbbc <br>
第 4 页 共 4 页 <br>
Sendmail <br>
使用milter,并参考qmail-acl_policy 补丁的相关代码,编写适合sendmail 及milter 结构的acl_server.pl 或等同的程序,即可基本满足7 条要求。 <br>
<br>
<br>
其他MTA <br>
Unix 平台上除了上述三大MTA 外还有couriter, exim,xmail 等,都可以按上述的思路实施, <br>
再此不再讨论具体的方法;而对于Windows 平台的MTA,由于作者没有足够时间去研究,也暂时不愿意去研究,所以并没有具体的实现方法。 <br>
读者可以根据上述三大MTA 的实现方法,参考相关代码/补丁及原理文章,为Windows 的 <br>
Imail,Exchange,notes 等增加额外的Anti-Spam 措施,达到公安部4 号令中的要求。 <br>
<br>
附录 <br>
请参考“基于SMTP 会话信息的Anti-Spam 策略原理及应用技术分析与实现”<br>
页:
[1]