티스토리 뷰

[CentOS 6.X] 초간단 ClamAV(리눅스 AntiVirus) 설치 및 운영



ClamAV는 네트워크 장비로 유명한 시스코 시스템즈에서 지원하는 오픈소스 소프트웨어로 자유 크로스플랫폼 형식의 바이러스 검사 소프트웨어 툴킷이다. 바이러스를 비롯한 수많은 종류의 악성 소프트웨어를 찾아낼 수 있다. 주된 목적 가운데 하나는 서버 측면의 전자 메일 바이러스 검사기의 역할을 하면서 메일 서버에 이용하는 것이다.

출처 - 위키백과




1. ClamAV 구성 및 기능

 명령어

 실행결과

 freshclam

 Signature Update 패턴 업데이트

 yum update

 Engine Update 백신 엔진 업데이트

 clamd

 시스템 감시 데몬

 clamscan

 검사



2. ClamAV, Clamd 설치

# yum -y install clamav clamd



3. 환경설정


/etc/freshclam.conf

Example <-- 주석처리 #Example


/etc/clamd.conf


Example <-- 주석처리 #Example 그외 설정값 LogFile /var/log/clamav/clamd.log LogFileMaxSize 0 LogTime yes LogSyslog yes PidFile /var/clamav/clamd.pid TemporaryDirectory /var/tmp DatabaseDirectory /var/clamav LocalSocket /var/clamav/clamd.sock FixStaleSocket yes MaxConnectionQueueLength 30 ScanPE yes ScanELF yess DetectBrokenExecutables yes ScanOLE2 yes ScanMail yes ScanArchive yes ArchiveBlockEncrypted no



!! 주의 - /var/run/clamav 경로확인

/var/run/clamav 경로가 없다면 생성 및 권한 부여 # cd /var/run # mkdir clamav # chown -R clamav.clamav clamav/



4. 백신 엔진 자동 업데이트 설정

# crontab -e


# 아래 내용추가 (매일 오전 2시30분에 수행) # Daily AntiVirus Engine Update 30 02 * * * /usr/bin/yum update -y clamav clamd



5. 백신 패턴 자동 업데이트 설정

부팅시 자동시작되도록 rc.local 등록 # vi /etc/rc.d/rc.local # 아래 내용추가 # AntiVirus Signature Update Demon /usr/local/clamav/bin/freshclam -d



!! 주의 - 패턴 업데이트 실패시 mirrors.dat 파일 소유권 확인

/var/lib/clamav/mirrors.dat -> chown clam.clam mirrors.dat



6. 시스템 감시 설정

# 서비스 활성화

# service clamd start


# 부팅시 서비스 시작되도록 등록

# chkconfig clamd on



7. 일간 전체 검사 스캐쥴 설정

# vi /root/clamscan_daily.sh

#!/bin/bash

# Log file name and its path:
LOGFILE="/var/log/clamav/clamav-$(date +'%Y-%m-%d').log";

# Notification e-mail subject:
EMAIL_MSG="Please see the log file attached.";

# Notification e-mail sender (could be fake):
EMAIL_FROM="clamav-daily@example.com";

# Notification e-mail recipient:
EMAIL_TO="username@example.com";

DIRTOSCAN="/var/www /var/vmail";


for S in ${DIRTOSCAN}; do
 DIRSIZE=$(du -sh "$S" 2>/dev/null | cut -f1);

 echo "Starting a daily scan of "$S" directory.
 Amount of data to be scanned is "$DIRSIZE".";

 clamscan -ri "$S" >> "$LOGFILE";

 # get the value of "Infected lines"
 MALWARE=$(tail "$LOGFILE"|grep Infected|cut -d" " -f3);

 # if the value is not equal to zero, send an email with the log file attached
 if [ "$MALWARE" -ne "0" ];then
 # using heirloom-mailx below
 echo "$EMAIL_MSG"|mail -a "$LOGFILE" -s "Malware Found" -r "$EMAIL_FROM" "$EMAIL_TO";
 fi 
done

exit 0

스크립트 권한 수정

# chmod 0755 /root/clamscan_daily.sh


crontab 등록

# crontab -e

# 아래 내용추가 (매일 오전 3시30분에 수행) # Daily AntiVirus Check 30 03 * * * /root/clamscan_daily.sh



8. 주된 사용법

/usr/local/clamav/bin/clamscan -rv /dir  

디렉토리 (하위포함) 를 스캔


/usr/local/clamav/bin/clamscan -riv /dir  

디렉토리 (하위포함) 를 스캔하여 감염된 파일을 화면 출력


/usr/local/clamav/bin/clamscan -riv --move=/home/infected /dir 

디렉토리 (하위포함) 를 스캔하고 감염된 파일을 /home/infected/로 이동. 이때 /home/infected 디렉토리는 미리 생성되어 있어야 한다.


9. 데몬 수동 실행

/usr/local/clamav/sbin/clamd –config-file=/usr


댓글