由 mshtyu 在 09-13-2004 21:13 发表:
iptables + p3scan + ClamAV 实现病毒邮件网关
【原文请参考 http://mshtyu.dns0755.net/P-Blog/bl...=2&cateID=1 】
资源:Linux下的杀毒软件:
Kaspersky Anti-Virus for Linux (AVPD) http://www.kaspersky.com/
Trophie Anti-Virus Daemon http://www.vanja.com/tools/trophie/
FRISK F-Prot Antivirus http://www.f-prot.com/
Clam Anti-Virus http://www.clamav.net
个人觉得,Linux下面的杀毒软件没有什么用处,除非是给服务器用,例如for mailserver等等。当然了,现在最头疼的还是通过邮件传播的病毒,如果这种邮件到了最终用户那里,就比较讨厌了,因为不是每个用户都会装个人杀毒软件,更少的人知道要去定期更新病毒库,以为有了杀毒软件就万事大吉了(看来用上电脑跟IT普及一点关系也没有~)。经常看见有些公司开始推出网关杀毒的产品,比较著名的有TrendMacro的VirusWall,要卖好多银子,买不起。但是最近有看到国内的厂商开始做,就估计有些基于Linux的开源软件可以利用了,于是Google。
主要是想通过网关的病毒邮件可以被截获。肯定有POP3的代理,或者还有SMTP代理,然后配合杀毒软件——思路肯定是这样的,没跑。
ClamAV 的站点上有3rd party software,有个Pop3 Scan Daemon引起了我的注意,一看,呵,that's what I want... 看了一下文档,基本明白,先利用iptables(注意,不能用ipchains,否则会出错,在ip_conntrack模块)重定向内网的Pop3请求到p3scan的端口,然后p3scan把收到的email存到临时文件夹,调用杀毒软件查一下,过滤结果的输出,没病毒放行,有病毒,就采取行动并发个警告邮件给你。
【需要】
1。iptables 这个肯定要的啦,什么?你的没有?绣逗吧,找你的光盘装上呗,什么?没有光盘?那去 rpmfind.net 或者 www.netfilter.org 吧
2。libpcre 这个是个用perl写的正则表达式解析器,应该用来分析病毒特征码的,反正我的linux没有,去 www.pcre.org 下,自己make
3。杀毒软件 上面那几个都支持
【安装】
略。不用说了吧,./configure make make install 罗嗦
【配置】
这里牵涉到几个方面的配置:
1。iptables 利用DNAT进行端口重定向,把110转向 p3scan.conf 定义的端口,缺省是8110
iptables -t nat -A PREROUTING -p tcp --dport 110 -j REDIRECT --to-port 8110
2。杀毒软件的配置,这里我用的是ClamAV,在 clamav.conf 中比较重要的配置有:
User mail -- 这里要使用跟p3scan一样的用户,我用的是mail.mail
Scanmail -- 这个选项要打开,缺省是注释掉的,允许扫描email文件
ScanRAR -- 这个也打开吧,有些病毒附件是rar的
p3scan是连接clamd来杀毒的,因此在启动p3scan之前,请先启动clamd
3。p3scan的配置 p3scan.conf:
port 8110 -- 用缺省的好了,这个改了,记得iptables的重定向也要改
user -- 这个要跟 clamav一样
scanner -- 里面已经定义好了常用的几种杀毒软件,注意修改路径
virusregexp -- 这个选择与scanner对应的病毒正则式
template -- 这个是指定发给用户的病毒邮件通知
对应的一些目录: