[무료 리눅스 linux 백신, 안티바이러스] 무료 리눅스 백신 ClamAV 이용 및 문제 해결법

리눅스 서버 사용자는 적지만 매우 중요한 데이타를 담고 있기 때문에 컴퓨터 바이러스나 멀웨어로부터 안전하게 보호할 수 있는 안전 장치가 필요합니다. 이를 위한 무료 리눅스 백신 중 가장 평가가 좋은 ClamAV 이용 방법에 대해서 알아보겠습니다.

바이러스는 사용자가 많을수록 많기 때문에 윈도우즈 사용 시 백신 설치가 아주 중요합니다. 컴퓨터 바이러스들이 기승을 부리면서 한때는 한 컴퓨터안에 여러가지 백신을 설치해 놓는 것이 유행이다시피 한적도 있습니다.

그러나 바이러스나 멀웨어라는 것이 특정 패턴을 가지고 있다보니 바이러스나 멀웨에에 대한 체계적인 데이타베이스를 가진 프로그램 하나면 충분하고 여러가지 백신 사용은 오히려 문제 발생 소지가 크다는 지적도 있기 때문에 요즘엔 윈도우즈10에서 기본 제공 프로그램을 일반적으로 사용합니다.

여러 유료 백신 프로그램들이 있지만 마이크로소프트에서 제공하는 기본 보안 프로그램도 나쁘지 않다는 평가가 많기 때문이죠.

상대적으로 사용자가 적은 리눅스 서버도 마찬가지입니다. 리눅스 서버는 상대적으로 이러한 바이러스 공격이 적다는 평가를 받아 왔습니다.

리룩스 취약점이 상대적으로 적고 사용자가 상대적으로 적기 때문에 바이러스로 이익을 얻을 수 있는 이익이 상대적으로 적기 때문일까요? 그럼에도 불구하고 이러한 공격이 상대적으로 적다는 것이지 없는 것은 아니므로 대비가 필요합니다.

그래서 우분투 서버에서 제반 바이러스 및 멀웨어를 탐지하고 스캔할 수 있는 솔류션으로 ClamAV를 선택하고 이를 활용하는 방업을 알아 보도록 하겠습니다.

리눅스 백신 ClamAV란?

ClamAV(Clam AntiVirus)는 시스코 시스템즈에서 지원하는 오픈소스 소프트웨어 기반 바이러스 검사 소프트웨어입니다. 오픈 소스에서 보듯 철저히 무료로 사용할 수 있습니다.

이는 유닉스뿐 아니라, AIX, BSD, HP-UX, 리눅스, OS X, 오픈VMS, OSF, 솔라리스 그리고 마이크로소프트 윈도우즈에서도 실행되는 크로스 플랫폼 소프트웨어로 알려져 있습니다.

원래는 메일 서버에서 이메일 내 바이러스 검사를 위해서 개발한 것인데 이후 바이러스를 비롯한 멀웨어 등 수많은 종류의 악성 소프트웨어를 찾아내는 소프트웨어로 발전했습니다.

ClamAV 데이타 센터는 ClamAV.net에 있는데 전 세계에서 발생하는 바이러스 구조에 대한 방대한 자료를 확보하고 있으며 주기적으로 업데이트 및 공개하고 있습니다.

위에서 설명했듯이 메일 검색에서 시작해서 그만큼 날리지가 쌓여서인지 메일 게이트웨이 검색 소프트웨어의 오픈 소스 표준으로 사용됩니다.

또한 무료 바이러스 백신 프로그앰으로 다른 유료 백신들과도 비교될 정도로 무료 백신으로서는 안정성과 인지도를 가지고 있습니다.

ClamAV 설치 및 이용 방법

우분투에서 ClamAV 설치는 아주 간단합니다. 예전에는 복잡한 과정을 거쳤는데 지금은 apt-get 명령으로 간단히 실행할 수 있습니다.

 
sudo apt-get install clamav

Code language: PHP (php)

