DazukoFS触发ClamAV扫毒引擎构建安全Linux防御系统

windows 系统中,即时扫描病毒,似乎是一件理所当然的事,当使用者在执行文件存取动作时就会对该文档进行病毒扫描,这也许是封闭系统的优点.单一的作业系统核心可以很方便地运作任何功能,但是在开放的 Linux 系统世界里就没这么幸运了。
 
那么在Linux系统下是否有一个解决方案可以解决即时扫描病毒的要求了?答案是肯定的,也许有人会说,使用Linux系统下最富盛名的ClamAV不就好了吗,的确,这种方式可以解决大部分问题,但这感觉还差那么一点点,不够即时,如果能在文档存取的时候就进行扫描,就更完美了。
 
所以本文将利用ClamAV配合DazukoFS核心模块,来构建一个能实现即时扫描病毒的Linux安全防御系统,其所需要的套件如下所示。
操作系统:RHEL5.4 (Kernel 2.6.18)
即时监控文档存取核心模块:DazukoFS
    扫毒软件:ClamAV
支持的内核:Kernel 2.6.36
 
一、 DazukoFS简介
dazukofs是一个可堆叠文件系统,允许用户空间的应用程序在线执行访问控制。它最初的开发目的是用于支持网络病毒扫描器,但也适用于任何想要执行在线文件访问控制的应用程序。
注意:DazukoFS完全独立于Dazuko,DazukoFS使用一个不同的用户接口和驱动器,由于它们不共享代码或资源,所以可以同时使用Dazuko和DazukoFS。然而,DazukoFS目的是要作为一个在线文件访问控制的解决方案取代Dazuko。
 
二、 升级Linux内核
本文使用最新版本的DazukoFS 3.1.4,所支持的Linux内核为2.6.36,而本实例采用的Linux操作系统内核版本为2.6.18,我们要做一次内核升级。具体操作如下。
1 下载2.6.36内核原码
   
   
   
   
  1. wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.gz   
2、解压内核
   
   
   
   
  1. tar -zxvf linux-2.6.36.tar.gz 
3、将解压出内核放到/usr/src目录下
   
   
   
   
  1. cp linux-2.6.36 /usr/src 
4、复制原内核配置文件
   
   
   
   
  1. cp /boot/config-2.6.18-*** /usr/src/.config       
6、对内核参数做下微调
   
   
   
   
  1. make menuconfig   #这里仅修改General setup -> [*] enable deprecated sysfs features to support old userspace tools,其它保持不变即可,如果有兴趣的朋友可以深入研究。
7、编译安装
   
   
   
   
  1. make bzImage 
  2. make modules 
  3. make modules_install 
  4. make install 
8、修改引导顺序
   
   
   
   
  1. vim /etc/grub.conf   #将default=0修改为default=1 
9、重启系统
   
   
   
   
  1. reboot 
重启操作系统后,uname -r查看下内核版本是否为2.6.36
 
三、 安装DazukoFS
1、下载DazukoFS与MD5
   
   
   
   
  1. wget http://dazuko.dnsalias.org/files/dazukofs-3.1.4.tar.gz 
  2. wget http://dazuko.dnsalias.org/files/dazukofs-3.1.4.tar.gz.md5 
2 MD5文件完整性验证
   
   
   
   
  1. md5sum dazukofs-3.1.4.tar.gz > dazukofs-3.1.4.tar.gz.check.md5 
  2. diff dazukofs-3.1.4.tar.gz.check.md5 dazukofs-3.1.4.tar.gz..md5 
3、解压安装DazukoFS
   
   
   
   
  1. tar -zxvf dazukofs-3.1.4.tar.gz 
  2. cd dazukofs-3.1.4 
  3. make && make dazukofs_install 
4、载入DazukoFS
   
   
   
   
  1. modprobe dazukofs 
5 检测是否载入成功
   
   
   
   
  1. dmesg  |grep  dazukofs 
6 建立测试目录
   
   
   
   
  1. mkdir /tmp/dazukofs_test 
7 挂载DazukoFS型文件系统
   
   
   
   
  1. mount -t dazukofs /tmp/dazukofs_test /tmp/dazukofs_test 
8 检验DazukoFS文件系统挂载
   
   
   
   
  1. mount | grep dazukofs 
9 卸载DazukoFS文件系统
   
   
   
   
  1. umount /tmp/dazukofs_test 
 
四、 系统启动时挂载
如果想机器一开机就实现挂载,那么可以通过配置/etc/fstab文件来实现,在该文件中添加类似如下条目。
   
   
   
   
  1. /usr   /usr   dazukofs   0    0 
  2. /opt   /opt   dazukofs   0    0 
 
五、 安装ClamAV
1、下载最新软件与签名
   
   
   
   
  1. wget http://downloads.sourceforge.net/clamav/clamav-0.97.7.tar.gz 
  2. wget http://downloads.sourceforge.net/clamav/clamav-0.97.7.tar.gz.sig 
2 软件完整性验证
这里简单介绍下怎么通过GPG做签名验证
   
   
   
   
  1. gpg --verify clamav-0.97.7.tar.gz.sig 
缺乏公钥,验证不成功,但是可以获得得Key为15497F03
在公网公钥服务器上下载公钥
   
   
   
   
  1. gpg --keyserver subkeys.pgp.net --recv-key 15497F03 
再进行一次验证
   
   
   
   
  1. gpg --verify clamav-0.97.7.tar.gz.sig 
提示“Good signature”,则说明签名没问题
3 创建 clamav 组与用户
   
   
   
   
  1. groupadd clamav 
  2. usradd -g clamav -s /bin/false -d /dev/null clamav 
4 解压并安装
   
   
   
   
  1. make 
  2. make install 
5 配置 ClamAV
   
   
   
   
  1. vim /usr/local/clamav/etc/clamd.conf 
Example
注释掉,否则不能正常工作
LogFile /tmp/clamd.log
去掉注释,就用默认位置吧
TCPSocket 3310
去掉注释,3310做为ClamAV端口
TCPAddr 127.0.0.1
仅允许本机可连接
User root
DazukoFS须使用devfs来传递相关资讯,所以必须使用root用户来执行,否则无法正确获得相关资讯
ClamukoScanOnAccess
启动即时扫描功能,须先载入DazukoFS核心模块
ClamukoScannerCount
扫描时会启动的线程,预设为3
ClamukoMaxFileSize
可扫描的单个文件最大大小,预设为10M,即只扫描10M以下的文件,设置为0时不限制大小
 
   
   
   
   
  1. vim /usr/local/clamav/etc/freshclam.conf 
Example
注释掉,否则不能正常工作
6 下载病毒库
第一次运行ClamAV时要下载病毒库文件
   
   
   
   
  1. /usr/local/clamav/bin/freshclam 
注意:下载病毒库文件默认是放在 /usr/local/clamav/share/clamav 目录下,如果没有这个目录需要新建并将目录的属主与属组修改为 clamav
7 启动 ClamAV 伺服器
   
   
   
   
  1. /usr/local/clamav/sbin/clamd 
可以检查下3310这个端口是否启来
   
   
   
   
  1. netstat -na|grep 3310 
查看clamd日志
   
   
   
   
  1. tail -f /tmp/clamd.log 
 
六、 测试
1、测试clamav扫描功能
   
   
   
   
  1. /usr/local/clamav/bin/clamscan -r /usr              #回归扫描目录/usr下所有文件 
  2. /usr/local/clamav/bin/clamscan -r -i /usr            #仅显示被被感染的文件 
  3. /usr/local/clamav/bin/clamscan -r --remove /usr      #回归扫描,发现病毒立即删除 
  4. /usr/local/clamav/bin/clamscan -r --bell /usr         #回归扫描,发现病毒响铃 
2、测试即时访问扫描功能
下载测试病毒 放在/home目录下
   
   
   
   
  1. wget https://secure.eicar.org/eicar.com.txt 
DazukoFS文件系统挂载/home目录
   
   
   
   
  1. mount -t dazukofs /home /home 
试着编辑eicar.com.txt会发提示“ Permission Denied ”拒绝编辑,查看日志
tail -f /tmp/clamd.log会发现“ Clamuko: /home/eicar.com.txt: Eicar-Test-Signature FOUND
说明即时检测到了病毒。
 
七、 已经发现的问题
1、 dazukofs不支持对内存映射文件的写操作,但是支持读操作;
2、 不要对根文件系统使用DazukoFS,也不要对伪文件系统(/proc,/dev,/sys)使用Dazukofs; 

你可能感兴趣的:(linux,ClamAV,病毒防御,DazukoFS,即时扫描)