멀웨어 스캔을 위한 리눅스 백신 Maldet 사용법

Updated on 2020-07-25 by

오늘은 LMD(Linux Malware Detect)로 알려진 리눅스 서버 멀웨어 감염 여부를 체크해주는 리눅스 멀웨어 스캐너인 Maldet를 사용해 정기 멀웨어 스캔 및 스캔 결과를 이메일로 받아보는 방법에 대해서 알아보도록 하겠습니다.

이전 글에서도 여러 번 말씀드렸지만 우분투를 비롯한 리눅스를 사용한 운영체제에서도 윈도우즈만큼은 아니지만 바이러스나 멀웨어를 퍼트리는 해커들이 활발하게 활동하고 있습니다.

따라서 정기적으로 바이러스나 멀웨어 감염 여부를 점검해 보는 것이 좋습니다.

이를 위해 ClamAV가 많이 사용되지만 멀웨어 스캔을 위해서 Maldet도 많이 사용됩니다. 그래서 저는 테스트삼아 두가지를 모두 사용해 정기적으로 스캔토록 만들었습니다.

여기에서는 Maldet를 할용해 정기적으로 리눅스 서버 멀웨어 스캔 및 스캔 결과를 이메일로 받아보는 방법에 대해서 살펴보겠습니다.

Maldet 설치 및 사용

우서 Maldet를 설치하는 방법을 살펴봅니다. 이하는 모두 우분투하에서 진행되는 방법입니다.

어선 /opt 폴더로 이동합니다.

cd /opt/Code language: PHP (php)

Maldet 공식 사이트인 rfxn.com에서 Maldet 최신 버젼을 다운받습니다. 이는 아래 명령어를 사용합니다.

wget http://www.rfxn.com/downloads/maldetect-current.tar.gzCode language: PHP (php)

최신 버전은 다운받았지만 이는 압축 파일이므로 압축을 풀어 줍니다.

tar xfz maldetect-current.tar.gzCode language: PHP (php)

압축을 풀고 ls -l 명령어로 어떤 파일 및 폴더가 생겼는지 확인해보면 maldetect-1.6.4와 같은 폴더가 생긴 것을 볼 수 있습니다.

트Maldet 설치 폴더 파일 리스트 maldetect-1.6.4

이제 이 폴더로 이동합니다. Maldet 버젼에 따라 폴더 이름이 달라지므로 확인 후 폴더 이동하는 것이 좋습니다.

cd maldetect-1.6.4Code language: PHP (php)

이 설치 폴더로 이동한 다음 Maldet 설치 스크립트 파일, install.sh을 만날 수 있는데요. 이를 실행해 줍니다.

./install.shCode language: PHP (php)

이제 설치스크립트가 실행되면서 설치를 시작합니다.

리눅스 백신 Maldet 설치 화면

Maldet 설정

이제 Maldet 설치가 끝났으면 설정으로 들어갑니다.

설정 파일은 /usr/local/maldetect/conf.maldet인데요. 이를 편집기로 수정합니다.

nano /usr/local/maldetect/conf.maldetCode language: PHP (php)

이 설정 파일에서는 주로 아래와 같은 내용을 변경해 줍니다. 뭐 사용자 목적에 따라서 적절한 옵션을 변경할 수 있습니다.

스캔 후 이메일 통보 관련

먼저 스캔 결과를 이메일로 통보 여부, 값이 0이면 통보하지 않고, 1인 경우 메일 통보

email_alert=1Code language: PHP (php)

실제 편집 파일에 해당 건에는 아래와 같은 주석이 달려 있습니다.

# Enable or disable e-mail alerts, this includes application version
# alerts as well as automated/manual scan reports. On-demand reports
# can still be sent using '--report SCANID user@domain.com'.
# [0 = disabled, 1 = enabled]
email_alert="1"Code language: PHP (php)

다음으로는 메일 주소를 설정합니다. 여러 메일 주소로 스캔 결과를 받아야 한다면 컴마(,)를 이용해 추가합니다.

email_addr=”user@yourdomain.com, user2@yourdomain.com”Code language: PHP (php)

실제 편집 파일에 해당 건에는 아래와 같은 주석이 달려 있습니다.

# The destination e-mail addresses for automated/manual scan reports
# and application version alerts.
# [ multiple addresses comma (,) spaced ]
email_addr=”user@yourdomain.com, user2@yourdomain.com”Code language: PHP (php)

다음으로는 Maldet가 멀웨러를 감지하고 깨끗하게 치료했다면 굳이 메일 경고하지 않는다는 옵션 선택할지를 결정합니다. 1값은 멀웨어가 치료되었다면 굳이 메일 경고를 하지 않습니다.

email_ignore_clean="0"
Code language: PHP (php)

실제 편집 파일에 해당 건에는 아래와 같은 주석이 달려 있습니다.

# Enable or disable slack alerts, this will upload the scan report as a file
# into one or more slack channels
# [0 = disabled, 1 = enabled]
slack_alert="0"Code language: PHP (php)

멀웨어 감염 파일 처리

다음에는 스캔 도중 멀웨어를 감지했다면 어떻게 할지에 대한 옵션인데요. 멀웨어에 걸린 파일을 특정 장소로 이동할지 그대로 둘지를 결정합니다.

값이 0이라면 감염되었다는 경고만 하고 파일은 그대로 유지합니다. 1 값을 주면 특정 장소로 이동 조치하고 경고해 줍니다.

