邮件系统的选型与架构专题(4)

12/3/2006来源:Qmail人气:6998

1.拒收来自已知垃圾邮件主机的信息

拒收接收已知垃圾邮件主机发来的邮件,可以通过设置MTA程序中的配置文件来实现。为使MTA程序知道拒收来自哪些主机的邮件,必须要列出已知的垃圾邮件主机。通常可用以下两种方法来实现这一目标。

(1)创建自己的垃圾邮件主机列表供邮件服务器查询

Qmail在badmailfrom文件中设置要拒收的垃圾邮件主机。可以从追踪垃圾邮件站点的互联网服务器上获取已知的垃圾邮件主机地址,如spamcop站点(www.spamcop.net)上提供了4个关于垃圾邮件主机地址的列表:

◆ 产生垃圾邮件的主机网络地址或ip

◆ 转发垃圾邮件的主机网络地址或IP;

◆ 垃圾邮件中发现的网站网络地址或IP;

◆ 垃圾邮件涉及的邮件地址或IP。

这些地址是由接收到垃圾邮件的人提交的,可以手动从spamcop提取这些主机信息,把它们加入到本地垃圾邮件主机列表中,即Qmail的badmailfrom文件中。这种方式直截了当、查杀效率高,缺点是垃圾邮件的误报率、误杀率过高,需谨慎使用。

(2)连接到互联网上提供已知垃圾邮件主机列表的服务器上

目前国际上比较流行的反垃圾邮件技术是,针对每一个进入的邮件信息,MTA程序获得远程服务器的地址,并查询远程互联网服务器对该地址进行认证。如果该地址在已知垃圾邮件主机列表中,则MTA程序拒绝接收这些进入的邮件信息。

无论是邮件滥用保护系统(Mail Abuse PRevention System,MAPS)的中转垃圾邮件阻塞器(Relay Spam Stopper,rss),还是使用第三方实时黑名单主机列表(Realtime Blackhole List,RBL),如果邮件地址在这些列表中被找到,则邮件服务器认为这是一个垃圾邮件主机,将拒绝接收它的邮件(如图5)。



图5 利用RBL过滤垃圾邮件的典型过程
国内的邮件服务器防范意识普遍偏低,容易被不法分子利用做垃圾邮件的中转站。因此,如果企业的邮件客户大都在中国,建议采用中国反垃圾邮件联盟提供的RBL+黑名单列表和中国邮件服务运营商白名单列表CML(如图6)。

在Qmail中,可以使用rblsmtpd程序利用MAPS RSS服务器对进入的连接进行检查。通过修改SMTP启动脚本,加上



/usr/local/bin/rblsmtpd:/usr/local/bin/tcpserver -H -R -l 0 -t 1 -v -p -x \/home/vpopmail/etc/tcp.smtp.cdb -u qmaild -g nofiles 0 smtp \/usr/local/bin/rblsmtpd \




图6 黑、白名单列表


/var/qmail/bin/qmail-smtpd your.host.name \/home/vpopmail/bin/vchkpw /bin/true 2>%26amp;1 | \/var/qmail/bin/splogger smtpd 3 %26amp;


如果想使用第三方的RBL列表,只要加上-r选项就可以。该选项可以指定多个RBL源,比如:

-r blackholes.mail-abuse.org-r cbl.anti-spam.org.cn


这样,如果连接主机出现在RBL列表中,系统将拒绝连接。