Linux作為一個(gè)開源的操作系統(tǒng)鳍咱,很多人普遍認(rèn)為沒有病毒嘴秸,所以很多企業(yè)的服務(wù)器要么只使用了物理防火墻或軟件防火墻伺帘,要么為了性能直接裸奔凑队,其實(shí)Linux系統(tǒng)的病毒較少则果,但是并不意味著病毒免疫,尤其是對于諸如郵件或者歸檔文件中夾雜的病毒往往更加難以防范漩氨,況且很多企業(yè)的服務(wù)器都是基于Linux短条,所以為了防范不法分子的入侵,我們還是要安裝殺毒軟件才菠,并且不定期進(jìn)行查殺病毒
目錄
- 一茸时、安裝環(huán)境
- 二、搭建步驟
- 三赋访、常用命令總結(jié)
- 四可都、遇到的問題
- 五、定時(shí)查殺病毒
- 六蚓耽、參考并致謝
一渠牲、安裝環(huán)境
操作系統(tǒng):CentOS 7
應(yīng)用軟件: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
說明: 這種方法安裝吼签杈,病毒庫默認(rèn)地址是:/var/lib/clamav
此時(shí)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 $?
此時(shí)ClamAV已經(jīng)安裝完成
3答姥、修改配置文件clam.conf
如果是yum方式安裝的話,配置文件都會在/etc目錄下谚咬,不用做以下復(fù)制模板操作鹦付,同時(shí)yum方式安裝的配置文件名稱是scan.conf
# rpm安裝方式需要復(fù)制模板配置文件
[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安裝的默認(rèn)路徑)
LogFile /var/log/clamd.scan
PidFile /var/run/clamd.scan/clamd.pid
DatabaseDirectory /var/lib/clamav
然后找到以下配置進(jìn)行修改:
一般情況下只是去掉注釋的更改择卦,使用yum方式安裝的話配置文件中的配置基本都是可用的
DatabaseDirectory /var/lib/clamav
# 這里定義服務(wù)器類型(本地或者TCP敲长,如果定義為使用本地socket則將此注釋打開)
LocalSocket /var/run/clamd.scan/clamd.sock
# 這里定義服務(wù)器類型(本地或者TCP,如果定義為使用TCP socket則將此注釋打開)
TCPSocket 3310
TCPAddr 127.0.0.1
4秉继、修改配置文件freshclam.conf
[root@localhost ~]# vim /etc/freshclam.conf
同樣將Excemple注釋掉
三祈噪、常用命令總結(jié)
1、啟動(dòng)尚辑、關(guān)閉辑鲤、查看狀態(tài)
# 啟動(dòng)服務(wù)
[root@localhost ~]# systemctl start clamd@scan.server
# 關(guān)閉服務(wù)
[root@localhost ~]# systemctl stop clamd@scan.server
# 查看服務(wù)狀態(tài)
[root@localhost ~]# systemctl status clamd@scan.server
2、掃描殺毒
1腌巾、clamdscan命令
- 一般是使用yum安裝才能使用遂填,需要啟動(dòng)clamd服務(wù)铲觉,執(zhí)行速度較快澈蝙,默認(rèn)會遞歸掃描子目錄
[root@localhost ~]# clamdscan /home
2吓坚、clamscan命令
- 通用,不依賴服務(wù)(不需要開啟服務(wù)也能用)灯荧,命令參數(shù)較多礁击,執(zhí)行速度慢
-r/--recursive[=yes/no] 所有文件
--log=FILE/-l FILE 增加掃描報(bào)告
--move [路徑] 移動(dòng)病毒文件至..
--remove [路徑] 刪除病毒文件
--quiet 只輸出錯(cuò)誤消息
--infected/-i 只輸出感染文件
--suppress-ok-results/-o 跳過掃描OK的文件
--bell 掃描到病毒文件發(fā)出警報(bào)聲音
--unzip(unrar) 解壓壓縮文件掃描
例:
clamscan -ri --log=/home/clamav.log /home
掃描結(jié)果如下
2、更新病毒庫
1逗载、 手動(dòng)更病毒庫
[root@localhost ~]# freshclam
2哆窿、自動(dòng)更新病毒庫
freshclam命令通過文件/etc/cron.d/clamav-update來運(yùn)行,改文件內(nèi)容如下:
但默認(rèn)情況下是禁止了自動(dòng)更新功能厉斟,需要移除文件/etc/sysconfig/freshclam配置文件最后一行的配置才能啟用
六挚躯、遇到的問題
1、服務(wù)不能啟動(dòng)擦秽,查看日志發(fā)現(xiàn)報(bào)錯(cuò):Please defind server type (local and/or TCP)
原因: 是在配置文件中沒定義是使用本地的socket還是使用TCP方式的socket
解決方法: 修改scan.conf文件中的配置码荔,如使用本地的socket:
然后再次啟動(dòng):
2、在更新病毒庫時(shí)感挥,出現(xiàn)Can't create temporaty directory xxxx的錯(cuò)誤
解決方法:
一般錯(cuò)誤提示中會給出UID和GID提示缩搅,根據(jù)提示修改權(quán)限
然后再次執(zhí)行更新:
3、手動(dòng)更新時(shí)遇到錯(cuò)誤: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í)行手動(dòng)更新
4触幼、執(zhí)行clamdscan命令時(shí)出現(xiàn):Permission denied. ERROR
暫未發(fā)現(xiàn)解決方法硼瓣,如果有找到方法的網(wǎng)友麻煩告知一下謝謝
五、定時(shí)查殺病毒
1置谦、直接使用命令+定時(shí)任務(wù)的方式
打開定時(shí)任務(wù)配置文件
[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)絡(luò))
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import socket
import os
import re
class ClamAV(object):
## 這里填入自己的遠(yuǎn)程smtp服務(wù)筑累。利用第三方smtp服務(wù)進(jìn)行郵件發(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丝蹭。有文件感染慢宗,請手動(dòng)檢查,查殺病毒奔穿。' %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腳本設(shè)定為定時(shí)任務(wù)
打開定時(shí)任務(wù)配置文件
[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