ClamAV是一個C語言開發的開源病毒掃描工具用於檢測木馬/病毒/惡意軟件等。可以在線更新病毒庫,Linux系統的病毒較少,但是並不意味着病毒免疫,尤其是對於諸如郵件或者歸檔文件中夾雜的病毒往往更加難以防范,而ClamAV則能起到不少作用。
Install and Configure ClamAV on CentOS 7
yum install -y epel-release
yum install -y clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
修改配置文件
cp /etc/clamd.d/scan.conf /etc/clamd.d/scan.conf.backup
sed -i '/^Example/d' /etc/clamd.d/scan.conf
sed -i -e "s/^Example/#Example/" /etc/clamd.d/scan.conf
vim /etc/clamd.d/scan.conf
User clamscan
LocalSocket /var/run/clamd.scan/clamd.sock
cp /etc/freshclam.conf /etc/freshclam.conf.bak
sed -i '/^Example/d' /etc/freshclam.conf
更新病毒庫
freshclam
cd /var/lib/clamav
wget http://database.clamav.net/main.cvd
wget http://database.clamav.net/daily.cvd
wget http://database.clamav.net/bytecode.cvd
chown clamupdate:clamupdate *
設置定期更新病毒庫(可選)
crontab -e
00 01,13 * * * /usr/bin/freshclam --quiet
因為freshclam不是系統服務,可新建如下
vim /usr/lib/systemd/system/freshclam.service
[Unit]
Description = freshclam scanner
After = network.target
[Service]
Type = forking
ExecStart = /usr/bin/freshclam -d -c 2 #一天更新兩次
Restart = on-failure
PrivateTmp = true
[Install]
WantedBy=multi-user.target
systemctl enable freshclam.service
systemctl start freshclam.service
systemctl status freshclam.service
啟動查殺服務
systemctl enable clamd@scan.service
systemctl start clamd@scan.service
systemctl status clamd@scan.service
查看clamAV的配置信息:
clamconf
測試一下:下載個含病毒的文件並殺掉
wget http://www.eicar.org/download/eicar_com.zip
clamscan --infected --remove --recursive .
clamscan --infected --remove --recursive . ./eicar_com.zip: Eicar-Test-Signature FOUND ./eicar_com.zip: Removed.
removed說明可用
查殺兩個目錄
clamscan --infected --remove --recursive /home /root
掃描整個系統
clamscan --infected --recursive --exclude-dir="^/sys" /
3. 病毒掃描
clamav 有兩個命令:clamdscan、clamscan
clamdscan 命令一般用 yum 安裝才能使用,需要啟動clamd服務,執行速度快
clamscan 命令通用,不依賴服務,命令參數較多,執行速度稍慢
clamdscan:
用clamdscan掃描,需要開始服務才能使用。速度快,不用帶 -r ,默認會遞歸掃描子目錄
clamdscan /usr
clamscan:
用clamscan掃描,不需要開始服務就能使用。速度慢,要帶-r,才會遞歸掃描子目錄
clamscan -r /usr
這個命令不僅會顯示找到的病毒,正常的掃描文件也會顯示出來。
可以用下面這個命令,只顯示找到的病毒信息
clamscan --no-summary -ri /tmp
-r 遞歸掃描子目錄
-i 只顯示發現的病毒文件
--no-summary 不顯示統計信息
可以寫個腳本,用這句命令定期掃描,有返回值即觸發告警。