| 关键词: clamav sendmail 邮件 病毒 clamd var 文件 milter clmilter log |
为sendmail添加杀毒插件clamav 2005年8月6日安装clamav,现把过程记录如下: 环境:redhat9,sendmail8.12.8,使用clamav为0.86.2 第一步:用rpm -ivh 安装rpm包,安装顺序clamav-db,clamav,clamd,clamav-milter 第二步:安装后clamd和clamav-milter已经自动设置为开机自动启动,有关clamd的配置文件在/etc/clamd.conf,需要修改的有LogFileMaxSize=10M 第三步:用service clamd start启动服务,当然也可重启电脑,clamd服务会自动启动 第四步:把/var/log/clamav/clamd.log的owner改为clamav:clamav 第五步:用freshclam手动升级病毒库,以后会自动升级 至此,clamav已经安装完成,可以用“clamscan 目录/文件”的方法来查毒,但不能杀毒(它没有杀毒功能)。如果想让clamav与sendmail集成,让clamav自动负责sendmail中收发邮件的查毒工作,还要继续往下工作 第六步:在/etc/mail/sendmail.mc的MAILE之前,插入以下二行 INPUT_MAIL_FILTER(`clamav', `S=local:/var/run/clamav/clmilter.sock, F=, T=S:4m;R:4m')dnl define(`confINPUT_MAIL_FILTERS', `clamav') 并用m4 sendmail.mc>sendmail.cf重新生成cf文件,并重启sendmail服务 第七步:修改/etc/sysconfig/clamav-milter文件,在--max-children=10后增加一行--timeout=0,再把local:/var/clamav/clmilter.socket改为local:/var/run/clamav/clmilter.sock 这样就只可以启动clamav-milter服务了。 这样以后sendmail发出或收到的邮件都会首先经过clamav的过滤,如果发现病毒就直接丢弃,而且在邮件的header上增加二行关于clamav的信息。 ===================================================== 网上教程: 建议安装(升级)sendmail 时请先备份 sendmail.cf sendmail.mc 文件。 下载 ClamAV http://osdn.dl.sourceforge.net/sourceforge/clamav/ 我现在下载的最新版本是0.70。 先添加 clamav 用户,这个用户用来掌管整个软件的运行。 代码: groupadd clamav useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav? 代码: cp clamav-0.70.tar.gz /usr/src tar zxvf clamav-0.70.tar.gz cd clamav-0.70 ./configure --sysconfdir=/etc --enable-milter --prefix=/usr --datadir=/var/clamav make make install? (想更详细的控制安装选项请运行 ./configure --help) 下面配置 /etc/clamav.conf 请先将文件中的 Example 这行删除掉或在其前面加上 # 注释掉 去掉注释或更改下面行的值 LogFile /var/log/clamd.log LogFileMaxSize 2M PidFile /var/clamav/clamd.pid DatabaseDirectory /usr/local/share/clamav LocalSocket /var/clamav/clamd.sock StreamSaveToDisk ScanMail ScanArchive ArchiveMaxFiles 1000 MaxThreads 200 MaxDirectoryRecursion 15 User clamav 这样 clamav 就基本可以工作了。 建立目录 代码: mkdir /var/clamav chown clamav:clamav /var/clamav ----------------------- 接下来要下载病毒资料库 首先编辑 /etc/freshclam.conf 文件 去掉次行注释并修改为 UpdateLogFile /var/log/clam-update.log 在 DatabaseMirror database.clamav.net 行下面在加入几个地址,更多镜像地址请参考文档 clamav.pdf DatabaseMirror clamav.inet6.fr DatabaseMirror clamav.netopia.pt DatabaseMirror clamav.sonic.net 这样该文件就可以了。若升级数据库时无法连接就注释掉DatabaseMirror database.clamav.net 行,留下剩下的行. 下面生成/var/log/clam-update.log 文件 touch /var/log/clam-update.log chmod 600 /var/log/clam-update.log chown clamav /var/log/clam-update.log 运行数据库的更新 freshclam -d -c 2 (-d 选项为该命令以 daemon 方式运行 -c 2 这个选项的意思是每天检查2次数据库更新) freshclam --quiet --stdout 手动更新数据库 更新结束后请到 /usr/src/clamav-0.70/test 目录下检查数据库里所认知的病毒数量 执行 clamscan test1 给果可能于下面显示的不同 代码: test1: ClamAV-Test-Signature FOUND ----------- SCAN SUMMARY ----------- Known viruses: 20670 Scanned directories: 0 Scanned files: 1 Infected files: 1 Data scanned: 0.00 Mb I/O buffer size: 131072 bytes Time: 2.301 sec (0 m 0 s) ------------------------------------------- 设置 sendmail.mc 文件 需要增加如下代码: 代码: dnl ## milter clmilter INPUT_MAIL_FILTER(`clmilter', `S=local:/home/clamav/clmilter.sock, F=, T=S:4m;R:4m')dnl define(`confINPUT_MAIL_FILTERS', `clmilter') 然后生成 sendmail.cf 文件 m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf ---------------------------------------------- 现在启动邮件过滤系统: 代码: clamd clamav-milter -Nnqlo --max-children=30 /home/clamav/clmilter.sock freshclam -d -c 2 service sendmail restart? ---------------------------------------------- 测试过滤带病毒的邮件 发送病毒邮件后你会在sendmail的Log(一般在/var/log/maillog)中看见如下提示: Apr 1 13:36:01 linux sendmail[1429]: i315ZxnL001429: from=<[email protected]>, size=41535, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=Daemon0, relay=linux.abc.gov.cn [127.0.0.1] Apr 1 13:36:01 linux sendmail[1429]: i315ZxnL001429: Milter: data, discard 病毒邮件被系统 discard 了, 同时在 /var/log/clamd.conf 中也记录了病毒类型 这种情况下发病毒邮件的人在没有被提醒的情况下被系统将其发出的邮件给丢弃了, 收件人不会得到病毒邮件也不会被提醒有人试图给你发送病毒邮件! 若启动 clamav-milter 时用的参数只有 -lo 的话,则系统会警告发送病毒邮件的人,告诉他发送失败,sendmail 同时向邮件的接收者发送一封信,告诉他那个人试图发送病毒邮件给自己。 具体参数详解: -n 在扫描邮件时不加入 clamav的版本号 -N 当用户发送带病毒的邮件时不警告他,而是立刻丢弃。但收件人会得到提示。 -q 安静方式, 不发出任何信息 (包括在日志中也不做过多提示,遇到病毒时也只有 Milter : discard 一句话) -o 对从系统向外发的邮件做过滤 -l 对发到系统的邮件做过滤 --------------------------------------------------------- 建议用户做成启动脚本 /etc/rc3.d/S91clamav 内容如下: 代码: /usr/bin/freshclam -d -c 2 /usr/sbin/clamd /usr/sbin/clamav-milter -NnHqlo --quarantine-dir=/var/clamav/quarantine --max-children=30 /var/clamav/clmilter.sock chmod 777 /etc/rc3.d/S91clamav |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|