보안 도구 · 4 min read · Dec 09, 2025

리눅스 서버에서 바이러스, 악성코드 및 루트킷을 스캔하는 세 가지 도구

인터넷에 연결된 서버는 하루 종일 지속적인 공격과 스캔에 노출됩니다. 방화벽과 정기적인 시스템 업데이트는 시스템을 안전하게 유지하기 위한 좋은 첫 번째 방어 수단이지만, 공격자가 침투하지 않았는지 정기적으로 확인해야 합니다. 이 튜토리얼에서 설명하는 도구는 이러한 테스트를 위해 만들어졌으며, 악성코드, 바이러스 및 루트킷을 스캔합니다. 이 도구들은 정기적으로, 예를 들어 매일 밤 실행하고 이메일을 통해 보고서를 보내야 합니다. 또한, 높은 부하, 의심스러운 프로세스 또는 서버가 갑자기 악성코드를 전송하기 시작할 때와 같은 의심스러운 활동을 감지할 때 시스템을 스캔하기 위해 Chkrootkit, Rkhunter 및 ISPProtect를 사용할 수 있습니다.

모든 스캐너는 루트 사용자로 실행해야 합니다. 실행하기 전에 루트로 로그인하십시오. 우분투에서는 다음을 사용하십시오:

sudo -s

루트 사용자로 전환합니다.

chkrootkit - 리눅스 루트킷 스캐너

Chkrootkit은 고전적인 루트킷 스캐너입니다. 서버에서 의심스러운 루트킷 프로세스를 확인하고 알려진 루트킷 파일 목록을 확인합니다.

배포판에 포함된 패키지를 설치하거나(데비안 및 우분투에서는 다음을 실행합니다)

apt-get install chkrootkit

CHKrootkit 설치

또는 www.chkrootkit.org에서 소스를 다운로드하여 수동으로 설치하십시오:

wget --passive-ftp ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz  
tar xvfz chkrootkit.tar.gz  
cd chkrootkit-*/  
make sense

소스에서 CHKRootkit 빌드

그 후, chkrootkit 디렉토리를 다른 곳으로 이동할 수 있습니다. 예를 들어 /usr/local/chkrootkit로 이동하십시오:

cd ..  
mv chkrootkit-/ /usr/local/chkrootkit

그리고 쉽게 접근할 수 있도록 심볼릭 링크를 만듭니다:

ln -s /usr/local/chkrootkit/chkrootkit /usr/local/bin/chkrootkit

chkrootkit로 서버를 확인하려면 다음 명령을 실행하십시오:

chkrootkit

일반적인 오탐지 보고서는 다음과 같습니다:

Checking `bindshell'...  
                     INFECTED (PORTS:  465)

이 메시지를 이메일 서버에서 받으면 걱정하지 마십시오. 이는 메일 시스템의 SMTPS(보안 SMTP) 포트이며 잘 알려진 오탐지입니다.

chkrootkit을 크론 작업으로 실행하고 결과를 이메일로 받을 수도 있습니다. 먼저, chkrootkit이 서버에 설치된 경로를 확인하십시오:

which chkrootkit

예:

root@server1:/tmp/chkrootkit-0.52# which chkrootkit  
/usr/sbin/chkrootkit

Chkrootkit은 /usr/sbin/chkrootkit 경로에 설치되어 있으며, 이 경로는 아래의 크론 라인에서 필요합니다:

실행:

crontab -e

이와 같은 크론 작업을 생성하십시오:

0 3 * * * /usr/sbin/chkrootkit 2>&1 | mail -s "chkrootkit output of my server" [email protected])

이렇게 하면 매일 밤 3시에 chkrootkit이 실행됩니다. chkrootkit의 경로를 위 명령에서 받은 경로로 바꾸고 이메일 주소를 실제 주소로 교체하십시오.

Lynis - 범용 보안 감사 도구 및 루트킷 스캐너

Lynis(구 rkhunter)는 리눅스 및 BSD 기반 시스템을 위한 보안 감사 도구입니다. 시스템의 많은 보안 측면과 구성을 자세히 감사합니다. https://cisofy.com/downloads/lynis/에서 최신 Lynis 소스를 다운로드하십시오:

cd /tmp  
wget https://downloads.cisofy.com/lynis/lynis-3.0.7.tar.gz  
tar xvfz lynis-3.0.7.tar.gz  
mv lynis /usr/local/  
ln -s /usr/local/lynis/lynis /usr/local/bin/lynis

Lynis 보안 스캐너 설치

이렇게 하면 Lynis가 /usr/local/lynis 디렉토리에 설치되고 쉽게 접근할 수 있도록 심볼릭 링크가 생성됩니다. 이제 다음을 실행하여

lynis update info

최신 버전을 사용하고 있는지 확인하십시오.

Lynis 보안 스캐너 업데이트

이제 다음을 실행하여 시스템에서 루트킷을 스캔할 수 있습니다:

lynis audit system

Lynis는 몇 가지 검사를 수행한 후 결과를 읽을 수 있는 시간을 제공합니다. [ENTER]를 눌러 스캔을 계속하십시오.

리눅스 보안 감사

마지막에 스캔 요약이 표시됩니다.

Lynis의 보안 감사 결과

Lynis를 비대화식으로 실행하려면 –quick 옵션으로 시작하십시오:

lynis --quick

Lynis를 자동으로 밤에 실행하려면 다음과 같은 크론 작업을 생성하십시오:

0 3 * * * /usr/local/bin/lynis --quick 2>&1 | mail -s "lynis output of my server" [email protected])

이렇게 하면 매일 밤 3시에 Lynis가 실행됩니다. 이메일 주소를 실제 주소로 바꾸십시오.

ISPProtect - 웹사이트 악성코드 스캐너

ISPProtect는 웹 서버를 위한 악성코드 스캐너로, 웹사이트 파일 및 WordPress, Joomla, Drupal 등과 같은 CMS 시스템에서 악성코드를 스캔합니다. 웹 호스팅 서버를 운영하는 경우, 호스팅된 웹사이트가 서버의 가장 많이 공격받는 부분이므로 정기적으로 상태 점검을 수행하는 것이 좋습니다. ISPProtect는 5개의 스캐닝 엔진을 포함합니다:

  • 서명 기반 악성코드 스캐너.
  • 휴리스틱 악성코드 스캐너.
  • 구식 CMS 시스템의 설치 디렉토리를 보여주는 스캐너.
  • 전체 서버의 구식 WordPress 플러그인을 보여주는 스캐너.
  • 잠재적으로 악성 콘텐츠를 확인하는 MySQL 데이터베이스 콘텐츠 스캐너.

ISPProtect는 무료 소프트웨어가 아니지만, 등록 없이 서버에서 악성코드를 확인하거나 감염된 시스템을 정리하는 데 사용할 수 있는 무료 체험판이 있습니다. 소프트웨어의 전체 버전을 한 번 사용할 수 있는 무료 라이센스 키는 간단히 ‘trial‘입니다.

ISPProtect는 서버에 PHP와 ClamAV가 설치되어 있어야 하며, 대부분의 호스팅 시스템에서 이 조건이 충족됩니다. ClamAV는 ISPProtect의 첫 번째 스캔 레벨에서 ISPProtect의 자체 악성코드 서명 세트를 사용합니다. 아직 명령줄 PHP가 설치되지 않은 경우, 다음을 실행하십시오:

sudo apt install php7.4-cli php7.4-curl clamav

데비안 11 또는 우분투 20.04에서 또는

yum install PHP php-curl

AlmaLinux, Fedora, CentOS 또는 Rocky Linux에서.

다음 명령을 실행하여 ISPProtect를 설치하십시오.

mkdir -p /usr/local/ispprotect
chown -R root:root /usr/local/ispprotect
chmod -R 750 /usr/local/ispprotect
cd /usr/local/ispprotect
wget http://www.ispprotect.com/download/ispp_scan.tar.gz
tar xzf ispp_scan.tar.gz
rm -f ispp_scan.tar.gz
ln -s /usr/local/ispprotect/ispp_scan /usr/local/bin/ispp_scan

ISPProtect를 시작하려면 다음을 실행하십시오:

ispp_scan

스캐너는 자동으로 업데이트를 확인한 후 키를 요청합니다(여기서 ‘trial’을 입력하십시오) 그리고 웹사이트의 경로를 요청합니다. 일반적으로 /var/www입니다.

ISPProtect로 리눅스에서 악성코드 스캔

Please enter scan key: <-- trial  
Please enter path to scan: <-- /var/www

스캐너가 이제 스캔을 시작합니다. 스캔 진행 상황이 표시됩니다. 감염된 파일의 이름은 스캔이 끝난 후 화면에 표시되며, 결과는 나중에 사용할 수 있도록 ISPProtect 설치 디렉토리에 파일로 저장됩니다:

ISPProtect 스캔 진행 상황

ISPProtect를 업데이트하려면 다음 명령을 실행하십시오:

ispp_scan --update

ISPProtect를 자동으로 야간 크론 작업으로 실행하려면 nano로 크론 파일을 생성하십시오:

nano /etc/cron.d/ispprotect

그리고 다음 줄을 삽입하십시오:

0 3  * * *   root  /usr/local/ispprotect/ispp_scan --update && /usr/local/ispprotect/ispp_scan --path=/var/www --email-results=root@localhost --non-interactive --scan-key=AAA-BBB-CCC-DDD
Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.