Samba3+Samba3-vscan-0.4.0 + Clam AntiVirus-0.93.3[转]

背景:实时地保护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>.