当前位置:Linux教程 - Linux资讯 - SpamGurad在邮件服务器防止Spam

SpamGurad在邮件服务器防止Spam

  1, 什么是spamgurad   目前最令邮件服务器管理员头痛的事情就要数垃圾邮件了,为此,EnderUnix团队写了一个小软件,它能够自动的监控你的邮件服务器日志文件,发现垃圾邮件制造者的活动,从而把垃圾邮件堵在外面不让其进入服务器,目前,spamguard支持qmail,Sendmail和postfix     2, 工作原理   spmaGurad 定期(多少间隔扫描一次是由自己定义的)扫描你的邮件服务器的日志文件,例如,5分钟一次,我们都知道,每当有人连入我们的服务器进行发信时,在服务器的邮件日志文件中就会有类似这样的纪录   @aae1ceb3c84 tcpserver: status: 1/20   @ab924716dfc tcpserver: status: 2/20   @ab92473d344 tcpserver: pid 26223 from 211.97.241.xxx   @ab926a9d99c tcpserver: ok 26223 :210.xxx.xx.xxx:25 :211.97.241.xxx::2568   @aba066536f4 tcpserver: end 26223 status 0   @aba06655a1c tcpserver: status: 1/20   @aba2af1280c tcpserver: end 25902 status 0   @aba2af1474c tcpserver: status: 0/20   @abb04c5d704 tcpserver: status: 1/20   @abb04cb498c tcpserver: pid 26241 from 211.157.217.xxx   @ad219ee05fc tcpserver: status: 2/20   @ad219f05ba4 tcpserver: pid 26439 from 212.3.3.xxx   @ad30ee81bd4 tcpserver: status: 3/20   @ad30eed309c tcpserver: pid 26508 from 212.31.116.xxx   @ad41fff98d4tcpserver:ok 26508 :210.xxx.xxx.xxx:25 :212.31.116.xxx::33361   @ad506306f3ctcpserver:ok 26241 :210.xxx.xxx.xxx:25 :211.157.217.xxx::4305   @ade38852f54 tcpserver: end 26508 status 256     spamGuard 检测log文件,如果匹配“from”的地址(亦即发信人的地址)超出你定义的值,spamGuard将添加这个邮件地址到$BADMAILER文件(如sendmail中的/etc/Access,qmail中的/var/qmail/control/badmailfrom)中。从而,以后从这些用户发过来的邮件都将被您的MTA K掉     呵呵,如果我自己或者我服务器上的客户想大量发邮件是怎么办呢,spamGuard同样为你准备好了,有一个spam-ignore.txt的配置文件可以让你做到这一点     3, 安装   1) go to http://www.enderunix.org/spamguard/ 下载最新稳定版,目前为v1.6   % tar xzvf spamguard-VERSION.tar.gz   % cd spamguard-VERSION   2)% make   3)% su root -c 'make install'   生成的可执行文件安装到/usr/local/bin.一个示例的spamguard.conf.sample文件被安装到/usr/local/etc下% cp spamguard.conf.sample spamgurad.conf   4)接下来要进行的工作时对spamguard.conf文件进行配置(以qmail为例)   例如,以下是我的配置文件   logtype = "qmail" ###服务器类型     logfile = "/var/log/qmail/spamgurad.log" ##你的服务器产生的日志文件的位\置,以供spamguard读取   ##logfile = "/var/log/maillog" ## ßsendmail     ignorefile = "/usr/local/etc/spam-ignore.txt" #文章前面提到的需要spamguard\忽略的邮件地址存放文件,格式可参照其提供的\spam-ignore.txt.sample文件     badmailfile = "/var/qmail/control/badmailfrom" ###你的邮件服务器揪出来的\黑名单将放入此文件中\ 如果是sendmail,将是 /etc/mail/access;     sysadmin = "[email protected]" #spamguard警告的发送人,设为邮件系统管理员即可     hostname = "badusers.spam.org" ##如果垃圾邮件发送者的主机名没有找到,则自动添加为你的设置     mail_command = "/bin/mail" ###本地邮件程序,以便使用此命令给上面定义的sysadmin发信     ###makemap_command = "makemap hash /etc/mail/access </etc/mail/access" ##使用sendmail and sendmail时才用到     statfile = "/usr/local/etc/spamguard.stat" ##内部使用,不用理会之     wcnt = 10 ##警告界限,并不放入$BADMAILER     bcnt = 20 ##阻止界限     pcnt = 200 ## 在ignorefile中被忽略的邮件地址极限数目.     而后,编辑/etc/crontab文件,让spamguard每隔5分钟(请根据情况自行定义)运行一次检查:添加以下一行:     0-59/5 * * * * /usr/local/bin/spamguard 可能大家会担心spamgurad处理log文件的速度和对系统的载荷,其实,spamGuard 能够在10秒内处理85M大小的log文件. 但由于log文件总是越来越大的,所以,用户可运行以下脚本,并将其放置于/etc/cron.weekly中每周运行一次:   % chmod 755 /etc/cron.weekly/log-rotate.sh   % cat /etc/cron.weekly/log-rotate.sh   #! /bin/sh   #   #use log-rotate.sh script every week by using crond   #define LOGFILE "/var/log/qmail/spamguard.log"   #   LOGDIR=/var/log/qmail   LOG=spamguard.log     if test -d $LOGDIR   then   cd $LOGDIR   if test -s $LOG   then   /etc/rc.d/init.d/qmail stop   kill `ps -ef grep qmail- grep -v grep awk '{print $2; }'`   ##*可能你的qmail的停止命令与此不一样,请调整*##   test -f $LOG.6 && mv $LOG.6 $LOG.7   test -f $LOG.5 && mv $LOG.5 $LOG.6   test -f $LOG.4 && mv $LOG.4 $LOG.5   test -f $LOG.3 && mv $LOG.3 $LOG.4   test -f $LOG.2 && mv $LOG.2 $LOG.3   test -f $LOG.1 && mv $LOG.1 $LOG.2   test -f $LOG.0 && mv $LOG.0 $LOG.1   mv $LOG $LOG.0   toUCh $LOG   /etc/rc.d/init.d/qmail start   fi   fi     如此,每周重新启动qmail一次,备份日志文件,并产生新的一个日志文件,以避免日志文件过大引起的速度和效率问题
[1] [2] 下一页 

(出处:http://www.sheup.com)


上一页 [1] [2]