Linux上防毒軟體的使用
ClamAV介紹
ClamAV是一個可以在命令列下查毒軟體,開源(GPLv2)的反病毒工具包。它提供了許多實用程式,包括靈活且可擴充套件的多執行緒守護程式,命令列掃描程式和用於自動資料庫更新的高階工具。該軟體包的核心是一個以共享庫形式提供的反病毒引擎。
功能
- ClamAV旨在快速掃描檔案。
- 實時保護(僅限Linux)。我們的掃描守護程式支援現代版Linux上的按訪問掃描,包括在掃描檔案之前阻止檔案訪問的功能。
- ClamAV可檢測超過100萬種病毒,蠕蟲和特洛伊木馬,包括Microsoft Office巨集病毒,移動惡意軟體和其他威脅。
- 內建的位元組碼直譯器允許ClamAV簽名編寫者建立和分發非常複雜的檢測例程,並遠端增強掃描器的功能。
- 簽名簽名資料庫確保ClamAV僅執行可信簽名定義。
- ClamAV掃描檔案和壓縮檔案,但也可以防止檔案炸彈。
ClamAV 安裝及使用
ClamAV 的安裝過程比較簡單,就常用的編譯安裝。 下面的安裝環境是 CentOS7.4 的環境,其它linux環境差不多,只需要滿足相關依賴即可。
1,下載ClamAV
下載安裝包,下載的是原始碼,linux、mac都適用
2,安裝ClamAV
安裝依賴(centos7.4環境)
yum -y install gcc-c++ pcre-devel zlib-devel openssl-devel llvm-devel libxml2 libxml2-devel libcurl-devel
解壓及編譯安裝
tar zxf clamav-0.100.0.tar.gzcd clamav-0.100.0
./configure --prefix=/opt/clamav ### --prefix 引數指定軟體安裝目錄
make && make install ### 安裝
3,配置ClamAV
建立掃描使用者及相關目錄
groupadd clamav ### 建立clamav組
useradd clamav -s /sbin/nologin ### 建立clamav使用者
mkdir /opt/clamav/logs
mkdir /opt/clamav/share/update
touch /opt/clamav/logs/{freshclam.log,clamd.log}
chown -R clamav:clamav /opt/clamav/logs
修改配置檔案
cp -a /opt/clamav/etc/clamd.conf.sample /opt/clamav/etc/clamd.conf### 修改: clamd.conf
Example ### 註釋掉這一行
LogFile /opt/clamav/logs/clamd.log ### 指定log檔案
PidFile /opt/clamav/updata/clamd.pid ### 指定pid檔案
DatabaseDirectory /opt/clamav/updata/
cp /opt/clamav/etc/freshclam.conf.sample /opt/clamav/etc/freshclam.conf### 修改: freshclam.conf
Example ### 註釋掉這一行
4,下載或更新病毒庫
下載會有點慢,多臺機器的話,可以一臺下載之後再拷貝,下載的檔案在 /opt/clamav/share/clamav 目錄
### 執行獲取最新病毒庫命令/opt/clamav/bin/freshclam
也可以在官網上下載然後放到上面提到的目錄裡面。
5,使用ClamAV
- 掃描病毒(可新增定時任務進行掃描)
/opt/clamav/bin/clamscan -r --bell -i ${路徑}
例如:
[root@centos7 clamav]# ./bin/clamscan -r --bell -i /home/
----------- SCAN SUMMARY -----------
Known viruses: 6526435 ## 病毒庫
Engine version: 0.100.0 ## 引擎版本
Scanned directories: 2 ## 掃描的目錄
Scanned files: 3 ## 掃描的檔案
Infected files: 0 ## 感染的檔案數
Data scanned: 0.00 MB ## 掃描檔案的大小
Data read: 0.00 MB (ratio 0.00:1)
Time: 20.303 sec (0 m 20 s) ## 掃描花費的時間
- 掃描病毒並清除(可新增定時任務進行掃描)
clamscan -r –remove ${路徑}
- 掃描並移動病毒和感染檔案到指定目錄(掃描並隔離)(可新增定時任務進行掃描)
clamscan -r --move=/home/bill/my_virus_collection ${路徑}
掃描出現病毒檔案,刪除後,需要重啟伺服器,目的是防止檔案正在被使用或者在記憶體中。若情況特殊暫時不能重啟伺服器,可使用 ps -ef 命令檢視檔案是否被程序使用,亦可以在刪除被感染的病毒的檔案之前,使用 lsof 命令檢視病毒檔案 被什麼程式呼叫,kill相應的程序,適時再重啟。
為方便安裝,附安裝指令碼
#!/bin/bash# USAGE: install clamav### Install
yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel llvm-devel libxml2 libxml2-devel libcurl-devel
tar zxf clamav-0.100.0.tar.gzcd clamav-0.100.0
./configure --prefix=/opt/clamav
make && make install
### Setting
groupadd clamav
useradd clamav -g clamav -s /sbin/nologin
mkdir /opt/clamav/logs
mkdir /opt/clamav/share/clamav
touch /opt/clamav/logs/freshclam.log
touch /opt/clamav/logs/clamd.log
chown -R clamav.clamav /opt/clamav/logs
chown clamav.clamav /opt/clamav/share/clamav
cp /opt/clamav/etc/clamd.conf.sample /opt/clamav/etc/clamd.conf
cp /opt/clamav/etc/freshclam.conf.sample /opt/clamav/etc/freshclam.conf
sed -i 's/^Example/\#Example/g' /opt/clamav/etc/freshclam.conf
sed -i 's/^Example/\#Example/g' /opt/clamav/etc/clamd.conf
sed -i 's/^#LogFile\ \/tmp\/clamd.log/LogFile\ \/opt\/clamav\/logs\/clamd.log/g' /opt/clamav/etc/clamd.conf
sed -i 's/^#PidFile\ \/var\/run\/clamd.pid/PidFile\ \/opt\/clamav\/updata\/clamd.pid/g' /opt/clamav/etc/clamd.conf
sed -i 's/^#DatabaseDirectory\ \/var\/lib\/clamav/DatabaseDirectory\ \/opt\/clamav\/updata/g' /opt/clamav/etc/clamd.conf
cd ..## 病毒庫的壓縮包clamav.virus_data.tar.gz,解壓這個壓縮包後,得到一個calmav目錄,目錄裡面是官網上下載的病毒庫
tar zxf clamav.virus_data.tar.gz
cp clamav/* /opt/clamav/share/clamav/
### 新增定時掃描任務
mkdir /tmp/virus_collectionecho "#scan virus" >>/etc/crontabecho '30 4 5 * * /opt/clamav/bin/clamscan -r --move=/tmp/virus_collection / >/dev/null 2>&1'