Sendmail环境下利用DRAC杜绝垃圾邮件软件环境: DRAC ftp://ftp.cc.umanitoba.ca/src/drac.tar.Z 什么是DRAC 互联网中最令用户讨厌的问题就是大量的垃圾电子广告邮件满天飞,而作为邮件服务器管理员的你管理的邮件服务器的可能就是转发垃圾邮件的中继器。出现这种问题的最根本的原因是标准的电子邮件传输协议(SMTP)在传输邮件时,不进行用户身份认证,邮件可以被匿名/冒名发送。而导致你的邮件服务器被用作垃圾邮件转发器则是因为服务器配置不当,使得服务器是open relay的,从而被垃圾邮件发送者利用其来发送垃圾邮件。 为了解决以上问题,对于邮件服务器只为具有固定IP地址的用户服务的情况下,比如说你管理的邮件服务器是为园区网服务的,则可以对sendmail设定只允许园区网的IP地址通过该服务器转发邮件,从而阻止垃圾发送者通过服务器转发垃圾邮件。具体参考本站的“senmail快速指南"一文的相关内容。 而对于需要提供免费邮件申请的应用环境,或是希望本单位用户在出差时可以在任何地方通过拨入当地的ISP来发送接收信件的应用环境来说,这时候用户的IP地址是不固定,是无法预料的,这样上面的方法就不适用了。有两种方法可以在保证合法用户正常使用的同时防止垃圾邮件发送者利用邮件服务器转发垃圾邮件。 第一种方法是为Sendmail加入SMTP转发认证,请参考本站的《Sendmail环境下实现SMTP认证拒绝垃圾邮件》。另外一种就是DRAC(Dynamic Relay Authorization Control)-动态邮件转发授权控制。 DRAC(Dynamic Relay Authorization Control——动态转发授权控制),其原理就是利用pop3或imap服务器固有的功能通过用户名、密码和客户机IP地址兰验证用户身份的合法性,并将这些用户IP信息及时映象到允许转发邮件的验证数据库中,供smtp服务器调用,同时在经过一段时间以后(缺省为30分种),其验证信息将自动失效,需要用户重新输入验证信息。这样不仅可以保证合法的pop3或imap用户能够正常使用邮件服务器,也可以阻止任何非注册用户(包括本地)利用邮件服务器来发送邮件。这种邮件安全控制常常被称为:“邮件服务之前的pop验证”(POP-before-SMTP)。 DRAC 实际上是一个运行在后台的守护进程,以客户/服务器模式运行。客户服务器之间通过使用RPC进行网络通讯。在这个系统中,POP或IMAP是客户程序, DRAC daemon 是服务程序可以同时为网络上的多台邮件服务器提供动态转发的功能。DRAC守护进程必须与邮件服务器(Sendmail)运行在同一台计算机上。因此,在实际应用时,Sendmail和DRAC运行在同一台机器上,而POP或IMAP可以运行在网络中的其他计算机上,本文的示例讨论所有的服务都安装在同一台服务器上的情况。 拨号上网的用户IP是一个不定值。只有把他的IP加入到access.db中,用户才能使用邮件服务器发邮件。如果采用动态控制,在用户收取邮件时,进行身份验证,对于验证通过的用户,后台监控程序会实时地将用户当前的IP记录到数据库中。具体实现过程是:先“收”后“发”, 收件时要经用户身份认证,认证后将用户的IP加入数据库,IP地址在SMTP Server的数据库中保存30分钟。每收取一次邮件,计时重新开始。30分钟内如果用户不使用邮件服务收发,则DRAC将用户的IP从数据库中删除。这种做法保证了拨号用户可以收发自己的邮件。唯一不方便的是:用户第一次发邮件时,需要先收一次邮件。感觉上,这好像很麻烦,不过,如果大家都习惯了先收后发,那么就一点儿也不会有别扭的感觉了。 软件安装 软件安装需要三个步骤:第一步首先安装DRAC,然后安装POP/IMAP服务器,最后配置Sendmail服务器。 1、DRAC的安装 首先在/usr/src目录下创建子目录drac:
解开软件包:
编辑Makefile,修改其中如下内容:
编译安装DRAC:
编辑/etc/mail/dracd.allow文件,确保内容如下:
启动DRAC,在启动以前先要启动portmap服务,首先确定系统安装有portmap软件包:
|