clamav 안티 바이러스, 악성코드 프로그램 설치 & 우분투 PC 적용

리눅스/Security|2017. 8. 11. 09:02
반응형

1. 설치


# yum install clamav clamd


* 바이러스 감염 파일이 필요한 경우 clamav-testfiles 패키지도 같이 설치해줍니다.

   파일 경로는 /usr/share/clamav-testfiles/ 입니다.


설치가 되지 않을 경우 epel-release 를 먼저 설치해줍니다.


# yum install epel-release



2. DB 업데이트


최신 DB 를 업데이트 합니다.


# freshclam


DB 다운로드 사이트에 접속이 잘 안되므로 업데이트가 되지 않을 경우 명령을 몇 번 더 재실행 해봅니다.



3. 검사


실시간으로 검사하지는 않으므로 cron 등을 이용해 주기적으로 로그를 남기도록 하는것이 좋습니다.


1) 특정 디렉토리 검사


# clamscan -r /디렉토리명


* 명령 실행 후 멈춘 것 같은 현상이 나타나는데, 실제 스캔을 시작하기까지 어느 정도의 시간이 소요됩니다.

   파일 개수나 용량이 적은 디렉토리의 경우도 동일합니다. 기다려보세요~!


2) 로그 생성


# clamscan -r /디렉토리명 -l scan.log



※ 팁


# service clamd start 이후


# clamdscan -r /디렉토리명 과 같이 구동하면 스캐닝 시간이 단축 됩니다.


항상 데몬형태로 떠있으며 엔진을 알아서 받아와서 적용하기때문에 clamscan 할때마다

엔진 버전 체크하는 시간이 줄어들어서 그런것으로 알고 있습니다.



※ 우분투 PC


우분투 PC 에 실제로 적용한 사례를 기술하였습니다. 필요하신 분은 내용을 참고하여 환경에 맞게 수정해 사용하시기 바랍니다.


(root 계정에서)


# apt -y install inotify-tools asciidoctor


# mkdir scan_result


# vi scan.sh


#!/bin/bash


find /root/scan_result/ -ctime +30 -exec rm -f {} \;

date=`date +%Y%m%d`

clamscan -r / -l /root/scan_result/${date}.log

cut_from=`cat -n /root/scan_result/${date}.log |grep "SCAN SUMMARY" |tail -n 1 |awk {'print $1'}`

cut_to=`cat -n /root/scan_result/${date}.log |tail -n 1 |awk {'print $1'}`


echo $date > /home/sysdocu/scan_result.txt

sed -n "${cut_from},${cut_to}p" /root/scan_result/${date}.log >> /home/sysdocu/scan_result.txt


# vi /etc/crontab


00 9    * * *   root    sh /root/scan.sh    # 추가 


clamav 를 매일 아침 9시에 root 권한으로 실행하도록 하였습니다.



(sysdocu 계정에서)


스캐닝이 완료되면 브라우저를 통해 결과를 띄우도록 합니다.


$ touch scan_result.txt


$ vi scan_result.sh


#!/bin/bash


while :

do


    # 파일 변화 감지

    inotifywait -qm --event modify --format '%w' scan_result.txt | asciidoctor scan_result.txt


    # 파일 생성 대기

    sleep 10


    # 결과가 있는 경우

    LINE=`cat scan_result.txt |grep "SCAN SUMMARY" |wc -l`

    if [ "$LINE" == "1" ]; then

        # chrome 으로 결과를 확인 할 경우

        sudo -u sysdocu /opt/google/chrome/chrome "scan_result.txt" &

        # gedit 로 결과를 확인 할 경우

        #sudo -u sysdocu gedit "scan_result.txt" &

    fi


    # 브라우저 뜰 때까지 내용 초기화 대기

    sleep 10


    # 내용 초기화

    cat /dev/null > scan_result.txt


    # 만약을 위해 10분 대기

    sleep 600


done


* 자칫 잘못하면 inotifywait 에서 기다리지 않고 넘어가면 작업이 불가능할 정도로 크롬 브라우저 창이 계속 생성될 수 있으므로 안전하게 sleep 600 을 꼭 주도록 합니다.


PC 부팅시 실행되도록 하고, 현재 세션에서도 실행을 한 번 해줍니다.


$ echo "bash /home/sysdocu/scan_result.sh &" >> /home/sysdocu/.profile


$ bash /home/sysdocu/scan_result.sh &


반응형

댓글()