在Ubuntu 20.04上安裝和使用ClamAV

在本教程中,我們將學習如何在Ubuntu 20.04上安裝和使用ClamAV。 ClamAV 是用於檢測木馬,病毒,惡意軟件,廣告軟件,rootkit和其他惡意威脅的開源防病毒引擎。

ClamAV的某些功能包括:

  • 內置支持各種存檔格式,包括Zip,Tar,Gzip,Bzip2,OLE2,Cabinet,CHM,BinHex,SIS等。
  • 對幾乎所有郵件文件格式的內置支持
  • 對使用UPX,FSG,Petite,NsPack,wwpack32,MEW,Upack壓縮並用SUE,Y0da Cryptor等混淆的ELF可執行文件和可移植可執行文件的內置支持;
  • 內置支持流行的文檔格式,包括Microsoft Office和Mac Office文件,HTML,RTF和PDF。
  • 支持多種簽名語言,例如基於哈希的簽名匹配,通配符,布爾邏輯和任何以字節碼語言編寫的自定義規則。

ClamAV包括一個多線程掃描程序守護程序,用於按需文件掃描和自動簽名更新的命令行實用程序。它的主要用途之一是在郵件服務器上作為服務器端電子郵件病毒掃描程序。

在Ubuntu 20.04上安裝和使用ClamAV

更新系統軟件包緩存

首先,更新系統軟件包緩存。

apt update

在Ubuntu 20.04上安裝ClamAV

默認的Ubuntu 20.04存儲庫包含ClamAV的最新穩定發行版。您只需運行下面的命令即可簡單地安裝它及其實用程序。

apt install clamav clamav-daemon -y

更新ClamAV簽名數據庫

為了進行掃描,您需要更新的病毒數據庫。有兩種更新ClamAV數據庫的選項:

  • clamav-freshclam:從Internet更新數據庫。建議使用Internet訪問。
  • Offline update 用於無法直接訪問互聯網的系統。

使用更新更新簽名數據庫 clamav-freshclam

如果可以訪問互聯網,則可以使用 clamav-freshclam 更新ClamAV病毒庫。

要使用此方法,請停止 clamav-freshclam 服務(如果正在運行)並執行 freshclam,病毒數據庫更新工具。

systemctl stop clamav-freshclam

然後更新病毒數據庫;

freshclam

如果數據庫是最新的,那麼您可能會得到類似於以下的輸出(否則,該命令將提取數據庫更新)

Wed May  6 05:58:42 2020 -> ClamAV update process started at Wed May  6 05:58:42 2020
Wed May  6 05:58:42 2020 -> daily.cvd database is up to date (version: 25803, sigs: 2358438, f-level: 63, builder: raynman)
Wed May  6 05:58:42 2020 -> main.cvd database is up to date (version: 59, sigs: 4564902, f-level: 60, builder: sigmgr)
Wed May  6 05:58:42 2020 -> bytecode.cvd database is up to date (version: 331, sigs: 94, f-level: 63, builder: anvilleg)

接下來,開始 clamav-freshclam 服務,因此它會隨時在後台更新簽名數據庫。

systemctl start clamav-freshclam

確保已啟用該服務以在系統啟動時運行;

systemctl is-enabled clamav-freshclam
enabled

freshclam 下載ClamAV數據庫,CVD,並將其放在下面, /var/lib/clamav/

ls /var/lib/clamav/
bytecode.cvd daily.cvd main.cvd

離線數據庫更新

如果您的系統無法訪問互聯網,只需從以下位置下載CVD ClamAV下載頁Ë 並將它們放在 /var/lib/clamav

將下載的CVD放置在ClamAV數據庫上後,請確保相應地更改所有權和權限。

chown clamav:clamav /var/lib/clamav/*.cvd
chmod 644 /var/lib/clamav/*.cvd

重新啟動ClamAV守護程序;

systemctl restart clamav-daemon

要通過私有本地鏡像更新數據庫,請查看如何打開 文檔頁面

Clamscan CLI選項和示例用法

Clamscan用於掃描文件和目錄中是否有病毒。在手冊頁中,clamscan命令語法為:

clamscan [options] [file/directory/-]

下面說明了一些clamscan命令選項及其示例用法。

使用以下命令打印幫助信息 -h 要麼 --help 選項。

clamscan -h

注意: 標有的選項 [=yes/no(*)] 可以選擇後面跟隨 =是 要麼 =否。 如果在沒有布爾參數的情況下調用它們,則掃描程序將假定為“是”。星號標記給定選項的默認內部設置。

掃描特定目錄或文件;

clamscan /home/
clamscan /home/filename.docx

掃描結束時不顯示摘要。

clamscan --no-summary /home/

僅打印受感染的文件(-i--infected);

clamscan -i /

跳過打印OK文件(-o--suppress-ok-results);

clamscan -o /home/

警惕病毒檢測(--bell);

clamscan --bell -i /home

遞歸掃描目錄(-r--recursive)。

clamscan --bell -i -r /home

將掃描報告保存到FILE(-l FILE--log=FILE);

clamscan --bell -i -r /home -l home-scan.txt

掃描文件中逐行列出的文件(-f FILE --file-list=FILE)。

clamscan -i -f /tmp/scan

刪除受感染的文件(--remove[=yes/no(*)])。請注意,因為這會完全刪除文件。

 clamscan -r --remove /home/USER

將受感染的文件移至目錄 (--move=DIRECTORY)。對於運行clamscan的用戶或非特權用戶,目錄必須可寫。

clamscan -r -i --move=/home/USER/infected /home/

將受感染的文件複製到目錄中(–copy = DIRECTORY)。對於運行clamscan的用戶或非特權用戶,目錄必須可寫。

clamscan -r -i --copy=/home/USER/infected /home/

對於clamscan的各種用法,有很多選項可供選擇。請教 man clamscan 更多細節。

ClamAV返回碼

以下是ClamAV的退出返回代碼。

  • 0:未發現病毒。
  • 1:發現病毒。
  • 2:發生了一些錯誤。

限制Clamscan CPU使用率

clamscan 可能會佔用大量CPU資源,尤其是在掃描大型目錄時。

要將clamscan CPU時間限制在一定水平,可以使用兩種工具。

  • nice:降低clamscan的優先級(限制相對cpu時間)。
  • cpulimit:限制絕對的CPU時間。

要使用漂亮的命令,

nice -n 15 clamscan && clamscan -ir /

只要沒有其他進程需要cputime,clamscan就會將其最大化。但是,一旦另一個具有更高優先級的進程需要cputime,clamscan就會丟失它。

使用cpulimit;

cpulimit -z -e clamscan -l 20 & clamscan -ir /

掃描整個根目錄時,將clamscan cpu時間限制為15%。

進一步閱讀

ClamAV用戶手冊

Sidebar