Trophie + HAVP + Squid 实现高效防毒网关
(只针对HTTP) 

一、方案
  系统:Red Hat 9
  实现:Trophie + HAVP-0.85 + Squid
二、笔记
  1、Trophie
     Trophie下载 [url]http://www.vanja.com/tools/trophie/[/url]
     掃描引擎 [url]http://www.trendmicro.com/download/zh-tw/product.asp?productid=20[/url]
     病毒碼 [url]http://www.trendmicro.com/download/zh-tw/product.asp?productid=20[/url]
     # 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
     #cd /usr/lib
     #ln -s /etc/iscan/libvsapi.so(没有这个软连接,后面的HAVP启动会报错)

  2、HAVP(以0.85为列)
     HAVP下载 [url]http://www.server-side.de/download.htm[/url]
     # tar zxvf havp-0.85.tar.gz
     # cd havp-0.85
     # ./configure
        过程中应该会出现[*** Trend Micro library found, Trophie support enabled!](如果没有clamav,可以用--disable-clamav)
     # 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 -A INPUT -s 192.168.0.0/24 -p tcp --dport 3128 -j ACCEPT
     # iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT --to-port 3128
    
  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中设为“使用浏览器设置”!
     在此测试防毒效果 [url]http://www.eicar.org/anti_virus_test_file.htm[/url]
     在此测试RAR3效果 [url]http://img3.oncity.cc/data/user/img1/112/0/flash.boy/eicar.rar[/url]
为了方便把squid配置成透明代理
修改/etc/squid/squid.conf
httpd_accel_host ProxyServer  #主机名
httpd_accel_port 80  #透明代理端口
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
病毒库自动升级
在cron中加入每天凌晨自动更新Trophie病毒码