【ClamAV】Linux系統(tǒng)開源殺毒軟件ClamAV的安裝

Linux作為一個開源的操作系統(tǒng),很多人普遍認為沒有病毒,所以很多企業(yè)的服務器要么只使用了物理防火墻或軟件防火墻,要么為了性能直接裸奔,其實Linux系統(tǒng)的病毒較少,但是并不意味著病毒免疫,尤其是對于諸如郵件或者歸檔文件中夾雜的病毒往往更加難以防范,況且很多企業(yè)的服務器都是基于Linux,所以為了防范不法分子的入侵,我們還是要安裝殺毒軟件,并且不定期進行查殺病毒

目錄

  • 一、安裝環(huán)境
  • 二、搭建步驟
  • 三、常用命令總結
  • 四、遇到的問題
  • 五、定時查殺病毒
  • 六、參考并致謝

一、安裝環(huán)境

操作系統(tǒng):CentOS 7
應用軟件:ClamAV

二、搭建步驟

yum方式和RPM方式任選一種

1、yum方式安裝
1)使用以下命令將依賴和主安裝包都下載安裝上
[root@localhost ~]# yum install clamav  clamav-server clamav-data clamav-update clamav-filesystem clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd pcre* gcc zlib zlib-devel libssl-devel libssl openssl

說明: 這種方法安裝吼,病毒庫默認地址是:/var/lib/clamav

此時ClamAV已經(jīng)安裝完成

2、rpm方式安裝
1)下載軟件包
#官網(wǎng)地址:
    http://www.clamav.net/downloads   
#Linux中下載地址:
    wget http://www.clamav.net/downloads/production/clamav-0.100.0.tar.gz
#參考文檔:
    https://github.com/vrtadmin/clamav-faq/raw/master/manual/clamdoc.pdf
2)創(chuàng)建clamav用戶和存放病毒庫目錄
# clamav用戶和用戶組
[root@localhost ~]# groupadd clamav && useradd -g clamav clamav && id clamav
# 日志存放目錄
[root@localhost ~]# mkdir -p /usr/local/clamav/logs     
[root@localhost ~]# touch /usr/local/clamav/logs/clamd.log
[root@localhost ~]# touch /usr/local/clamav/logs/freshclam.log
[root@localhost ~]# chown clamav.clamav /usr/local/clamav/logs/clamd.log
[root@localhost ~]# chown clamav.clamav /usr/local/clamav/logs/freshclam.log

# 病毒存放目錄
[root@localhost ~]# mkdir -p /usr/local/clamav/updata
[root@localhost ~]# chown -R root.clamav /usr/local/clamav/
[root@localhost ~]# chown -R clamav.clamav /usr/local/clamav/updata/
3)解壓安裝包

包名的XXXX只是代表版本號,命令僅供參考

[root@localhost ~]# tar zxvf clamav-xxxxx.tar.gz
4)安裝依賴
[root@localhost ~]# yum install gcc openssl openssl-devel -y
5)編譯安裝
[root@localhost ~]# cd clamav-xxxxx/  
[root@localhost ~]# ./configure --prefix=/usr/local/clamav --with-pcre  
[root@localhost ~]# make && make install 
[root@localhost ~]#  echo $?

此時ClamAV已經(jīng)安裝完成

3、修改配置文件clam.conf

如果是yum方式安裝的話,配置文件都會在/etc目錄下,不用做以下復制模板操作,同時yum方式安裝的配置文件名稱是scan.conf

# rpm安裝方式需要復制模板配置文件
[root@localhost ~]# cd /usr/local/clamav/etc  
[root@localhost ~]# cp clamd.conf.sample clamd.conf  
[root@localhost ~]# cp freshclam.conf.sample freshclam.conf

打開clamd.conf配置文件

[root@localhost ~]# vim clamd.conf 
或者  
[root@localhost ~]# vim scan.conf

注釋掉#Example
并打開配置(路徑可根據(jù)需要修改,這里使用yum安裝的默認路徑)

LogFile /var/log/clamd.scan    
PidFile /var/run/clamd.scan/clamd.pid     
DatabaseDirectory /var/lib/clamav

然后找到以下配置進行修改:
一般情況下只是去掉注釋的更改,使用yum方式安裝的話配置文件中的配置基本都是可用的

DatabaseDirectory /var/lib/clamav  

# 這里定義服務器類型(本地或者TCP,如果定義為使用本地socket則將此注釋打開)
LocalSocket /var/run/clamd.scan/clamd.sock

# 這里定義服務器類型(本地或者TCP,如果定義為使用TCP socket則將此注釋打開)
TCPSocket 3310  

TCPAddr 127.0.0.1

4、修改配置文件freshclam.conf

[root@localhost ~]# vim /etc/freshclam.conf

同樣將Excemple注釋掉

三、常用命令總結

1、啟動、關閉、查看狀態(tài)
# 啟動服務
[root@localhost ~]# systemctl start clamd@scan.server  
# 關閉服務  
[root@localhost ~]# systemctl stop clamd@scan.server  
# 查看服務狀態(tài)
[root@localhost ~]# systemctl status clamd@scan.server 
2、掃描殺毒
1、clamdscan命令
  • 一般是使用yum安裝才能使用,需要啟動clamd服務,執(zhí)行速度較快,默認會遞歸掃描子目錄
[root@localhost ~]# clamdscan /home
2、clamscan命令
  • 通用,不依賴服務(不需要開啟服務也能用),命令參數(shù)較多,執(zhí)行速度慢
-r/--recursive[=yes/no]             所有文件
--log=FILE/-l FILE        增加掃描報告
--move [路徑]          移動病毒文件至..
--remove [路徑]              刪除病毒文件
--quiet                  只輸出錯誤消息
--infected/-i                       只輸出感染文件
--suppress-ok-results/-o                   跳過掃描OK的文件
--bell                         掃描到病毒文件發(fā)出警報聲音
--unzip(unrar)                 解壓壓縮文件掃描

例:

clamscan -ri --log=/home/clamav.log /home

掃描結果如下

2、更新病毒庫
1、 手動更病毒庫
[root@localhost ~]# freshclam
2、自動更新病毒庫

freshclam命令通過文件/etc/cron.d/clamav-update來運行,改文件內(nèi)容如下:


但默認情況下是禁止了自動更新功能,需要移除文件/etc/sysconfig/freshclam配置文件最后一行的配置才能啟用

六、遇到的問題

1、服務不能啟動,查看日志發(fā)現(xiàn)報錯:Please defind server type (local and/or TCP)

原因: 是在配置文件中沒定義是使用本地的socket還是使用TCP方式的socket
解決方法: 修改scan.conf文件中的配置,如使用本地的socket:


然后再次啟動:

2、在更新病毒庫時,出現(xiàn)Can't create temporaty directory xxxx的錯誤

解決方法:
一般錯誤提示中會給出UID和GID提示,根據(jù)提示修改權限


然后再次執(zhí)行更新:

3、手動更新時遇到錯誤:Update failed. Your network may be down or none of the mirrors listed in freshclam.conf is working.

解決方法: 將舊的鏡像地址刪掉:

[root@localhost ~]# rm -f /var/lib/clamav/mirrors.dat

然后再次執(zhí)行手動更新

4、執(zhí)行clamdscan命令時出現(xiàn):Permission denied. ERROR

暫未發(fā)現(xiàn)解決方法,如果有找到方法的網(wǎng)友麻煩告知一下謝謝

五、定時查殺病毒

1、直接使用命令+定時任務的方式

打開定時任務配置文件

[root@localhost ~]# vim crontab

文件內(nèi)配置如下

1  3  * * *  /usr/bin/freshclam --quiet
20 3  * * *  /usr/bin/clamscan  -r /home  --remove -l /var/log/clamscan.log
2、使用命令+腳本方式,如果掃描到病毒就發(fā)送郵件給管理員(基于python環(huán)境,腳本摘于網(wǎng)絡)
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import socket
import os
import re
 
 
class ClamAV(object):
    ## 這里填入自己的遠程smtp服務。利用第三方smtp服務進行郵件發(fā)送。
    def __init__(self):
        self.HOST = "smtp.exmail.qq.com"  
        self.PORT = "465"
        self.USER = 'xxx@xxxx.com'
        self.PASSWD = 'xxxxxx'
        self.TO = "xxxxxxxxx@xx.com"
 
    def clamscan(self):
        os.system('freshclam')
        os.system('clamscan -ri /tmp > /tmp/clamscan.log')
        with open('/tmp/clamscan.log', 'r', encoding='utf-8') as f:
            a = f.read()
 
        result = re.findall('Infected files:.*', a)
        if result:
            number = result[0].split(':')[1].strip()
            if number != '0':
                self.sendmail('Infected files:%s。有文件感染,請手動檢查,查殺病毒。' %number)
        else:
            self.sendmail('掃描腳本有誤,請檢查')
 
    def sendmail(self,content):
        ipaddr = socket.gethostbyname(socket.gethostname())
 
        smtp = smtplib.SMTP_SSL(self.HOST, self.PORT)
        smtp.ehlo()
        smtp.login(self.USER, self.PASSWD)
 
        TEXT = """IP: %s\nContent: %s""" %(ipaddr,content)
        message = MIMEText(TEXT, 'plain', 'utf-8')
        message['From'] = self.USER
        message['To'] = self.TO
        message['Subject'] = Header('Clamscan Result Warning', 'utf-8')
 
        smtp.sendmail(self.USER, self.TO, message.as_string())
        smtp.quit()
 
 
clam = ClamAV()
clam.clamscan()

然后將python腳本設定為定時任務
打開定時任務配置文件

[root@localhost ~]# vim crontab

配置文件內(nèi)容如下

00 4 * * * root /home/clamsacn.py

六、參考并致謝

https://blog.csdn.net/weixin_41004350/article/details/80182929

https://www.cnblogs.com/bingo1024/p/9018212.html

http://www.vaerenbergh.com/blog/scan-uploaded-files-drupal-clamav

https://blog.csdn.net/heiby/article/details/52136340

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容