clamav病毒庫停止更新,clamav源碼分析

一、ClamAV簡介

Clam AntiVirus是一個C語言開發的,類UNIX系統上使用的開源的 (GPL) 反病毒軟體包。主要應用於郵件伺服器,採用多線程後台操作,可以自動升級病毒庫。ClamAV是一個在命令行下查毒軟體,因為它不將殺毒作為主要功能,默認只能查出您計算機內的病毒,但是無法清除。ClamAV可以工作很多的平台上,但是有少數無法支持,這就要取決您所使用的平台的流行程度了。

Linux系統的病毒較少,但是並不意味著病毒免疫,尤其是對於諸如郵件或者歸檔文件中夾雜的病毒往往更加難以防範,而ClamAV則能起到不少作用。

該軟體提供了包含靈活且可伸縮的監控程序、命令行掃描程序以及用於自動更新資料庫的高級工具在內的大量實用程序。該軟體的核心在於可用於各類場合的反病毒引擎共享庫。主要使用ClamAV開源殺毒引擎檢測木馬、病毒、惡意軟體和其他惡意的威脅。

◆ 高性能

ClamAV包括一個多線程掃描程序守護程序,用於按需文件掃描和自動簽名更新的命令行實用程序。

◆ 格式支持

ClamAV支持多種文件格式,文件和存檔解包以及多種簽名語言。PDF、JS、XLS、DOCX、PPT等

特別說明:

經測試,對於ClamAV版本為 0.102.x(0.102.0、0.102.1、0.102.2、0.102.3、0.102.4),需要Curl version >= 7.45 確保支持clamonacc使用的所有選項。CentOS7系統YUM源的最新版本為7.29.0,可使用下列方法確保ClamAV安裝編譯通過:

①使用第三方YUM源升級curl。

②使用官方提供的軟體源包編譯安裝高版本的curl 。

③禁用clamonacc,在執行 ./configure 時再加上 –disable-clamonacc 參數。

CentOS7部署ClamAV

註:ClamAV編譯時報如上圖錯誤。

##curl庫安裝
Github地址:https://github.com/curl/curl
cd /data/tools
wget https://curl.haxx.se/download/curl-7.69.1.tar.gz
tar xf curl-7.69.1.tar.gz
cd curl-7.69.1
./configure
make && make install

二、環境準備

OS:CentOS 7.8 x64

測試伺服器IP:192.168.168.100

Software:clamav-0.103.1

註:系統為最小化安裝,部署前已完成系統初始化、內核及安全優化。

三、安裝Clamav

1.安裝依賴

rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

yum -y install gcc gcc-c++ bzip2 bzip2-devel pcre2 pcre2-devel ncurses ncurses-devel zlib zlib-devel openssl openssl-devel llvm-devel libxml2 libxml2-devel libcurl-devel libtool-ltdl-devel

註:①centos系統的庫是openssl、openssl-devel;ubuntu系統的庫是libssl、libssl-devel

②libtool-ltdl-devel 更新病毒庫時會報錯,如下圖。

CentOS7部署ClamAV

2.創建用戶及用戶組

groupadd clamav

useradd -g clamav -s /bin/false -c “Clam AntiVirus” clamav

註:若不創建用戶組及用戶,則ClamAV編譯時需加 –disable-clamav 參數選項將禁用對clamav用戶和組是否存在的檢查,但是clamscan仍然需要無特權的帳戶才能在超級用戶模式下工作。

3.下載解壓編譯安裝

cd /data/tools

wget http://www.clamav.net/downloads/production/clamav-0.102.2.tar.gz

tar xf clamav-0.102.2.tar.gz

cd clamav-0.102.2

./configure –prefix=/usr/local/clamav –with-pcre2 –disable-clamonacc

make && make install

四、配置Clamav

1.創建日誌目錄

mkdir -p /data/logs/clamav/

touch /data/logs/clamav/{freshclam.log,clamd.log}

chown -R clamav.clamav /data/logs/clamav

2.創建病毒庫目錄

mkdir -p /usr/local/clamav/updata

