在windows系統中,即時掃描病毒,似乎是一件理所當然的事,當使用者在執行檔案存取動作時就會對該文件進行病毒掃描,這也許是封閉系統的優點.單一的作業系統核心可以很方便地運作任何功能,但是在開放的Linux系統世界裡就沒這麼幸運了。
那麼在Linux系統下是否有一個解決方案可以解決即時掃描病毒的要求了?答案是肯定的,也許有人會說,使用Linux系統下最富盛名的ClamAV不就好了嗎,的確,這種方式可以解決大部分問題,但這感覺還差那麼一點點,不夠即時,如果能在文件存取的時候就進行掃描,就更完美了。
所以本文將利用ClamAV配合DazukoFS核心模組,來構建一個能實現即時掃描病毒的Linux安全防禦系統,其所需要的套件如下所示。
作業系統:RHEL5.4 (Kernel 2.6.18)
即時監控文件存取核心模組:DazukoFS
掃毒軟體:ClamAV
掃毒軟體: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核心原碼
- wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.gz
2、解壓核心
- tar -zxvf linux-2.6.36.tar.gz
3、將解壓出核心放到/usr/src目錄下
- cp linux-2.6.36 /usr/src
4、複製原核心配置檔案
- cp /boot/config-2.6.18-*** /usr/src/.config
6、對核心引數做下微調
- make menuconfig #這裡僅修改General setup -> [*] enable deprecated sysfs features to support old userspace tools,其它保持不變即可,如果有興趣的朋友可以深入研究。
7、編譯安裝
- make bzImage
- make modules
- make modules_install
- make install
8、修改引導順序
- vim /etc/grub.conf #將default=0修改為default=1
9、重啟系統
- reboot
重啟作業系統後,uname -r檢視下核心版本是否為2.6.36
三、安裝DazukoFS
1、下載DazukoFS與MD5
- wget http://dazuko.dnsalias.org/files/dazukofs-3.1.4.tar.gz
- wget http://dazuko.dnsalias.org/files/dazukofs-3.1.4.tar.gz.md5
2、MD5檔案完整性驗證
- md5sum dazukofs-3.1.4.tar.gz > dazukofs-3.1.4.tar.gz.check.md5
- diff dazukofs-3.1.4.tar.gz.check.md5 dazukofs-3.1.4.tar.gz..md5
3、解壓安裝DazukoFS
- tar -zxvf dazukofs-3.1.4.tar.gz
- cd dazukofs-3.1.4
- make && make dazukofs_install
4、載入DazukoFS
- modprobe dazukofs
5、檢測是否載入成功
- dmesg |grep dazukofs
6、建立測試目錄
- mkdir /tmp/dazukofs_test
7、掛載DazukoFS型檔案系統
- mount -t dazukofs /tmp/dazukofs_test /tmp/dazukofs_test
8、檢驗DazukoFS檔案系統掛載
- mount | grep dazukofs
9、解除安裝DazukoFS檔案系統
- umount /tmp/dazukofs_test
四、系統啟動時掛載
如果想機器一開機就實現掛載,那麼可以通過配置/etc/fstab檔案來實現,在該檔案中新增類似如下條目。
- /usr /usr dazukofs 0 0
- /opt /opt dazukofs 0 0
五、安裝ClamAV
1、下載最新軟體與簽名
- wget http://downloads.sourceforge.net/clamav/clamav-0.97.7.tar.gz
- wget http://downloads.sourceforge.net/clamav/clamav-0.97.7.tar.gz.sig
2、軟體完整性驗證
這裡簡單介紹下怎麼通過GPG做簽名驗證
- gpg –verify clamav-0.97.7.tar.gz.sig
缺乏公鑰,驗證不成功,但是可以獲得得Key為15497F03
在公網公鑰伺服器上下載公鑰
- gpg –keyserver subkeys.pgp.net –recv-key 15497F03
再進行一次驗證
- gpg –verify clamav-0.97.7.tar.gz.sig
提示“Good signature”,則說明簽名沒問題
3、建立clamav組與使用者
- groupadd clamav
- usradd -g clamav -s /bin/false -d /dev/null clamav
4、解壓並安裝
- make
- make install
5、配置ClamAV
- vim /usr/local/clamav/etc/clamd.conf
|
- vim /usr/local/clamav/etc/freshclam.conf
|
6、下載病毒庫
第一次執行ClamAV時要下載病毒庫檔案
- /usr/local/clamav/bin/freshclam
注意:下載病毒庫檔案預設是放在/usr/local/clamav/share/clamav目錄下,如果沒有這個目錄需要新建並將目錄的屬主與屬組修改為clamav
7、啟動ClamAV伺服器
- /usr/local/clamav/sbin/clamd
可以檢查下3310這個埠是否啟來
- netstat -na|grep 3310
檢視clamd日誌
- tail -f /tmp/clamd.log
六、測試
1、測試clamav掃描功能
- /usr/local/clamav/bin/clamscan -r /usr #迴歸掃描目錄/usr下所有檔案
- /usr/local/clamav/bin/clamscan -r -i /usr #僅顯示被被感染的檔案
- /usr/local/clamav/bin/clamscan -r –remove /usr #迴歸掃描,發現病毒立即刪除
- /usr/local/clamav/bin/clamscan -r –bell /usr #迴歸掃描,發現病毒響鈴
2、測試即時訪問掃描功能
下載測試病毒放在/home目錄下
- wget https://secure.eicar.org/eicar.com.txt
DazukoFS檔案系統掛載/home目錄
- 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;