linux-qmail 病毒/垃圾郵件處理
自從安裝qmail郵件系統(tǒng)后,使用上一直沒(méi)有問(wèn)題,可是后來(lái)部分帳戶(hù)每天都會(huì)出現(xiàn)大量的垃圾郵件(所說(shuō)的廣告),病毒郵件(附件是木馬等病毒),大量的垃圾郵件使郵件隊(duì)列出現(xiàn)諸塞現(xiàn)象。后來(lái)安裝了clamav殺毒軟件,定時(shí)每天臨晨對(duì)郵件隊(duì)列進(jìn)行一次殺毒,對(duì)病毒郵件和垃圾郵件全部轉(zhuǎn)移到我自己定義的一個(gè)文件夾中。經(jīng)過(guò)幾天的觀察效果一般。最后還是決定重新制作一套時(shí)時(shí)殺毒并且具有防火墻功能的郵件殺毒系統(tǒng)。經(jīng)過(guò)一邊研究(google很多次,雖然網(wǎng)上有很多的案例,各有千秋。不過(guò)大部分都是相互轉(zhuǎn)載,也就是說(shuō)大部分雷同。我測(cè)試沒(méi)有一套可以生效,并且很多都是比較老的。最后查看官方文檔??偹阒谱魍瓿伞?xiě)出來(lái)對(duì)有需要的人提供幫助。)一邊琢磨。廢話(huà)不說(shuō)。開(kāi)始。
實(shí)現(xiàn)的前提條件,你有一套收發(fā)都沒(méi)有問(wèn)題的qmail系統(tǒng),我以前文檔有這套qmail系統(tǒng)的安裝配置過(guò)程。
實(shí)現(xiàn)的功能:對(duì)進(jìn)入郵件隊(duì)列的郵件第一步殺毒,第二步打分,審核是否是垃圾郵件。第三步通過(guò)。
實(shí)現(xiàn)以上功能需要的軟件如下:
全部可以從官方下載
clamav-0.95.2.tar.gz 殺毒軟件最新版,
qmail-scanner-2.06.tgz郵件隊(duì)列掃描軟件
q-s-2.06st-20090419.patch.gz 郵件隊(duì)列掃描軟件的補(bǔ)丁文件
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 過(guò)濾垃圾郵件的防火墻
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
安裝殺毒軟件
創(chuàng)建用戶(hù)
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 升級(jí)配置文件
在 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
完成配置
執(zhí)行 /usr/local/clamav/bin/freshclam -d -c 6 -l /var/log/freshclam.log 6
啟動(dòng)殺毒軟件每天更新6次
我是安裝到/usr/local/clamav 下,然后將clamscan殺毒程序軟連接到/usr/local/bin下,以配合掃描程序可以直接找到調(diào)用。
安裝
spamassassin-3.0.6-1.el4.rf.i386.rpm
用它來(lái)過(guò)濾郵件
先安裝如下
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#配置
#修改起動(dòng)腳本使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的過(guò)濾模板在/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為分界限,評(píng)分超過(guò)7.0的就會(huì)在郵件標(biāo)題開(kāi)頭加入 ******SPAM*****字樣,已提示為垃圾郵件,不過(guò)也有被誤認(rèn)為的時(shí)候。所以建議不要做對(duì)垃圾郵件刪除。
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
配置完成。以上具體解釋請(qǐng)看相關(guān)文檔。
#使用CCERT 中文垃圾郵件過(guò)濾規(guī)則集Chinese_rules.cf
wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf
#啟動(dòng)SpamAssassin
service spamassassin start
#定期自動(dòng)更新中文反垃圾郵件規(guī)則
crontab –e
0 0 1 * * (wget -N -P /usr/share/spamassassin http://www.ccert.edu.cn/spam/sa/Chinese_rules.cf)
#建立SpamAssassin的學(xué)習(xí)系統(tǒng)
sa-learn --sync -D -p user_prefs
安裝郵件隊(duì)列掃描程序:
qmail-scanner-2.06.tgz
q-s-2.06st-20090419.patch.gz
首先安裝
rpm -ivh perl-suidperl-5.8.0-55.1.i586.rpm
否則會(huì)出現(xiàn)
Error was:
Can't do setuid
創(chuàng)建用戶(hù)
useradd –g qscand –s /bin/false qscand
解壓打補(bǔ)丁
tar zxvf qmail-scanner-2.06.tgz
gunzip q-s-2.06st-20090419.patch.gz
patch -p0 < q-s-2.06st-20090419.patch 打補(bǔ)丁
安裝:
./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 *** "
以上個(gè)別配置解釋?zhuān)?/P>
--admin : 郵件帳戶(hù)名,可以任意存在的
--domain:郵件帳戶(hù)的域名,
以上會(huì)自動(dòng)生成一個(gè)郵件帳戶(hù),可以用來(lái)接收被刪除的垃圾郵件。
--local-domains :你所有的郵件域名。
--scanners :殺毒程序名,垃圾郵件過(guò)濾程序名。
其他參數(shù)就不詳細(xì)說(shuō)了,./configure --help下有解釋
通過(guò)輸入2個(gè) Y ,如無(wú)問(wèn)題,會(huì)出現(xiàn) install 1
#p#開(kāi)始安裝
./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
然后用一個(gè)普通用戶(hù)登陸,執(zhí)行/var/qmail/bin/qmail-scanner-queue.pl -z
如果沒(méi)有Can't do setuid出現(xiàn),完成
然后修改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/ 中的日志(掃描郵件日志從這里可以看到)主要為
以下這個(gè)文件
qmail-queue.log
經(jīng)測(cè)試郵件查看,發(fā)現(xiàn)郵件掃描出現(xiàn)錯(cuò)誤clamscan_options的選項(xiàng)無(wú)法識(shí)別。
繼續(xù)修改
vi /var/qmail/bin/qmail-scanner-queue.pl
my $clamscan_options"-r --disable-summary --max-recursion10 --max-space100000";
重新啟動(dòng)qmail
發(fā)送一個(gè)病毒郵件測(cè)試
查看tail -f /var/spool/qscan/qmail-queue.log
可以看到病毒郵件被掃描發(fā)現(xiàn),而且轉(zhuǎn)發(fā)并且刪除??梢栽趒uarantine.log 文件中發(fā)現(xiàn)有記錄。
發(fā)送一個(gè)垃圾郵件測(cè)試
查看tail -f /var/spool/qscan/qmail-queue.log
可以看到郵件經(jīng)過(guò)SA,評(píng)分。發(fā)現(xiàn)評(píng)分超過(guò)7.0,我接收到垃圾郵件發(fā)現(xiàn)標(biāo)題開(kāi)頭加入了SPAM字樣。而且查看郵件屬性,可以發(fā)現(xiàn)郵件有經(jīng)過(guò)處理的記錄。。到此完成。。。。我這里上傳相關(guān)部分軟件。