背景:实时地保护Linux Samba共享系统 (注:不是清除被病毒感染的文件,而是直接删除被感染的文件)。
系统环境: Slackware 11, 内核:1 2.6.16 #6 SMP)
准备相关工具及软件:
zlib-1.2.3 (因为 clamav-0.93.3 及相关软件都需要较新版zlib (强烈建议))
samba-3.0.21c (我测试过3.0.30和最新的3.2.X, Samba方面都没什么问题,但编译samba3-vscan-0.4.0-snapshot1均是失败告终,看来还是samba3-vscan这玩意太旧了,无法与新版的Samba结合使用)。
clamav-0.93.3 (Clamav 自生是只能查病毒,却不能实时保护系统,无法清除文件上的病毒)
samba3-vscan-0.4.0-snapshot1
1.安装最新版 zlib-1.2.3.tar.gz
# tar -zxvf zlib-1.2.3.tar.gz# cd zlib-1.2.3
# make clean
# ./configure -s
# make
# make install
2.安装 clamav-0.93.3
# groupadd clamav
# useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav //要先建立clamav的使用者及群组,才能安装clamav
tar -zxvf clamav-0.93.3.tar.gz
#./configure --sysconfdir=/etc
#make
#make install
编辑: /etc/clamd.conf
1), 首先是在Example 前面加上#号注释掉此行
2), 把找到: LocalSocket 设为
LocalSocket /tmp/clamd.socket (注意不是:LocalSocket = /tmp/clamd.socke )
其它设定在此不一一解释了
4, 安装/升级Samba
1), 查询原本server所安装的 samba 版本 (samba3-vscan-0.4.0-snapshot1必须在Samba 3以上版本运行,若你的Samba是2.X则需要升级到3.X, 我测试过最新的 Samba 3.2.x,所有Samba应用都OK,但到最后安装samba3-vscan-0.4.0-snapshot1时无法成功,这应该是samba3-vscan-0.4.0-snapshot1的版本太老了,目前最新的也只有这个,还是05年出的呢)
升级Samba的方法有多种啦,我是用源程序安装的SAMBA,建议原来smb.conf复制出来备份,删除安装目录就OK了 (/usr/local/samba)
2),安装samba-3.0.21c.tar.gz
# cd .. /usr/src/
#tar zxvf samba-3.0.21c.tar.gz
#tar jxvf samba3-vscan-0.4.0-snapshot1.tar
# mv samba3-vscan-0.4.0-snapshot /usr/src/samba-3.0.21rc2/examples/VFS
# cd samba-3.0.21c/source/
# ./configure && make headers
# make && make install (由于在./configure没有指定安装路径,因为samba被默认安装到/usr/local/samba
3).安装编译samba-vscan
# cd .. /usr/src/samba-3.0.21rc2/examples/VFS/samba3-vscan-0.4.0-snapshot
# ./configure && make
4).设定
请检查 /usr/local/samba/lib/vfs中的相关文件 (Vscan 的库文件,确认有vscan-clamav.so等)
# 复制vscan的配置文件, VSCAN可以结合多种杀毒软件起用,如symantec, Kaspersky, trend等, 当然我们这里用的是clamav,因此,只需要把clamav中的vscan-clamav.conf复制到/etc/就去就行了。
# cd /share1/src/samba-3.0.21c/examples/VFS/samba3-vscan-0.4.0-snapshot1
# cp /clamav lamav/vscan-clamav.conf /etc/
修改一些配置,使其与 clamd.conf的一些设置匹配
# vi /etc/vscan-clamav.conf
4.1), 首先是在Example 前面加上#号注释掉此行
4.2),找到clamd socket name ,设为
clamd socket name = /tmp/clamd.socket (相同clamd.conf中的 LocalSocket /tmp/clamd.socket)
4.3) 找到infected file action = delete
如何为infected file action = nothing 则表示对感染的文件不处理,是infected file action = delete 则删除感染的文件。
5.修改 smb.conf (如果你原来也是Samba 3.X 基本上可以把刚才备份的那个smb.conf复制到/usr/local/samba/lib/中,适当加以修改即可)
# vi //usr/local/samba/lib/smb.conf
在 [global] 区段中,加入两行
vfs object = vscan-clamav
vscan-clamav: config-file = /etc/vscan-clamav.conf
### 完成了,重新启动 samba
/etc/rc.d/rc.samba restart
###启动clamav
/usr/local/sbin/clamd --config-file=/etc/clamd.conf
大功告成了。测试,把一个小小的病毒文件,向共享盘存放,
会有一些对话框弹出来,看到了吗? 存不进去哦!
<http://blog.chinaunix.net/u/9951/showart_1079422.html>.