quarantine_hits=1Code language: PHP (php)

실제 편집 파일에 해당 건에는 아래와 같은 주석이 달려 있습니다.

# The default quarantine action for malware hits
# [0 = alert only, 1 = move to quarantine & alert]
quarantine_hits="1"Code language: PHP (php)

그 다음에는 감염된 멀웨어를 치료할지 여부를 선택합니다. 치료한다면 1값을 입력하고 그대로 두려면 0값을 유지합니다.

quarantine_clean=1Code language: PHP (php)

실제 편집 파일에 해당 건에는 아래와 같은 주석이 달려 있습니다.

# Try to clean string based malware injections
# [NOTE: quarantine_hits=1 required]
# [0 = disabled, 1 = clean]
quarantine_clean="1"Code language: PHP (php)

이번에는 조금 더 강력한 조치를 할 것인지를 선택하는데요. 멀웨어에 감염된 사용자는 서버에서 활동을 중지시키는 조치인데요 .

0값을 입력 시 멀웨어에 감염되었다고 판명되어도 그 사용자는 그대로 작동하며, 만약 1값을 입력시 멀웨어가 팀지되면 그 사용자는 사용이 중지됩니다.

1인 사용자 서버는 서비스사 멈추는 것이므로 신중하게 선택할 필요가 있습니다. 아무래도 서비스 중단까지는 부담스러우니 0값을 사용합니다.

quarantine_suspend_user=0Code language: PHP (php)

여기에는 아래와 같은 주석과 설명이 달려 있습니다.

# The default suspend action for users wih hits
# Cpanel suspend or set shell /bin/false on non-Cpanel
# [NOTE: quarantine_hits=1 required]
# [0 = disabled, 1 = suspend account]
quarantine_suspend_user="0"Code language: PHP (php)

Maldet 실행

Maldet 설정이 끝났으면 Maldet를 실행해 봅니다. 우선 Maldet의 주요 실행 옵션을 살펴볼까요?

  • -u, –update-sigs [–force]
    데이타베이스 업데이트
  • -a, –scan-all PATH
    모든 파일을 스캔
    예) maldet -a /home/username
  • -e, –report SCANID email
    메일 보내기
    예) maldet –report SCANID user@domain.com

특정 폴더를 전부 스캔 시 아래와 같은 명령어 사용

maldet -a /home/usernameCode language: PHP (php)

그러면 아래와 같은 메세지를 내면서 스캔을 시작한 후 그 결과를 표시해 줍니다.

Linux Malware Detect v1.6.4
            (C) 2002-2019, R-fx Networks <proj@rfxn.com>
            (C) 2019, Ryan MacDonald <ryan@rfxn.com>
This program may be freely redistributed under the terms of the GNU GPL v2

maldet(46026): {scan} signatures loaded: 17041 (14221 MD5 | 2035 HEX | 785 YARA | 0 USER)
maldet(46026): {scan} building file list for /home/happist, this might take awhile...
maldet(46026): {scan} setting nice scheduler priorities for all operations: cpunice 19 , ionice 6
maldet(46026): {scan} file list completed in 2s, found 85826 files...
maldet(46026): {scan} found clamav binary at /usr/bin/clamdscan, using clamav scanner engine...
maldet(46026): {scan} scan of /home/happist (85826 files) in progress...
maldet(46026): {scan} clamscan returned an error, check /usr/local/maldetect/logs/clamscan_log for details!

maldet(46026): {scan} scan completed on /home/happist: files 85826, malware hits 0, cleaned hits 0, time 491s
maldet(46026): {scan} scan report saved, to view run: maldet --report 200707-2004.46026
Code language: PHP (php)

새롭게 뉴스레터를 시작했습니다.

1️⃣ 주식 등 투자 정보 : 기업 분석, IB 투자의견 등 투자 관련 내용
..... 테슬라 실적 및 IB들의의 테슬라 투자의견
2️⃣ 사례 및 트렌드 : 사례연구와 트렌드 관련 괜찮은 내용
.....유튜브와 경쟁대신 구독 전환한 비디오 플래폼 비메오 사례

서울에 생긴 Vultr 서버 100$ 프로모션

안녕하세요?
새로운 사이트 구축을 위한 신규 서버를 고민하신다면 , 서울 리젼이 생겨 더욱 빨라진 Vultr 서버를 Vultr 100$ 프로모션으로 이용해 보세요.

아래 프로모션 코드 링크를 통해 Vultr에서 서버 구축 후 1달 이상 사용 및 $25이상 결제 時 추가 100$을 주는 프로모션입니다.

Vultr는 서울에도 리젼이 있어 매우 빠르고, 아마존 웹 서비스(AWS)보다 성능이 높으며 가장 가성비가 뛰어납니다.

거기다 사용자 UI도 좋고, 15개까지 스냅샷을 무료로 제공하기 때문에 관리하기 좋습니다. 그리고 지금 100$ 프로모션처럼 가격적인 메리트도 있습니다.

우분투 20.04와 PHP 8 기반 워드프레스 설치 방법

가상 서버를 운영하고픈 勇者에게 전하는 가상 서버 운영 입문 노하우 – Vultr 가상서버호스팅(VPS)를 중심으로

워드프레스 최적화를 위한 18개월간의 고민, 그 노하우를 담다.

도쿄 리젼과 비교해 본 Vultr 서울 리젼 사용기

가성비가 뛰어난 Vultr 가상서버호스팅(클라우드호스팅,VPS) 사용기

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments