博客统计信息

用户名:zy6103
文章数:40
评论数:35
访问量:94183
无忧币:250
博客积分:773
博客等级:4
注册日期:2006-10-31

我的技术圈(1)

更多>>
linux-qmail 病毒/垃圾邮件处理
2009-08-06 17:48:14
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zhaoyong.blog.51cto.com/61971/188647
     自从安装qmail邮件系统后,使用上一直没有问题,可是后来部分帐户每天都会出现大量的垃圾邮件(所说的广告),病毒邮件(附件是木马等病毒),大量的垃圾邮件使邮件队列出现诸塞现象。后来安装了clamav杀毒软件,定时每天临晨对邮件队列进行一次杀毒,对病毒邮件和垃圾邮件全部转移到我自己定义的一个文件夹中。经过几天的观察效果一般。最后还是决定重新制作一套时时杀毒并且具有防火墙功能的邮件杀毒系统。经过一边研究(google很多次,虽然网上有很多的案例,各有千秋。不过大部分都是相互转载,也就是说大部分雷同。我测试没有一套可以生效,并且很多都是比较老的。最后查看官方文档。总算制作完成。写出来对有需要的人提供帮助。)一边琢磨。废话不说。开始。。。
 
实现的前提条件,你有一套收发都没有问题的qmail系统,我以前文档有这套qmail系统的安装配置过程。
实现的功能:对进入邮件队列的邮件第一步杀毒,第二步打分,审核是否是垃圾邮件。第三步通过。
 
实现以上功能需要的软件如下:
全部可以从官方下载
clamav-0.95.2.tar.gz           杀毒软件最新版,
qmail-scanner-2.06.tgz        邮件队列扫描软件
q-s-2.06st-20090419.patch.gz      邮件队列扫描软件的补丁文件
perl-suidperl-5.8.0-55.1.i586.rpm
spamassassin-3.0.6-1.el4.rf.i386.rpm 过滤垃圾邮件的防火墙
DB_File-1.820.tar.gz
Mail-SPF-v2.006.tar.gz
MIME-Base64-3.08.tar.gz
Time-HiRes-1.9719.tar.gz
Sys-Syslog-0.27.tar.gz
 
安装 perl-Time-HiRes-1.38-3.i386.rpm
rpm -ivh perl-Time-HiRes-1.38-3.i386.rpm
 
 
安装杀毒软件
创建用户
useradd -s /bin/false clamav
安装:
./configure --prefix=/usr/local/clamav
make      
make install
 
配置如下:
编辑:clamd.conf  杀毒配置文件
在 Example 前面加 #
LogFile /var/log/clamd.log
LogVerbose yes
TemporaryDirectory /var/tmp
DatabaseDirectory /usr/local/clamav/share/clamav
LocalSocket /tmp/clamd
FixStaleSocket true
User clamav
ScanMail yes
ScanHTML yes
ScanArchive yes
 
配置:freshclam.conf   升级配置文件
在 Example 前面加 #
DatabaseDirectory /usr/local/clamav/share/clamav
UpdateLogFile /var/log/freshclam.log
LogVerbose yes
PidFile /var/run/clamav/freshclam.pid     注意clamav目录全县修改
DatabaseOwner clamav
DatabaseMirror database.clamav.net
DatabaseMirror db.cn.clamav.net
DatabaseMirror database.clamav.net
DatabaseMirror clamav.irontec.com
DatabaseMirror clamav.inet6.fr
DatabaseMirror clamav.netopia.pt
DatabaseMirror clamav.sonic.
Checks 4
完成配置
 
执行 /usr/local/clamav/bin/freshclam -d -c 6 -l /var/log/freshclam.log 6
启动杀毒软件每天更新6次
 
我是安装到/usr/local/clamav 下,然后将clamscan杀毒程序软连接到/usr/local/bin下,以配合扫描程序可以直接找到调用。
 
安装
spamassassin-3.0.6-1.el4.rf.i386.rpm
用它来过滤邮件
 
先安装如下
DB_File-1.820.tar.gz
Mail-SPF-v2.006.tar.gz
MIME-Base64-3.08.tar.gz
Time-HiRes-1.9719.tar.gz
Sys-Syslog-0.27.tar.gz
全部使用如下:
perl Makefile
make
make test
make install
 
rpm安装spamassassin
rpm -ivh spamassassin-3.0.6-1.el4.rf.i386.rpm就完成。
 
配置
#修改起动脚本使spamassassin支持vpopmail
#
修改如下一行:

vi /etc/init.d/spamassassin
SPAMDOPTIONS="-d -c -m5 -H -x -u vpopmail -v"

vi /etc/sysconfig/spamassassin
SPAMDOPTIONS="-d -c -m5 -H -x -u vpopmail -v"
#spamassassin的过滤模板在/etc/mail/spamassassin/local.cf,修改为:
vi /etc/mail/spamassassin/local.cf
# These values can be overridden by editing ~/.spamassassin/user_prefs.cf
# (see spamassassin(1) for details)
# These should be safe assumptions and allow for simple visual sifting
# without risking lost emails.
required_score 7.0    以7.0为分界限,评分超过7.0的就会在邮件标题开头加入 ******SPAM*****字样,已提示为垃圾邮件,不过也有被误认为的时候。所以建议不要做对垃圾邮件删除。
rewrite_header Subject ********SPAM********
report_safe 1
use_bayes 1
auto_learn 1
skip_rbl_checks 0
rewrite_subject 1
report_header 1
use_terse_report 1
defang_mime 1
dns_available yes
dcc_add_header 1
#use_pyzor 1 (Only if you have installed pyzor)
#use_razor2 (Only if you have installed razor2)
use_dcc 1

#ok_languages zh en
#ok_locales en ko
ok_languages all
ok_locales all
score HEAD_ILLEGAL_CHARS 0
score SUBJ_ILLEGAL_CHARS 0
score DATE_IN_PAST_03_06 0
score UPPERCASE_25_50 0
score UPPERCASE_50_75 0
score UPPERCASE_75_100 0
score X_MSMAIL_PRIORITY_HIGH 0
score X_PRIORITY_HIGH 0
score TO_TXT 100
score RATWARE_HASH_2 100
score RATWARE_HASH_2_V2 100
score BAYES_99 0.1
score BAYES_80 0.1
score BAYES_60 0.1
score FROM_ILLEGAL_CHARS 0.1
score MIME_BASE64_TEXT 0.1
score NO_RDNS_DOTCOM_HELO 0.1
score CHINA_HEADER 0.1
score NO_REAL_NAME 0.2
score HTML_MESSAGE 0.2
score MIME_HTML_ONLY 0.2
score MIME_HTML_ONLY_MULTI 0.2
score FORGED_MUA_OUTLOOK 0.2
score FORGED_HOTMAIL_RCVD 0.2
score FORGED_OUTLOOK_TAGS 0.2
score MAILTO_TO_SPAM_ADDR 0.2
                                                
header   RCVD_IN_CASA_CBLLESS eval:check_rbl('CBLLESS','cblless.anti-spam.org.cn.','127.0.8.5')
describe RCVD_IN_CASA_CBLLESS Relay has be listed in CASA CBL-,
http://anti-spam.org.cn/
tflags   RCVD_IN_CASA_CBLLESS net
score    RCVD_IN_CASA_CBLLESS 4.0
配置完成。以上具体解释请看相关文档。

#使用CCERT 中文垃圾邮件过滤规则集Chinese_rules.cf
wget -N -P /usr/share/spamassassin
www.ccert.edu.cn/spam/sa/Chinese_rules.cf
 
#启动SpamAssassin
service spamassassin start
 
#定期自动更新中文反垃圾邮件规则
crontab –e
0 0 1 * * (wget -N -P /usr/share/spamassassin http://www.ccert.edu.cn/spam/sa/Chinese_rules.cf)
 
#建立SpamAssassin的学习系统
sa-learn --sync -D -p user_prefs
 
安装邮件队列扫描程序
qmail-scanner-2.06.tgz       
q-s-2.06st-20090419.patch.gz 
 
首先安装
rpm -ivh perl-suidperl-5.8.0-55.1.i586.rpm
否则会出现
Error was:
Can't do setuid
创建用户
useradd –g qscand –s /bin/false qscand
解压打补丁
tar zxvf      qmail-scanner-2.06.tgz       
gunzip  q-s-2.06st-20090419.patch.gz 
patch -p0 < q-s-2.06st-20090419.patch 打补丁
 
安装:
./configure --qmail-queue-binary /var/qmail/bin/qmail-queue --setuidgid-path /usr/local/bin/setuidgid --admin postmaster --domain domain.com.cn --notify sender,admin --local-domains domain.com.cn --lang en_GB --debug yes --unzip yes --scanners clamscan,fast_spamassassin --virus-to-delete yes --sa-forward postmaster@domain.com.cn  --sa-reject yes  --sa-subject "*** SPAM *** "
以上个别配置解释;
--admin : 邮件帐户名,可以任意存在的
--domain:邮件帐户的域名,
以上会自动生成一个邮件帐户,可以用来接收被删除的垃圾邮件。
--local-domains :你所有的邮件域名。
--scanners :杀毒程序名,垃圾邮件过滤程序名。
其他参数就不详细说了,./configure --help下有解释
通过输入2个 Y ,如无问题,会出现 install 1
 
开始安装
./configure --qmail-queue-binary /var/qmail/bin/qmail-queue --setuidgid-path /usr/local/bin/setuidgid --admin postmaster --domain domain.com.cn --notify sender,admin --local-domains domain.com.cn --lang en_GB --debug yes --unzip yes --scanners clamscan,fast_spamassassin --virus-to-delete yes --sa-forward postmaster@domain.com.cn  --sa-reject yes  --sa-subject "*** SPAM *** "  install yes
 
看看是否在/var/qmail/bin/qmail-scanner-queue.pl是否存在
chown qscand:qscand /var/qmail/bin/qmail-scanner-queue.pl
chmod 4755 /var/qmail/bin/qmail-scanner-queue.pl

然后用一个普通用户登陆,执行
/var/qmail/bin/qmail-scanner-queue.pl -z
  

如果没有Can't do setuid出现,完成
然后修改vpopmail的配置文件,如下:
vi tcp.smtp
添加:
127.0.0.1:allow,RELAYCLIENT=””,RBLSMTPD="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
 
10.:allow,RELAYCLIENT="",RBLSMTPD="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
 
:allow,QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
重新生成tcp.smtp.cdb,tcp.smtp.tmp
tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
 
完成后
重起qmail
查看日志
cat /var/log/clamd.log
cat /var/log/freshclam.log
cat /var/log/qmail/qmail-send/current
以及
/var/spool/qscan/ 中的日志(扫描邮件日志从这里可以看到)主要为
以下这个文件
qmail-queue.log
经测试邮件查看,发现邮件扫描出现错误clamscan_options的选项无法识别。
 
继续修改
vi /var/qmail/bin/qmail-scanner-queue.pl
my $clamscan_options="-r --disable-summary --max-recursion=10 --max-space=100000";
 
重新启动qmail
 
发送一个病毒邮件测试
查看tail -f  /var/spool/qscan/qmail-queue.log
可以看到病毒邮件被扫描发现,而且转发并且删除。可以在quarantine.log 文件中发现有记录。
 
发送一个垃圾邮件测试
查看tail -f  /var/spool/qscan/qmail-queue.log
可以看到邮件经过SA,评分。发现评分超过7.0,我接收到垃圾邮件发现标题开头加入了SPAM字样。而且查看邮件属性,可以发现邮件有经过处理的记录。。到此完成。。。。我这里上传相关部分软件。

本文出自 “zhaoyong” 博客,请务必保留此出处http://zhaoyong.blog.51cto.com/61971/188647

分享至
更多
一键收藏,随时查看,分享好友!
0人
了这篇文章

附件下载:
  使用到的部分软件包
类别:linux技术圈()┆阅读()┆评论() ┆ 推送到技术圈返回首页
上一篇 qmail 软件包 下一篇 glibc升级

文章评论

 
2009-08-07 11:17:43
好实用的啊。呵呵。

2009-08-07 11:23:14
非常好哈~

2009-08-07 15:56:34
好!感谢分享!

2010-09-01 12:32:59
留个名,这玩意肯定用得着

 

发表评论            

【技术门诊】专家解析:软考重点难点及应试技巧
昵  称:
登录  快速注册
验证码:

请点击后输入验证码博客过2级,无需填写验证码

内  容: