您好,登錄后才能下訂單哦!
準(zhǔn)備兩臺(tái)機(jī)器做測(cè)試
一臺(tái)檢測(cè)機(jī) 192.168.251.134
一臺(tái)被測(cè)機(jī)器 192.168.3.24
在被測(cè)機(jī)器上
安裝clamav 之前還需要安裝zlib 要不然安裝過(guò)程中會(huì)報(bào)錯(cuò)的.
tar -zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
make
make install (zlib 編譯安裝)
因?yàn)槲矣迷创a包安裝,需要手動(dòng)創(chuàng)建clamav 用戶
groupadd clamav (創(chuàng)建clamav組
useradd -g clamav clamav (創(chuàng)建clamav用戶并加入clamav組)
tar -zxvf clamav-0.95.2.tar.gz (解壓)
cd clamav-0.95.2 (進(jìn)入目錄)
./configure --prefix=/usr/local/clamav
make
make install (編譯并安裝 )
到此clamav 的安裝完畢下面讓clamav 啟動(dòng)起來(lái).
首先創(chuàng)建一個(gè)目錄.
mkdir /usr/local/clamav/logs (日志存放目錄)
mkdir /usr/local/clamav/updata (clanav 病毒庫(kù)目錄)
vi /usr/local/clamav/etc/clamd.conf
可能會(huì)有clamd.conf.simple文件 你可以修改這個(gè)文件再
cp clamd.conf.simple clamd.conf
這樣就可以了
# Example 注釋掉這一行. 第8 行
LogFile /usr/local/clamav/logs/clamd.log 刪掉前面的注釋目錄改為logs下面 第14行
PidFile /usr/local/clamav/updata/clamd.pid 刪掉前面的注釋路徑改一下 第57行
DatabaseDirectory /usr/local/clamav/updata 同上 第65行
vi /usr/local/clamav/etc/freshclam.conf
# Example 注釋掉這一行. 第8 行
DatabaseDirectory /usr/local/clamav/updata
UpdateLogFile /usr/local/clamav/logs/freshclam.log
PidFile /usr/local/clamav/updata/freshclam.pid (忘記寫多少行了自己找一下吧.)
下面創(chuàng)建日志文件
touch /usr/local/clamav/logs/freshclam.log
chown clamav:clamav /usr/local/clamav/logs/freshclam.log
touch /usr/local/clamav/logs/clamd.log
chown clamav:clamav /usr/local/clamav/logs/clamd.log
chown clamav:clamav /usr/local/clamav/updata
/usr/local/clamav/bin/freshclam (升級(jí)病毒庫(kù)) 保證你的LINUX可以正常上網(wǎng)哦.
[p_w_upload=43384]
需要一點(diǎn)時(shí)間的.
等了我半個(gè)小時(shí)終于下載完成了.
在更新的同時(shí)可以在檢測(cè)機(jī)器寫腳本了192.168.251.134
寫之前要注意需要安裝pyClamad的環(huán)境
在http://xael.org/pages/pyclamd-en.html下載源碼包
解壓安裝 python setup.py install
安裝后 vim pyclamd.py
#!/usr/bin/python
#-*- coding: utf-8 -*-
import time
import pyclamd
from threading import Thread
class Scan(Thread):
def __init__ (self,IP,scan_type,file):
"""構(gòu)造方法,參數(shù)初始化"""
Thread.__init__(self)
self.IP = IP
self.scan_type = scan_type
self.file = file
self.connstr = ""
self.scanresult = ""
def run(self):
"""多進(jìn)程run方法"""
try:
cd = pyclamd.ClamdNetworkSocket(self.IP,3310) #創(chuàng)建套接字對(duì)象
if cd.ping(): #探測(cè)連通性
self.connstr = self.IP+"connection[OK]"
cd.reload() #重載clamd病毒特征庫(kù),建議更新病毒庫(kù)后做reload()操作
if self.scan_type == "contscan_file":
self.scanresult="{0}\n".format(cd.contscan_file(self.file))
elif self.scan_type=="multiscan_file":
self.scanresult="{0}\n".format(cd.multiscan_file(self.file))
elif self.scan_type=="scan_file":
self.scanresult="{0}\n".format(cd.scan_file(self.file))
time.sleep(1)
else:
self.connstr=self.IP+"ping error,exit"
except Exception,e:
self.connstr=self.IP+" "+str(e)
IPs=['192.168.3.24'] #指定掃描主機(jī)列表
scantype = "multiscan_file" #指定掃描模式,支持multiscan_file,contscan_file,scan_file
scanfile = "/tmp" #指定掃描路徑
i=1
threadnum = 2 #指定啟動(dòng)的線程數(shù)
scanlist = [] #存儲(chǔ)掃描Scan類線程對(duì)象列表
for ip in IPs:
currp = Scan(ip,scantype,scanfile) #創(chuàng)建掃描Scan類對(duì)象,參數(shù)(IP,掃描模式,掃描路徑)
scanlist.append(currp) #追加對(duì)象到列表
if i%threadnum==0 or i==len(IPs): #當(dāng)達(dá)到指定的線程或IP列表數(shù)后啟動(dòng),退出線程
for task in scanlist:
task.start() #啟動(dòng)線程
for task in scanlist:
task.join() #等待所有子線程退出,并輸出掃描結(jié)果
print task.connstr #打印服務(wù)器連接信息
scanlist = []
i+=1
-------------------------------------------------------------------------------
完成腳本,別急著直接運(yùn)行
在192.168.3.24被測(cè)服務(wù)器上啟動(dòng)服務(wù),并且開(kāi)放監(jiān)聽(tīng)端口
先sed -i =e '/^TCPAddr/{s/127.0.0.1/0.0.0.0/;}' /usr/local/etc/clamv/clamv.conf
可能這個(gè)已經(jīng)注釋掉,最好還是直接vim進(jìn)去手動(dòng)改
/usr/local/clamv/sbin/clamd start 啟動(dòng)
開(kāi)放端口為3310
lsof -i:3310 檢測(cè)是否監(jiān)聽(tīng)
如果監(jiān)聽(tīng)成功則
在檢測(cè)服務(wù)器上運(yùn)行腳本,即可
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。