그러면 아래와 같은 메세지가 나오면서 설치되기 시작합니다.

 
~# apt-get install clamav Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: clamav-base clamav-freshclam libclamav9 libtfm1 Suggested packages: clamav-docs libclamunrar9 The following NEW packages will be installed: clamav clamav-base clamav-freshclam libclamav9 libtfm1 0 upgraded, 5 newly installed, 0 to remove and 3 not upgraded. Need to get 1,133 kB of archives. After this operation, 3,915 kB of additional disk space will be used. Do you want to continue? [Y/n] Y

Code language: PHP (php)

다음으로는 바이러스 데이타베이스 업데이트를 실시합니다.

 
sudo freshclam

Code language: PHP (php)

바이러스 검사는 clamscan 명령을 사용합니다.
가본적인 명령 포맷은 아래와 같습니다.

 
sudo clamscan -r -i DIRECTORY

Code language: PHP (php)

예를들어 home디렉토리의 하위디렉토리까지 검사한다면 아래 명령을 사용합니다. 옵션 -r은 하위 폴더까지 모두 검사한다는 것입니다.

 
clamscan -r /home

Code language: PHP (php)

위는 검사만 한 경우인데요. 검사 후 바이러스 감염 파일 발견 시 특정 폴더로 이동시키는 경우 아래 명령을 사용합니다.

검사 결과 바이러스 감염된 파일이 있으면 /virus 폴더로 강제 이동시키는 옵션입니다.

 
clamscan -r /home --move=/virus

Code language: PHP (php)

바이러스 검사에는 많은 시간이 걸립니다. 저는 시간이 많이 걸려 검사 명령을 내리고는 잤습니다. 최소 2시간이상 걸리는 듯 하더군요.

검사가 모두 끝나면 아래와 같은 검사 요약을 출력해 줍니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 
----------- SCAN SUMMARY ----------- Known viruses: 7336539 Engine version: 0.102.3 Scanned directories: 58145 Scanned files: 478294 Infected files: 0 Total errors: 52481 Data scanned: 20653.49 MB Data read: 57326.96 MB (ratio 0.36:1) Time: 3070.948 sec (51 m 10 s)

ClamAV 바이러스 정의 업데이트 시 에러 해결

ClamAV는 기본적으로 사용자 id를 clamav를 사용합니다.

그런데 서버 hostname이 인증되지 않아서인지 설치도중 ‘clamav’라는 사용자가 없다는 메세지가 나오며 오랬동안 설치를 멈추는 현상이 발생합니다.

그리고 local host name이 인증되지 않았다는 메세지를 뿜어냅니다. 아래와 같은 메세지..

 
id: ‘clamav’: no such user WARNING: local host name (etrend) is not qualified; see cf/README: WHO AM I?

Code language: PHP (php)

시간이 지나면 나머지를 알아서 설치합니다. 그러나 데이타베이스를 업데이트하기 위해 freshclam 명령을 주면 에러 메세지를 보입니다.

 
~# sudo freshclam ERROR: /var/log/clamav/freshclam.log is locked by another process ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log). ERROR: initialize: libfreshclam init failed. ERROR: Initialization error!

Code language: PHP (php)

이 경우 아래와 같은 명령어를 사용해서 문제를 해결합니다.

 
sudo lsof /var/log/clamav/freshclam.log sudo pkill -15 -x freshclam sudo /etc/init.d/clamav-freshclam stop sudo freshclam sudo /etc/init.d/clamav-freshclam start

Code language: PHP (php)

크론탭에서 매일 자동 실행 명령 추가

그리고 이 프로그램은 서버에 상주하면서 실시간 모니터링하지 않기 때문에 주기적으로 실행시켜서 모니터링 비슷한 효과를 내는 것이 필요합니다.

리눅스에서는 이를 위한 크론 기능이 활성화 되어 있으니 이를 활용하면 아쉬운대로 사용할만 합니다.

우선 sh 파일을 만듭니다. 저는 바이러스 데이타베이스 업데이트하는 freshclam 명령이 잘 먹히지 않아서 매번 이를 해결하는 프로세스를 주가했습니다.

 
nano clamav.sh

Code language: PHP (php)

여기에 아래와 같은 내용을 추가합니다.

 
#!/bin/sh # 바이러스 데이타베이스 업데이트 lsof /var/log/clamav/freshclam.log pkill -15 -x freshclam /etc/init.d/clamav-freshclam stop freshclam /etc/init.d/clamav-freshclam start # ClamAV 검사 (1회/일) clamscan -r /

Code language: PHP (php)

그 다음에는 이 파일에 권한을 부여합니다.

 
chmod +x clamav.sh

Code language: PHP (php)

그 다음에는 크론에 이 파일 실행을 추가해야 겠죠?
이는 아시다시피 crontab -e 명령을 사용합니다.

 
crontab -e

Code language: PHP (php)

크랜탭에서 아래 내용을 추가해 줍니다. 매일 새벽 4시 15분에 위에서 정의한 clamav.sh를 실행하라는 명령입니다.

 
15 04 * * * clamav.sh

Code language: PHP (php)

크론을 시작합니다.

 
service cron start

Code language: PHP (php)

크론이 제대로 작동하는지 한번 확인해 봅니다.

 
service cron status

Code language: PHP (php)

그러면 아래와 같이 크론이 active되고 있다고 나오면 OK입니다.

 
# service cron status ● cron.service - Regular background program processing daemon Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2020-06-22 23:06:34 KST; 2 days ago Docs: man:cron(8) Main PID: 823 (cron) Tasks: 1 (limit: 4620) Memory: 600.9M CGroup: /system.slice/cron.service └─823 /usr/sbin/cron -f

 

[출처] https://happist.com/573610/%EB%AC%B4%EB%A3%8C-%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%B0%B1%EC%8B%A0-clamav-%EC%9D%B4%EC%9A%A9-%EB%B0%8F-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0%EB%B2%95

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
28 [Linux programming][turbo c] The libXbgi Library file 졸리운_곰 2023.02.05 248
27 [unix][linux][compiler] Yacc와 Lex 시작하기 file 졸리운_곰 2021.09.08 261
26 [Visual Studio 2019] Visual Studio로 Linux 원격 개발하기(Ubuntu 설치부터 SSH 서버접속까지) file 졸리운_곰 2021.08.29 235
25 [unix][emacs] 이맥스와 함께하는 개발환경 . emacs 튜토리얼 file 졸리운_곰 2021.08.18 319
24 [Linux][C/C++] cmake 사용법과 활용 file 졸리운_곰 2020.11.08 552
23 [CMake] Linux C/C++ cmake 시작하기 졸리운_곰 2020.11.08 398
22 [C++] CMake Build System file 졸리운_곰 2020.11.08 328
21 Windows 10에 한국어 입출력이 가능한 리눅스 데스크톱 설치하기 file 졸리운_곰 2020.06.29 289
20 wxwidgets 과 codeblock 설치(리눅스) 졸리운_곰 2019.12.25 228
19 ubuntu 18.04.2 LTS 개발환경 세팅 졸리운_곰 2019.12.25 223
18 Ubuntu 16.04 개발환경 세팅하기! 졸리운_곰 2017.03.21 356
17 tcl/tk 자료 secret 졸리운_곰 2017.02.23 0
16 CentOS xrdp 설정 (원격데스크탑) 졸리운_곰 2017.02.01 453
15 Five lightweight Linux desktop worlds for extreme open-sourcers file 졸리운_곰 2016.05.12 1022
14 Logging every shell command 졸리운_곰 2016.05.11 581
13 How to keep a detailed audit trail of what’s being done on your Linux systems file 졸리운_곰 2016.05.11 467
12 Docker의 소개와 간단한 사용법 file 졸리운_곰 2015.11.24 804
11 Make Self-Extracting Archives with makeself.sh 졸리운_곰 2015.11.07 363
10 리눅스 간단 배포 Linux simple deploy 제작 : make self file 졸리운_곰 2015.11.07 352
9 Joinc: Linux 커널에서의 디바이스 드라이버 작성 졸리운_곰 2015.06.16 833
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED