Linux安裝殺毒工具ClamAV,并配置郵件告警
ClamAV簡介
ClamAV是Linux操作系統(tǒng)一款免費的殺毒工具,可以通過命令執(zhí)行病毒庫升級、查找病毒和刪除病毒。ClamAV屬于免費開源產(chǎn)品,支持多種平臺,如:Linux/Unix、MAC OS X、Windows、OpenVMS。
ClamAV是基于病毒掃描的命令行工具,但同時也有支持圖形界面的ClamTK工具。 ClamAV主要用于郵件服務器掃描郵件。它有多種接口從郵件服務器掃描郵件,支持文件格式有如:ZIP、RAR、TAR、GZIP、BZIP2、HTML、DOC、PDF,、SIS CHM、RTF等等。 ClamAV可以自動升級病毒庫,還可以從共享庫中運行。
clamav 有兩個命令:clamdscan、clamscan:
- clamscan 命令:通用,不依賴服務,命令參數(shù)較多,執(zhí)行速度稍慢
- clamdscan 命令:是一個搭配clamd常駐服務的掃毒工具,功能非常類似clamscan,執(zhí)行效率較高,但是可用的參數(shù)較少(因為部分功能是由 clamd 控制的)。不用帶 -r ,默認會遞歸掃描子目錄
ClamAV的安裝
centos安裝方式:
#添加擴展源 yum -y install epel-release yum -y install clamav clamavd clamav-update
ubuntu安裝方式:
#升級apt源 apt update apt -y install clamav clamtk clamav-daemon clamdscan device-tree-compiler
更新病毒庫
freshc

這樣就是更新成功了;
ClamAV的使用
ClamAV的語法
clamscan [選項/參數(shù)/簡便參數(shù)] [文件/目錄]
ClamAV常用參數(shù)

ClamAV的用法
掃描病毒
#對/data/目錄掃描,并將掃描的日志放到該文件中 clamscan -i -r /data/ -l ./clamav.log
- -i 只顯示被感染的文件
- -r 掃描目錄,后面需跟目錄
- -l 保存日志文件的位置,后面需跟文件名
注意:上述命令僅掃描病毒,不會對病毒文件進行刪除,需手動刪除。目錄越大掃描速度越慢。
掃描結(jié)果如下:

這種的是沒有病毒;Infected files 顯示0,則沒有掃到病毒,1或其他則掃出了病毒。
Known viruses #已知病毒 Engine version #發(fā)動機版本 Scanned directories #掃描的目錄 Scanned files #掃描的文件 Infected files #受感染的文件 Data scanned #掃描數(shù)據(jù) Data read #數(shù)據(jù)讀取 Time #時間 Start Date #開始日期: End Date #結(jié)束日期
掃描病毒并自動刪除病毒
#對/data/目錄掃描,并將掃描的日志放到該文件中,有病毒則自動刪除 clamscan -i -r /data/ --remove=yes -l ./clamav.log

刪除完可以再去哪個目錄看看。
創(chuàng)建日志保存路徑
后續(xù)可以將病毒掃描結(jié)果保存到/var/log/clamav/ 文件夾下。
mkdir -p /var/log/clamav/
掃描/home/下是否有病毒;目錄越大掃描速度越慢。
clamscan -i -r /home/ -l /var/log/clamav/clamav.log
安裝配置郵件服務
安裝郵件服務這里就不詳細介紹了,后面會寫文章詳細介紹。
配置定時掃描和郵件告警
ClamAV掃描郵件告警腳本可以選擇下載也可以選擇直接復制,不下載的希望多一個瀏覽量,謝謝蟹蟹;
ClamAV掃描郵件告警腳本:ClamAV病毒掃描之郵件告警腳本
ClamAV掃描郵件告警腳本:
ClamAV病毒掃描之郵件告警腳本,里面內(nèi)容可根據(jù)自己的情況自行修改。 自行修改的內(nèi)容有: mail 郵件收件人 要掃描的路徑(默認為/根目錄) 日志存儲的路徑(默認為/var/log/clamav/)
還有就是最后的if判斷那邊也要記得修改自己的郵件收件人,判斷三個都要改。 如果是一個人的話,可以直接寫郵箱地址;如果是多個人的話在判斷后面改為$mail_A,然后把需要通知的人寫到最上面的mail_A環(huán)境變量中
#!/bin/bash
freshclam ##病毒庫更新
mail_A=(mail1@,mail2@,mail3@) ## 郵件收件人,可批量
# 獲取當前時間(用于創(chuàng)建、讀取日志文件)
date=`date +%Y%m%d-%H:%M:%S`
# *填寫掃描路徑(可根據(jù)自己的情況來自定義,默認為/根目錄)
clpath="/"
# *填寫要存儲日志的路徑(可根據(jù)自己的情況來自定義,默認為/var/log/clamav/)
clamav_log="/var/log/clamav"
# 判斷是否有存儲日志的目錄,如果沒有則先創(chuàng)建,為了下面的存放日志而創(chuàng)建
if [ -e $clamav_log ];then
echo "有這個目錄" > /dev/null
else
echo "沒有這個目錄" > /dev/null
mkdir -p $clamav_log
fi
#掃描/目錄 結(jié)果打印到$clamav_log/clamav$date.log
clamscan -r -i $clpath -l $clamav_log/clamav$date.log
#刪除WARING開頭的內(nèi)容
sed -i '/^WARNING/d' $clamav_log/clamav$date.log
#刪除第一行到第三行的內(nèi)容
sed -i '1,3d' $clamav_log/clamav$date.log
##獲取當前服務器ip ,可以先執(zhí)行這條命令看看自己的ip對不對。
ip=`hostname -I | awk -F " " '{print $1}'`
#echo $IP
data_log=""
while read line
do
# data_log+=$line"<br>"
data_log+=$line"\n"
done < $clamav_log/clamav$date.log
##獲取高危病毒的個數(shù)
infected_files=$(cat $clamav_log/clamav$date.log | grep "Infected files" | awk -F ": " '{print $2}')
##獲取執(zhí)行時的時間
scan_time=$(cat $clamav_log/clamav$date.log | grep "Start Date" | awk -F ": " '{print $2}')
data_log=${data_log/SCAN SUMMARY/掃描結(jié)果}
data_log=${data_log/Known viruses/病毒庫數(shù)量}
data_log=${data_log/Engine version/引擎版本}
data_log=${data_log/Scanned directories/已掃描目錄}
data_log=${data_log/Scanned files/已掃描文件}
data_log=${data_log/Infected files/已發(fā)現(xiàn)病毒文件}
data_log=${data_log/Total errors/錯誤總數(shù)}
data_log=${data_log/Data scanned/已掃描數(shù)據(jù)}
data_log=${data_log/Data read/讀取數(shù)據(jù)}
data_log=${data_log/Time/掃描時長}
data_log=${data_log/Start Date/開始時間}
data_log=${data_log/End Date/結(jié)束時間}
body="殺毒軟件 ClamAV 在$scan_time 對您的服務器$ip進行了掃描,掃描的路徑為:$clpath,掃描結(jié)果:暫未發(fā)現(xiàn)病毒!"
body2="殺毒軟件 ClamAV 在$scan_time 對您的服務器$ip進行了掃描,掃描的路徑為:$clpath,掃描結(jié)果:發(fā)現(xiàn)有$infected_files個高危病毒 ;請立即登錄服務器處理!詳情可見附件↓ "
log2="殺毒軟件 ClamAV 在$scan_time 對您的服務器$ip進行了掃描,掃描的路徑為:$clpath,掃描結(jié)果:發(fā)現(xiàn)有$infected_files個高危病毒 ;病毒為:\n$data_log\n請立即登錄服務器處理?。?!"
echo -e "$log2" > ./${ip}_clamav.txt
if [ "$infected_files" -eq "0" ];then
echo $body | mail -s "$(echo -e "$ip \r服務器病毒處理通知-無病毒")" mail1@
elif [ "$infected_files" -gt "0" ];then
echo $body2 | mail -a ./${ip}_clamav.txt -s "$(echo -e "$ip \r服務器病毒處理通知-有 $infected_files 個高危病毒")" mail1@
else
echo $body2 | mail -s "$ip :此次查詢失敗,請檢查日志!" mail1@
fi
#$mail_A ##收件人地址注:該腳本只適用于clamscan命令,并不適用于clamdscan命令。
發(fā)送郵件告警樣式演示

顯示內(nèi)容:


刪除病毒方式
方式一:掃描到病毒可以手動刪除,進入病毒目錄直接刪除就可以;
方式二:也可以找到病毒目錄,再次執(zhí)行掃描病毒命令并指定病毒所在目錄,clamscan -i -r /data/ --remove=yes -l ./clamav.log 來實現(xiàn)刪除病毒;
配置定時掃描
配置定時掃描也就是設(shè)置周期性計劃任務
提示:
如果是只掃描某一個路徑下的,可以一天掃一次就行;
如果是直接掃根目錄,建議一周掃一次。
vim /etc/crontab #以用戶root身份定時執(zhí)行腳本,sh為執(zhí)行命令,/data/----為腳本絕對路徑;每天凌晨4點掃描一次 0 4 * * * root /bin/sh /data/clamav/ ###每周日凌晨1點clamav掃描漏洞(掃描根目錄推薦) 0 1 * * 7 root /bin/sh /home/clamav/


配置完成之后保存退出即可。
總結(jié)
ClamAV是一款免費的開源殺毒工具,支持多種平臺,可用于郵件服務器掃描郵件,它可以自動升級病毒庫,支持多種文件格式掃描,ClamAV有兩個命令:clamscan和clamdscan,分別適用于不同的場景,安裝和使用ClamAV需要更新病毒庫,并進行掃描和刪除病毒的操作,配置定時掃描和郵件告警可以幫助實現(xiàn)自動化監(jiān)控和處理
到此這篇關(guān)于Linux安裝殺毒工具ClamAV,并配置郵件告警的文章就介紹到這了,更多相關(guān)Linux殺毒工具ClamAV,郵件告警內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Ubuntu18.04(linux)安裝MySQL的方法步驟
本篇文章主要介紹了Ubuntu18.04(linux)安裝MySQL的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05
centos配置mutt和msmtp實現(xiàn)郵件發(fā)送
這篇文章主要為大家詳細介紹了centos配置mutt和msmtp實現(xiàn)郵件發(fā)送,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11
apache .htaccess文件詳解和配置技巧總結(jié)
這篇文章主要介紹了apache .htaccess文件詳解和配置技巧總結(jié),需要的朋友可以參考下2014-04-04

