Trophie + HAVP + Squid 实现高效防毒网关(只针对HTTP)
作者:萧少聪[Scott Siu]
E-Mail:scottsiuzs@gmail.com
一、方案
系统:Red Hat Enterprise Linux 4 AS 4.0
实现:Trophie + HAVP-0.83 + Squid
二、笔记
1、Trophie
Trophie下载 http://www.vanja.com/tools/trophie/
掃描引擎 http://www.trendmicro.com/download/zh-tw/product.asp?productid=20
病毒碼 http://www.trendmicro.com/download/zh-tw/product.asp?productid=20
# mkdir /etc/iscan
# tar zxvf vsapi-XXXXXX.tar.Z
# tar xvf ptnXXX.tar
# mv libvsapi.so lpt/$vpn.XXX whatsnew.txt /etx/iscan
# tar zxvf trophie-1.12.tar.gz
# cd trophie-1.12
# ./configure --with-vsapilib=/etc/iscan
# make
# mv trophie /usr/local/sbin
2、HAVP(以0.83为列)
HAVP下载 http://www.server-side.de/download.htm
# tar zxvf havp-0.83.tar.gz
# cd havp-0.83
# ./configure
过程中应该会出现[*** Trend Micro library found, Trophie support enabled!]
# make
# make install
# groupadd havp && useradd -g havp -M havp
# chown havp:havp /var/log/havp /var/run/havp
# vi /usr/local/etc/havp/havp.config
#REMOVETHISLINE deleteme (加上#)
SERVERNUMBER 40 (以下两项理论上越大越好)
MAXSERVERS 500
TEMPDIR /var/tmp/havp (放临时文件的位置)
DBRELOAD 60 (删除#)
SCANIMAGES false (删除# 由 false 改成 true,不检查图片CPU轻松点,看需要自定)
ENABLETROPHIE true (由 false 改成 true)
以下用ramdisk作为上面的TEMPDIR,这样会快一些,前提是你有够大的内存,HAVP可扫描的文件大小将受限于这是所挂载的磁盘空间!
# vi /boot/grub/grub.conf
kernel /vmlinuz-2.6.9-5.EL ro root=/dev/Lvm/root ramdisk=65535(此处定义ramdisk大小为64M)
# reboot (重启让ramdisk生效)
# mkfs.ext2 /dev/ram0
# mount -o mand /dev/ram0 /var/tmp/havp
# chown havp:havp /var/run/havp
3、Squid
# rpm -ivh /your-cd/Redhat/RPMS/squid-2.5.STABLE6-3.i386.rpm (在安装盘中)
# vi /etc/squid/squid.conf
找到acl
acl mynet src 192.168.1.0/24 (你内网的网段)
http_access allow mynet (放在http_access deny all之上)
在文件最后加上
#================ HAVP Seting ===================
cache_peer 127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange default
cache_peer_access 127.0.0.1 allow all
acl Scan_HTTP proto HTTP
never_direct allow Scan_HTTP
4、防火墙iptables
# iptables -F
# iptables -P INPUT DROP
# iptables -A INPUT -i lo -j ACCEPT
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 3128 -j ACCEPT
# iptables -t nat -A PREROUTING -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-port 3128
# /etc/init.d/iptables save
5、启动脚本
# chkconfig squid on
# vi /etc/rc.d/rc.local
#========== HAVP ===========
mkfs.ext2 /dev/ram0 (由于ramdisk每次关闭系统都会丢失,所以启动时要重新加载)
mount -o mand /dev/ram0 /var/tmp/havp
chown havp:havp /var/tmp/havp
/etc/init.d/havp start
# reboot (重启后就OK了)
6、客户端测试
浏览器的设置当然是192.168.1.100:3128了(PS: 1.100是我的机子),QQ中设为“使用浏览器设置”!
在此测试防毒效果 http://www.eicar.org/anti_virus_test_file.htm
在此测试RAR3效果 http://img3.oncity.cc/data/user/img1/112/0/flash.boy/eicar.rar