linux-qmail 病毒/垃圾邮件处理

系统 Linux
自从安装qmail邮件系统后,使用上一直没有问题,可是后来部分帐户每天都会出现大量的垃圾邮件(所说的广告),病毒邮件(附件是木马等病毒),大量的垃圾邮件使邮件队列出现诸塞现象。

自从安装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

http://dag.wieers.com/rpm/rpmforge.php

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就完成。

#p#

配置

#修改起动脚本使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

scoreRCVD_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

#p#

开始安装

./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-recursion10 --max-space100000";

重新启动qmail

发送一个病毒邮件测试

查看tail -f  /var/spool/qscan/qmail-queue.log

可以看到病毒邮件被扫描发现,而且转发并且删除。可以在quarantine.log 文件中发现有记录。

发送一个垃圾邮件测试

查看tail -f  /var/spool/qscan/qmail-queue.log

可以看到邮件经过SA,评分。发现评分超过7.0,我接收到垃圾邮件发现标题开头加入了SPAM字样。而且查看邮件属性,可以发现邮件有经过处理的记录。。到此完成。。。。我这里上传相关部分软件。

责任编辑:赵宁宁 来源: IT实验室
相关推荐

2011-01-19 15:21:32

Qmail垃圾邮件

2010-04-28 17:06:19

2010-08-24 14:05:45

2011-01-24 14:36:26

2014-01-23 14:38:14

Chrome浏览器恶意程序

2009-10-27 09:32:45

垃圾邮件管理策略邮件管理

2011-02-18 16:43:52

2013-05-15 09:18:01

SpamAssassi垃圾邮件

2009-07-02 18:55:11

2015-05-18 09:31:15

2011-09-23 15:28:44

2009-04-28 19:44:25

LinuxProcmail垃圾邮件

2012-08-22 16:34:36

2013-05-14 09:27:13

垃圾邮件LinuxSendmail

2013-05-15 09:26:39

SpamAssassi邮件过滤

2014-09-29 16:52:00

2012-12-03 10:17:42

恶意垃圾邮件垃圾邮件恶意邮件

2010-09-30 09:27:18

企业反垃圾邮件

2011-11-18 14:06:37

垃圾邮件

2010-03-18 17:04:52

垃圾邮件邮件安全病毒
点赞
收藏

51CTO技术栈公众号