[무료 리눅스 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

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
20 [visual c++] 오류 D8016 '/ZI'과(와) '/Gy-' 명령줄 옵션이 호환되지 않습니다. file 졸리운_곰 2023.11.19 322
19 [visual studio] Bring Your MFC Application to the Web mfc 어플리케인 web 구동 file 졸리운_곰 2023.03.20 279
18 [visual studio] [borland c] Using the WinBGIm Graphics Library with Visual Studio 2005/2008 2010 file 졸리운_곰 2023.02.05 315
17 [Visual Studio][boost c++] [C++] boost 설치 및 visual studio 설정 file 졸리운_곰 2021.11.18 464
16 winbgi Borland Turbo C routines in MS Visual C++ file 졸리운_곰 2017.03.04 290
15 VS 프로젝트 이름 변경 졸리운_곰 2017.02.12 355
14 Retrieving CPU Load Percent total in Windows with C++ 졸리운_곰 2016.12.31 487
13 Cpu 사용율 알아내는 소스 졸리운_곰 2016.12.31 471
12 [MFC] Find local network hosts ip, 로컬네트워크의 IP 주소 알아내기 졸리운_곰 2014.08.27 766
11 (Unicode) CString <==> const char* 졸리운_곰 2014.08.27 640
10 Creating a Child Process with Redirected Input and Output 졸리운_곰 2014.08.17 573
9 C++로 짠 간단한 윈도우 서비스 file 졸리운_곰 2014.05.27 1003
8 VC++ 파일에서 한 라인씩 읽기 졸리운_곰 2014.03.02 1199
7 Search Title Of Opened Windows file 졸리운_곰 2014.02.27 978
6 MFC VC++ 파일의 존재유무 체크 졸리운_곰 2014.02.18 1587
5 MFC VC++ : windows tcpip socket Send() function example 졸리운_곰 2014.02.18 1593
4 Check whether one specific process is running on windows with C++ 졸리운_곰 2014.02.18 1099
3 VC++ : Win32 console App run as to be hide (background) 졸리운_곰 2014.02.18 1245
2 VC++ : Win32 console App run as to be hide (background) 졸리운_곰 2014.02.18 1256
1 VC++ : windows : TCPIP SOCKET SERVER and CLIENT 졸리운_곰 2014.02.18 1097
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED