安装Clamav+Qmail-scanner? 400 报错
根据xuki的 文档一路修改调试,总算到了反病毒这块:
Clamav 这块ok,没什么大问题!
Clamav
添加所需的组和用户
groupadd clamav useradd -g clamav -s /bin/false clamav
安装软件
tar -xzvf clamav-0.80.tar.gz cd clamav-0.80 ./configure make check make install
测试Clamav
clamscan --recursive --log=/tmp/clamscan.log ./ //扫描当前目录,测试clamscn是否运行 cat /tmp/clamscan.log
更改/usr/local/etc/freshclam.conf文件,去掉下面选项前面的#:
vi /usr/local/etc/freshclam.conf
#Example \\前面加上#
UpdateLogFile /var/log/freshclam.log \\去掉前面的#
LogSyslog \\去掉前面的#
更改/usr/local/etc/clamav.conf文件,去掉下面选项前面的#:
vi /usr/local/etc/clam.conf
#Example \\前面加上#
LogFile /var/log/clamav/clamd.log \\去掉前面的#
LogFileMaxSize 2M \\去掉前面的#
LogTime \\去掉前面的#
PidFile /var/run/clamd.pid \\去掉前面的#
DataDirectory /var/lib/clamav \\去掉前面的#,并且修改路径为/usr/local/share/clamav
LogSyslog \\去掉前面的#
ScanMail \\去掉前面的#
升级clamscan病毒库
freshclam --verbose
把freshclam加入crontab 定时更新病毒库,自动扫描/home目录
crontab -e
0 1 * * * freshclam --quiet -l /var/log/freshclam.log
0 6 * * * /usr/local/bin/clamscan --recursive --infected --exclude /usr/local/share/clamav/viruses.db --exclude /usr/local/share/clamav/viruses.db2 --log=/var/log/clamscan.log /home
创建freshclam日志记录文件
mkdir -p /var/log/clamav touch /var/log/clamav/clamd.log chown clamav.clamav -R /var/log/clamav/ chmod 644 clamav.clamav -R /var/log/clamav/ touch /var/log/freshclam.log chmod 644 /var/log/freshclam.log chown clamav:clamav /var/log/freshclam.log
创建clamav启动脚本
vi /etc/rc.d/init.d/clamav
#!/bin/sh
#
# Startup / shutdown script for Clam Antivirus
case "$1" in
start)
/usr/local/sbin/clamd && echo -n 'Clamd started'
/usr/local/bin/freshclam -d -c 2 -l /var/log/freshclam.log
echo -n ' freshclam started'
;;
stop)
/usr/bin/killall clamd > /dev/null 2>&1 && echo -n 'Clamd stoped'
/usr/bin/killall freshclam > /dev/null 2>&1 && echo -n ' freshclam Stoped'
;;
*)
echo ""
echo "Usage: `basename $0` { start | stop }"
echo ""
exit 64
;;
esac
使其能够执行
chmod 755 /etc/rc.d/init.d/clamav
随开机起动
echo /etc/rc.d/init.d/clamav start >/etc/rc.d/rc.local
===============================================================
#
qmail-scanner&qms-analog
为了能够扫描邮件服务器中进出的邮件, 我们需要安装 qmail-scanner. 如果你之前没有安装perl-suidperl,我们还需要安装它
cd /home/pkg rpm -Uvh perl-suidperl-5.8.0-88.3.i386.rpm
解开qmail-scanner...
tar zxvf qmail-scanner-1.22.tgz
解压qms-analog...
tar zxvf qms-analog-0.3.4.tar.gz cd qms-analog-0.3.4 make all
下一步,我们拷贝所需要的qms-analog文件到qmail-scanner安装目录
cp qmail-scanner-1.22-st-qms-20040530.patch /home/pkg/qmail-scanner-1.22/ cp qms-config-script /home/pkg/qmail-scanner-1.22/
现在,让我们打上qms-analog补丁
cd /home/pkg/qmail-scanner-1.22 chmod 755 qms-config-script patch -p1 < qmail-scanner-1.22-st-qms-20040530.patch
继续安装qmail-scanner,添加所需的组和用户
groupadd qscand useradd -g qscand -s /bin/false qscand
我们通过qms-config-script脚本来安装qmail-scanner,编辑qms-config-script
vi qms-config-script
//这部分的修改可把我折腾的.老是编译出错,改了半天还是下面的配置过去了,不过就是没法建立/var/qmail/bin/qmail-scanner-queue.pl 只好cp了一个过来改权限.
修改下面红色部份以达到我们的需求:
#!/bin/sh if [ "$1" != "install" ]; then INSTALL= else INSTALL="--install" fi ./configure --domain domain.com \ --qmail-queue-binary /var/qmail/bin/qmail-queue \ --admin postmaster \ --local-domains "domain1.com,domain2.com,......" \ --add-dscr-hdrs yes \ --dscr-hdrs-text "X-Antivirus-MYDOMAIN" \ --ignore-eol-check yes \ --sa-quarantine 0 \ --sa-delete 0 \ --sa-reject no \ --sa-subject ":SPAM:" \ --sa-alt yes \ --sa-debug no \ --notify admin \ --redundant yes \ --lang en_GB \ --debug yes \ --unzip yes \ --scanners clamscan,verbose_spamassassin \ "$INSTALL"
注 意: "--admin" 和 "--domain" 参数组成了帐号"user"@"domain name". 警告消息将通过qmail-scanner 发往这个邮件帐号, 所以必须确认这是一个管理级别的帐号. 另外,所有域的警告信息都会发给这个帐号, 所以一定要小心.
保存并退出。
现在我们测试qmail-scanner安装
./qms-config-script
在第一步时, 按y 允许qmail-scanner提前configure. 第二步时, 按y,建立 qmail-queue-scanner.pl 文件.
测试如果没有错误 ,就可以进行下一步安装
./qms-config-script install
看看/var/qmail/bin/qmail-scanner-queue.pl是否存在(不存在,cp了一个过来)
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
//这里最郁闷,出错连连!死在这了
setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -z //如果没有Can't do setuid出现,安装OK
setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -r //查看qmailscan当前包含的特征
//错误提示
//perlscanner: reading from
// /var/spool/qmailscan/quarantine-attachments.db
// X-Qmail-Scanner-1.22:[] cannot open
// /var/spool/qmailscan/quarantine-attachments.db -
setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -g //保存qmailscan定义特征的修改,使他生效。
//perlscanner: generate new DB file from
// /var/spool/qmailscan/quarantine-attachments.txt
// X-Qmail-Scanner-1.22:[] cannot read
// /var/spool/qmailscan/quarantine-attachments.txt - 没有那个文件或目录
//下面的测试程序就不用说了.
chown qscand:qscand /var/qmail/bin/qmail-scanner-queue chmod 4755 /var/qmail/bin/qmail-scanner-queue chmod 0755 /var/qmail/bin/qmail-scanner-queue.pl chown -R qscand:qscand /var/spool/qmailscan vi /var/qmail/supervise/qmail-smtpd/run
在你的qmail启动脚本加入红色部份
#!/bin/sh QMAILDUID=`id -u vpopmail` NOFILESGID=`id -g vpopmail` PATH=$PATH:/usr/local/bin:/var/qmail/bin QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" export QMAILQUEUE MAXSMTPD=`cat /var/qmail/control/concurrencyincoming` exec /usr/local/bin/softlimit -m 40000000 \ /usr/local/bin/tcpserver -v -H -R -l 0 \ -x /home/vpopmail/etc/tcp.smtp.cdb -c "$MAXSMTPD" \ -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \ /var/qmail/bin/qmail-smtpd \ /home/vpopmail/bin/vchkpw /bin/true 2>&1
后重新启动smtp服务
qmailctl stop qmailctl start qmailctl stat
这里有测试程序
cd /home/pkg/qmail-scanner-1.23/contrib/ chmod 755 test_installation.sh ./test_installation.sh -doit
这个脚本会设定的管理员邮件地址发送3个邮件,第一个邮件是一般的正常邮件,第二个邮件中会包含eicar.com测试病毒,第三个邮件同样包含eicar.com测试病毒,不过所附带的文件名不是eicar.com。
如果qmail-scanner安装正确,管理员就应该可以收到关于后面的两个邮件的警告邮件。
如果系统出错,可以查看/var/spool/qmailscan/qmail-queue.log日志文件。
qmail-scanner的特征过滤在/var/spool/qmailscan/quarantine-atachments.txt
主要的排错监测日志
/var/spool/qmailscan/quarantine.log
/var/spool/qmailscan/qmail-queue.log
/var/spool/qmailscan/qms-events.log
/var/log/clamav/clamd.log
/var/log/maillog
还用qmail啊,现在新上的基本都是postfix了
######
postfix+dovecot+amavisd+spassassin+clamav
用amavisd来调用后两个
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。