chown -R root.clamav /usr/local/clamav/

chown -R clamav.clamav /usr/local/clamav/updata/

3.修改配置文件

cd /usr/local/clamav/etc

cp clamd.conf.sample clamd.conf

cp freshclam.conf.sample freshclam.conf

## 修改: clamd.conf

vi clamd.conf

Example //注釋掉這一行(第8行)

添加下面三行:

LogFile /data/logs/clamav/clamd.log

PidFile /data/logs/clamav/clamd.pid

DatabaseDirectory /usr/local/clamav/updata/

CentOS7部署ClamAV

## 修改: freshclam.conf

vi freshclam.conf

Example //注釋掉這一行(第8行)

添加下面三行:

UpdateLogFile /data/logs/clamav/freshclam.log

PidFile /data/logs/clamav/freshclam.pid

DatabaseDirectory /usr/local/clamav/updata

CentOS7部署ClamAV

下載或更新病毒庫

在運行clamd,clamdscan或clamscan,必須在系統上的適當位置安裝ClamAV病毒資料庫(.cvd)文件。這些資料庫文件的默認位置是/usr/local/share/clamav。

## 國內下載可能會有點慢,多台機器的話,可以一台下載之後再拷貝

/usr/local/clamav/bin/freshclam

註:更新病毒庫時必須先停止freshclam服務。systemctl stop clamav-freshclam.service

更新結果如下圖:

CentOS7部署ClamAV

六、Clamav服務管理

## 啟動

systemctl start clamav-freshclam.service

## 查看Clamav狀態

systemctl status clamav-freshclam.service

## 配置開機啟動

systemctl enable clamav-freshclam.service

## 停止服務

systemctl stop clamav-freshclam.service

七、ClamAV的使用

## 創建軟鏈接,方便命令操作

ln -s /usr/local/clamav/bin/clamscan /usr/local/sbin/clamscan

## 查看相應的幫助信息

clamscan -h

## 掃描目錄文件顯示掃描結果但並不隔離或刪除文件

clamscan -r –bell -i ${路徑}

如:clamscan -r –bell -i /home/

CentOS7部署ClamAV

## 掃描計算機上的所有文件並且顯示所有的文件的掃描結果

clamscan -r /

## 掃描所有用戶的主目錄

clamscan -r /home

## 掃描文件

clamscan targetfile

## 遞歸掃描home目錄,並且記錄日誌

clamscan -r -i /home -l /data/logs/clamav/clamscan.log

## 遞歸掃描home目錄,將病毒文件刪除,並且記錄日誌

clamscan -r -i /home –remove -l /data/logs/clamav/clamscan.log

## 掃描指定目錄,然後將感染文件移動到指定目錄,並記錄日誌

mkdir -p /data/virus_collection

clamscan -r -i /home –move=/data/virus_collection -l /data/logs/clamav/clamscan.log

八、計劃任務——實際生產環境應用

編寫shell腳本,使用計劃任務,讓伺服器每天晚上定時更新病毒庫和定時殺毒,保存殺毒日誌。

mkdir -p /data/shell

cd /data/shell

vi clamscan.sh //輸入如下內容

#!/bin/bash
##  USAGE:
##              ClamAV SCAN 

##停止服務
systemctl stop clamav-freshclam.service
##更新病毒庫
/usr/local/clamav/bin/freshclam
##啟動服務
systemctl start clamav-freshclam.service

##創建目錄
mkdir -p /data/virus_collection
chown -R clamav.clamav /data/virus_collection
##掃描殺毒,將感染文件移動到指定目錄,並記錄日誌
clamscan -r -i / --move=/data/virus_collection -l /data/logs/clamav/clamscan.log

## 設置定時計劃任務,每天早上4點執行計劃任務

crontab -e //輸入如下內容

###Scan virus
0 4 * * * sh /data/shell/clamscan.sh

註:腳本執行時間自定義。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/233331.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-11 13:31
下一篇 2024-12-11 13:31

相關推薦

發表回復

登錄後才能評論