웹사이트 검색

Ubuntu 14.04에서 OSSEC 보안 알림을 설치 및 구성하는 방법


소개

서버에서 승인된 활동과 승인되지 않은 활동을 어떻게 추적합니까?

OSSEC는 활동을 추적하기 위해 서버에 설치할 수 있는 도구 중 하나입니다.

OSSEC는 로그 분석, 무결성 검사, Windows 레지스트리 모니터링, 루트킷 탐지, 시간 기반 경고 및 활성 응답을 수행하는 오픈 소스 호스트 기반 침입 탐지 시스템(HIDS)입니다. 서버/에이전트 모드에서 하나의 서버 또는 수천 대의 서버를 모니터링하는 데 사용할 수 있습니다.

적절하게 구성된 경우 OSSEC는 서버에서 일어나는 일에 대한 실시간 보기를 제공할 수 있습니다.

이 튜토리얼에서는 Ubuntu 14.04 LTS를 실행하는 하나의 DigitalOcean 서버를 모니터링하도록 OSSEC를 설치하고 구성하는 방법을 보여줍니다. 파일이 수정, 삭제 또는 서버에 추가되는 경우 OSSEC가 실시간으로 이메일로 알려줄 수 있도록 OSSEC를 구성합니다. 이는 OSSEC가 제공하는 다른 무결성 검사 기능에 추가되는 것입니다.

OSSEC은 파일 수정을 알리는 것 이상을 할 수 있지만 하나의 문서로는 모든 기능을 활용하는 방법을 보여주기에 충분하지 않습니다.

**OSSEC의 이점은 무엇입니까?

설치 및 구성 부분에 도달하기 전에 OSSEC를 사용하여 얻을 수 있는 몇 가지 구체적인 이점을 살펴보겠습니다.

다음은 /var/ossec/etc/ossec.conf 파일이 수정되었음을 보여주는 OSSEC의 이메일 알림 예입니다.

OSSEC HIDS Notification.
2014 Nov 29 09:45:15

Received From: kuruji->syscheck
Rule: 552 fired (level 7) -> "Integrity checksum changed again (3rd time)."
Portion of the log(s):

Integrity checksum changed for: '/var/ossec/etc/ossec.conf'
Size changed from '7521' to '7752'

이러한 경고를 받았고 해당 파일이 변경될 것으로 예상하지 않았다면 서버에서 승인되지 않은 일이 발생했음을 알 수 있습니다.

다음은 /etc/ossec/testossec.txt 파일이 삭제되었음을 보여주는 OSSEC의 또 다른 이메일 알림 예시입니다.

OSSEC HIDS Notification.
2014 Nov 29 10:56:14

Received From: kuruji->syscheck
Rule: 553 fired (level 7) -> "File deleted. Unable to retrieve checksum."
Portion of the log(s):

File /etc/ossec/testossec.txt was deleted. Unable to retrieve checksum.

다시 말하지만 문제의 파일을 삭제하지 않은 경우 서버에서 무슨 일이 일어나고 있는지 파악해야 합니다.

이제 앞에서 말한 내용이 OSSEC을 설치하고 싶을 만큼 간지럽다면 먼저 해야 할 몇 가지 작업이 있습니다.

전제 조건

물론 모니터링할 서버가 있어야 합니다. 이 자습서에서는 사용자가 이미 가지고 있고 이미 사용하도록 설정되어 있다고 가정합니다. 오늘 방금 설정한 서버이거나 몇 달 동안 사용한 서버일 수 있습니다. 가장 중요한 것은 액세스 권한이 있고 SSH를 통해 로그인할 수 있다는 것입니다. OSSEC 설정은 서버에 ssh하는 방법을 아직 모를 때 착수하고 싶은 것이 아닙니다.

  • 우분투 14.04 서버
  • 서버에 sudo 사용자를 생성해야 합니다. 이 예에서 사용자 이름은 sammy입니다. 그러나 이 튜토리얼은 루트 사용자로서 훨씬 쉽게 완료할 수 있습니다.

sudo su

  • 선택 사항: 로컬 SMTP 서버에서 메일을 보내려면 Postfix를 설치해야 간단한 이메일을 보낼 수 있습니다.
  • OSSEC 설치에는 약간의 컴파일이 포함되므로 gccmake가 설치되어 있어야 합니다. build-essential
  • 이라는 단일 패키지를 설치하여 둘 다 설치할 수 있습니다.\n
  • 또한 실시간 알림이 작동하는 데 필요한 inotify-tools라는 패키지를 설치해야 합니다

필요한 모든 패키지를 설치하려면 먼저 서버를 업데이트하십시오.

apt-get update

패키지를 설치합니다.

apt-get install build-essential inotify-tools

이제 예선을 정리했으므로 재미있는 부분으로 가보겠습니다.

1단계 - OSSEC 다운로드 및 확인

이 단계에서는 OSSEC tarball과 암호화 체크섬이 포함된 파일을 다운로드합니다.

이것은 보안 문서이므로 유효한 소프트웨어를 설치하고 있는지 확인하기 위해 약간의 추가 작업을 수행할 것입니다. 아이디어는 다운로드한 OSSEC tarball의 MD5 및 SHA1 체크섬을 생성하고 체크섬 파일의 체크섬과 비교하는 것입니다. 일치하는 경우 tarball이 변조되지 않았다고 가정할 수 있습니다.

작성 당시 OSSEC의 최신 서버 에디션은 버전 2.8.1입니다. 다운로드하려면 다음을 입력하십시오.

wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1.tar.gz

체크섬 파일을 다운로드하려면 다음을 입력하십시오.

wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1-checksum.txt

두 파일이 모두 있는지 확인하려면 다음을 입력하십시오.

ls -l ossec*

다음 파일이 표시됩니다.

ossec-hids-2.8.1-checksum.txt
ossec-hids-2.8.1.tar.gz

이제 다음과 같이 cat 명령을 사용하여 체크섬 파일을 살펴보겠습니다.

cat ossec-hids-2.8.1-checksum.txt

예상 출력:

MD5(ossec-hids-2.8.1.tar.gz)= c2ffd25180f760e366ab16eeb82ae382
SHA1(ossec-hids-2.8.1.tar.gz)= 0ecf1df09558dc8bb4b6f65e1fb2ca7a7df9817c

위 출력에서 중요한 부분은 = 기호 오른쪽에 있는 부분입니다. tarball의 MD5 및 SHA1 체크섬입니다.

이제 tarball에 대해 생성한 체크섬이 다운로드한 체크섬과 일치하는지 확인합니다.

tarball의 MD5sum을 생성하려면 다음을 입력하십시오.

md5sum ossec-hids-2.8.1.tar.gz

예상 출력:

c2ffd25180f760e366ab16eeb82ae382  ossec-hids-2.8.1.tar.gz

생성된 MD5 체크섬을 체크섬 파일의 체크섬과 비교합니다. 일치해야 합니다.

다음을 입력하여 SHA1 체크섬에 대해 동일한 작업을 수행합니다.

sha1sum  ossec-hids-2.8.1.tar.gz

예상 출력:

0ecf1df09558dc8bb4b6f65e1fb2ca7a7df9817c  ossec-hids-2.8.1.tar.gz

둘 다 일치하면 갈 수 있습니다. 2단계가 손짓합니다.

2단계 - OSSEC 설치

이 단계에서는 OSSEC를 설치합니다.

OSSEC은 서버, 에이전트, 로컬 또는 하이브리드 모드로 설치할 수 있습니다. 이 설치는 OSSEC이 설치된 서버를 모니터링하기 위한 것입니다. 즉, 로컬 설치를 의미합니다.

설치를 시작하기 전에 파일을 확장해야 합니다. 다음을 입력하면 됩니다.

tar -zxf ossec-hids-2.8.1.tar.gz

그런 다음 ossec-hids-2.8.1이라는 디렉터리가 있어야 합니다. 설치를 시작하려면 다음을 입력하여 해당 디렉토리로 변경(cd)해야 합니다.

cd ossec-hids-2.8.1

현재 있는 디렉토리의 내용을 보려면 다음을 입력하여 ls 명령을 사용하십시오.

ls -lgG

다음 파일과 디렉토리가 표시되어야 합니다.

total 100
drwxrwxr-x  4  4096 Sep  8 21:03 active-response
-rw-rw-r--  1   542 Sep  8 21:03 BUGS
-rw-rw-r--  1   289 Sep  8 21:03 CONFIG
drwxrwxr-x  6  4096 Sep  8 21:03 contrib
-rw-rw-r--  1  3196 Sep  8 21:03 CONTRIBUTORS
drwxrwxr-x  4  4096 Sep  8 21:03 doc
drwxrwxr-x  4  4096 Sep  8 21:03 etc
-rw-rw-r--  1  1848 Sep  8 21:03 INSTALL
-rwxrwxr-x  1 32019 Sep  8 21:03 install.sh
-rw-rw-r--  1 24710 Sep  8 21:03 LICENSE
-rw-rw-r--  1  1664 Sep  8 21:03 README.md
drwxrwxr-x 30  4096 Sep  8 21:03 src

그 목록에서 관심 있는 유일한 파일은 install.sh입니다. 이것이 OSSEC 설치 스크립트입니다. 설치를 시작하려면 다음을 입력하십시오.

./install.sh

몇 가지 설치 질문에 답하라는 메시지가 표시됩니다.

귀하에게 필요한 첫 번째 작업은 언어 선택입니다. 아래 출력과 같이 기본값은 영어입니다. 설치 프로세스 전체에서 선택해야 하는 경우 대괄호로 묶인 항목이 기본값입니다. 기본값이 원하는 것이라면 ENTER 키를 눌러 기본값을 적용하십시오. 이메일 주소를 입력해야 하는 것 외에 무엇을 하고 있는지 모르는 경우가 아니라면 모든 기본값을 수락하는 것이 좋습니다.

항목은 빨간색으로 표시됩니다.

따라서 언어가 영어이면 ENTER를 누르십시오. 그렇지 않으면 해당 언어의 두 글자를 입력하고 Enter 키를 누릅니다.

  (en/br/cn/de/el/es/fr/hu/it/jp/nl/pl/ru/sr/tr) [en]:

언어를 선택하면 다음과 같이 표시됩니다.

OSSEC HIDS v2.8 Installation Script - http://www.ossec.net

 You are about to start the installation process of the OSSEC HIDS.
 You must have a C compiler pre-installed in your system.
 If you have any questions or comments, please send an e-mail
 to dcid@ossec.net (or daniel.cid@gmail.com).

  - System: Linux kuruji 3.13.0-36-generic
  - User: root
  - Host: kuruji

  -- Press ENTER to continue or Ctrl-C to abort. --

ENTER를 누르면 다음이 표시됩니다.

1- What kind of installation do you want (server, agent, local, hybrid or help)? local

local을 입력하고 Enter 키를 누릅니다. 당신은 얻을 것이다:

  - Local installation chosen.

2- Setting up the installation environment.

  - Choose where to install the OSSEC HIDS [/var/ossec]:

기본값을 수락하고 Enter 키를 누릅니다. 그 후에 다음을 얻을 수 있습니다.

    - Installation will be made at  /var/ossec .

3- Configuring the OSSEC HIDS.

  3.1- Do you want e-mail notification? (y/n) [y]:

엔터 키를 치시오.

  - What's your e-mail address? sammy@example.com

OSSEC로부터 알림을 받을 이메일 주소를 입력하십시오.

  - We found your SMTP server as: mail.example.com.
  - Do you want to use it? (y/n) [y]:

--- Using SMTP server:  mail.example.com.

사용하려는 특정 SMTP 서버 설정이 없으면 Enter 키를 누릅니다.

이제 OSSEC에 어떤 검사를 실행해야 하는지 알릴 시간입니다. 스크립트의 프롬프트에 대한 응답으로 ENTER를 눌러 기본값을 수락합니다.

무결성 검사 데몬에 대해 ENTER를 누릅니다.

  3.2- Do you want to run the integrity check daemon? (y/n) [y]:

- Running syscheck (integrity check daemon).

루트킷 감지를 위해 ENTER를 누르십시오.

  3.3- Do you want to run the rootkit detection engine? (y/n) [y]:

- Running rootcheck (rootkit detection).

활성 응답을 보려면 ENTER를 누르십시오.

  3.4- Active response allows you to execute a specific command based on the events received.  

   Do you want to enable active response? (y/n) [y]:

   Active response enabled.

방화벽 삭제 응답에 대한 기본값을 수락합니다. 출력에 일부 IPv6 옵션이 표시될 수 있습니다. 괜찮습니다.

  Do you want to enable the firewall-drop response? (y/n) [y]:

- firewall-drop enabled (local) for levels >= 6

   - Default white list for the active response:
      - 8.8.8.8
      - 8.8.4.4

   - Do you want to add more IPs to the white list? (y/n)? [n]:

여기에 IP 주소를 추가할 수 있지만 필수는 아닙니다.

OSSEC는 이제 모니터링할 기본 파일 목록을 제공합니다. 추가 파일은 설치 후 추가할 수 있으므로 ENTER 키를 누릅니다.

3.6- Setting the configuration to analyze the following logs:
    -- /var/log/auth.log
    -- /var/log/syslog
    -- /var/log/dpkg.log

 - If you want to monitor any other file, just change
   the ossec.conf and add a new localfile entry.
   Any questions about the configuration can be answered
   by visiting us online at http://www.ossec.net .


   --- Press ENTER to continue ---

이때까지 설치 프로그램은 OSSEC를 설치하는 데 필요한 모든 정보를 가지고 있습니다. 긴장을 풀고 설치 프로그램이 알아서 하도록 하십시오. 설치는 약 5분 정도 소요됩니다. 설치에 성공하면 이제 OSSEC를 시작하고 구성할 준비가 된 것입니다.

참고: 설치가 실패할 수 있는 한 가지 이유는 컴파일러가 설치되지 않은 경우입니다. 이 경우 다음과 같은 오류가 발생합니다.

5- Installing the system
 - Running the Makefile
./install.sh: 85: ./install.sh: make: not found

 Error 0x5.
 Building error. Unable to finish the installation.

해당 오류가 발생하면 자습서의 전제 조건 섹션에 설명된 대로 build-essential을 설치해야 합니다.

설치에 성공하면 다음 유형의 출력이 표시됩니다.

 - System is Debian (Ubuntu or derivative).
 - Init script modified to start OSSEC HIDS during boot.

 - Configuration finished properly.

 - To start OSSEC HIDS:
                /var/ossec/bin/ossec-control start

 - To stop OSSEC HIDS:
                /var/ossec/bin/ossec-control stop

 - The configuration can be viewed or modified at /var/ossec/etc/ossec.conf

    ---  Press ENTER to finish (maybe more information below). ---

이제 OSSEC이 설치되었습니다. 다음 단계는 시작하는 것입니다.

3단계 — OSSEC 시작

기본적으로 OSSEC는 부팅 시 시작하도록 구성되어 있지만 처음에는 수동으로 시작해야 합니다.

현재 상태를 확인하려면 다음을 입력하십시오.

/var/ossec/bin/ossec-control status

예상 출력:

ossec-monitord not running...
ossec-logcollector not running...
ossec-syscheckd not running...
ossec-analysisd not running...
ossec-maild not running...
ossec-execd not running...

그것은 OSSEC의 어떤 프로세스도 실행되고 있지 않다는 것을 알려줍니다.

OSSEC를 시작하려면 다음을 입력하십시오.

/var/ossec/bin/ossec-control start

시작하는 것을 볼 수 있습니다.

Starting OSSEC HIDS v2.8 (by Trend Micro Inc.)...
Started ossec-maild...
Started ossec-execd...
Started ossec-analysisd...
Started ossec-logcollector...
Started ossec-syscheckd...
Started ossec-monitord...
Completed.

상태를 다시 확인하면 OSSEC가 현재 실행 중이라는 확인 메시지가 표시됩니다.

/var/ossec/bin/ossec-control status

이 출력은 OSSEC가 실행 중임을 보여줍니다.

ossec-monitord is running...
ossec-logcollector is running...
ossec-syscheckd is running...
ossec-analysisd is running...
ossec-maild is running...
ossec-execd is running...

OSSEC을 시작한 직후 다음과 같은 이메일을 받아야 합니다.

OSSEC HIDS Notification.
2014 Nov 30 11:15:38

Received From: ossec2->ossec-monitord
Rule: 502 fired (level 3) -> "Ossec server started."
Portion of the log(s):

ossec: Ossec started.

이것은 OSSEC가 작동하고 있으며 모니터링하도록 구성된 어떤 일이 발생할 때마다 이메일 알림을 보낼 것이라는 또 다른 확인입니다. 다시 시작해도 OSSEC에서 이메일을 보내드립니다.

이 이메일을 바로 받지 못하셨더라도 걱정하지 마세요. OSSEC 서버의 이메일이 메일 제공업체에 전달될 수 있도록 이메일 설정(튜토리얼 후반부에서 다룰 것임)을 조정해야 할 수도 있습니다. Google 및 Fastmail과 같은 일부 타사 이메일 서비스 제공업체의 경우 특히 그렇습니다.

4단계 - 파일 수정에 대한 실시간 경고를 위한 OSSEC 구성

다음으로 OSSEC의 파일 및 디렉토리에 대해 알아보고 OSSEC의 모니터링 및 경고 설정을 변경하는 방법에 대해 알아보겠습니다.

이 자습서에서는 파일이 수정, 삭제 또는 지정한 디렉터리에 추가될 때마다 알려주도록 OSSEC를 수정합니다.

OSSEC의 디렉토리 구조 알아보기

OSSEC의 기본 디렉토리는 루트(관리자) 권한을 가진 사용자만 액세스할 수 있는 chroot 기반(샌드박스) 환경입니다. 표준 사용자는 /var/osseccd하거나 그 안의 파일을 나열할 수도 없습니다. 그러나 루트(또는 관리자) 사용자는 가능합니다.

따라서 다음을 입력하여 cd를 설치 디렉토리로 이동합니다.

cd /var/ossec

새 작업 디렉토리의 파일을 나열하려면 다음을 입력하십시오.

ls -lgG

다음 파일과 디렉토리가 표시되어야 합니다.

total 40
dr-xr-x---  3 4096 Nov 26 14:56 active-response
dr-xr-x---  2 4096 Nov 20 20:56 agentless
dr-xr-x---  2 4096 Nov 20 20:56 bin
dr-xr-x---  3 4096 Nov 29 00:49 etc
drwxr-x---  5 4096 Nov 20 20:56 logs
dr-xr-x--- 11 4096 Nov 20 20:56 queue
dr-xr-x---  4 4096 Nov 20 20:56 rules
drwxr-x---  5 4096 Nov 20 21:00 stats
dr-xr-x---  2 4096 Nov 20 20:56 tmp
dr-xr-x---  3 4096 Nov 29 18:34 var

  • OSSEC의 기본 구성 파일은 /var/ossec/etc 디렉토리에 있습니다.
  • 미리 정의된 규칙은 /var/ossec/rules 디렉토리에 있습니다.
  • OSSEC를 관리하는 데 사용되는 명령은 /var/ossec/bin에 있습니다.
  • /var/ossec/logs 디렉토리를 기록해 두십시오. OSSEC에서 오류가 발생하면 해당 디렉터리의 /var/ossec/logs/ossec.log 파일을 가장 먼저 살펴봅니다.

기본 구성 파일 /var/ossec/etc/ossec.conf

기본 구성 파일에 액세스하려면 /var/ossec/etc로 변경해야 합니다. 그렇게 하려면 다음을 입력하십시오.

cd /var/ossec/etc

해당 디렉토리에서 ls를 수행하면 다음 파일과 디렉토리가 표시됩니다.

ls -lgG

결과:

total 120
-r--r----- 1 97786 Sep  8 22:03 decoder.xml
-r--r----- 1  2842 Sep  8 22:03 internal_options.conf
-r--r----- 1  3519 Oct 30 13:46 localtime
-r--r----- 1  7752 Nov 29 09:45 ossec.conf
-rw-r----- 1    87 Nov 20 20:56 ossec-init.conf
drwxrwx--- 2  4096 Nov 20 21:00 shared

기본 구성 파일은 /var/ossec/etc/ossec.conf입니다.

파일을 수정하기 전에 만일을 대비하여 백업 사본을 만드십시오. 사본을 만들려면 다음과 같이 cp 명령을 사용하십시오.

cp /var/ossec/etc/ossec.conf /var/ossec/etc/ossec.conf.00

아이디어는 변경 사항이 작동하지 않거나 시스템을 엉망으로 만드는 경우 복사본으로 돌아가 정상으로 돌아갈 수 있다는 것입니다. 항상 활용해야 하는 가장 간단한 재해 복구 방식입니다.

이제 nano 편집기를 사용하여 ossec.conf를 엽니다.

nano /var/ossec/etc/ossec.conf

구성 파일은 여러 섹션이 있는 매우 긴 XML 파일입니다.

이메일 설정

참고: 이메일은 일반적으로 까다롭습니다. 특히 Gmail 주소로 보내는 것과 같이 더 엄격한 메일 제공업체에 보내는 경우에는 더욱 그렇습니다. 스팸을 확인하고 필요한 경우 설정을 조정하십시오.

표시되는 첫 번째 구성 옵션은 설치 중에 지정한 이메일 자격 증명입니다. 다른 이메일 주소 및/또는 SMTP 서버를 지정해야 하는 경우 여기에서 수행할 수 있습니다.

<global>
    <email_notification>yes</email_notification>
    <email_to>sammy@example.com</email_to>
    <smtp_server>mail.example.com.</smtp_server>
    <email_from>ossecm@ossec_server</email_from>
</global>

기본적으로 OSSEC는 시간당 12개의 이메일을 보내므로 이메일 알림이 쇄도하지 않습니다. 해당 섹션에 N ail_maxperhour 설정을 추가하여 값을 늘리거나 줄일 수 있습니다.

<global>
    <email_notification>yes</email_notification>
    <email_to>sammy@example.com</email_to>
    <smtp_server>mail.example.com.</smtp_server>
    <email_from>ossecm@ossec_server</email_from>
    <email_maxperhour>N</email_maxperhour>
</global>

N을 1에서 9999 사이의 시간당 수신하려는 이메일 수로 바꾸십시오.

일부 타사 이메일 서비스 제공업체(예: Google 및 Fastmail)는 주소에 코드 블록에 있는 것과 같은 유효한 도메인 부분이 포함되지 않은 경우 OSSEC에서 보낸 알림을 자동으로 삭제합니다. 위에. 이를 방지하려면 해당 이메일 주소에 유효한 도메인 부분이 포함되어 있는지 확인하십시오. 예를 들어:

<global>
    <email_notification>yes</email_notification>
    <email_to>sammy@example.com</email_to>
    <smtp_server>mail.example.com.</smtp_server>
    <email_from>sammy@ossec_server.com</email_from>
</global>

주소는 동일할 수 있습니다. 예를 들어:

<global>
    <email_notification>yes</email_notification>
    <email_to>sammy@example.com</email_to>
    <smtp_server>mail.example.com.</smtp_server>
    <email_from>sammy@example.com</email_from>
</global>

외부 이메일 공급자의 SMTP 서버를 사용하지 않으려면 자체 SMTP 서버가 구성되어 있는 경우 이를 지정할 수 있습니다. (이 튜토리얼에서는 다루지 않지만 다음 지침에 따라 Postfix를 설치할 수 있습니다.) SMTP 서버가 OSSEC와 동일한 Droplet에서 실행 중인 경우 설정을 <로 변경합니다. 마크>로컬호스트. 예를 들어:

<global>
    <email_notification>yes</email_notification>
    <email_to>sammy@example.com</email_to>
    <smtp_server>localhost</smtp_server>
    <email_from>sammy@example.com</email_from>
</global>

OSSEC은 기본적으로 실시간 알림을 보내지 않지만 이 자습서에서는 실시간 알림을 요구하므로 수정해야 할 한 가지 측면입니다.

여전히 OSSEC에서 예상되는 이메일을 받지 못하는 경우 /var/ossec/logs/ossec.log에서 메일 오류에 대한 로그를 확인하십시오.

메일 오류 예:

2014/12/18 17:48:35 os_sendmail(1767): WARN: End of DATA not accepted by server
2014/12/18 17:48:35 ossec-maild(1223): ERROR: Error Sending email to 74.125.131.26 (smtp server)

이러한 오류 메시지를 사용하여 이메일 알림 수신과 관련된 모든 문제를 디버깅할 수 있습니다.

스캔 빈도

ossec.conf<syscheck> 섹션에서 다음과 같이 시작합니다.

<syscheck>
    <!-- Frequency that syscheck is executed - default to every 22 hours -->
    <frequency>79200</frequency>

새 파일 생성에 대한 알림을 켭니다. 다음과 같이 읽도록 yes 줄을 추가합니다.

<syscheck>
    <!-- Frequency that syscheck is executed - default to every 22 hours -->
    <frequency>79200</frequency>

    <alert_new_files>yes</alert_new_files>

테스트 목적으로 시스템 검사 빈도를 훨씬 낮게 설정할 수도 있습니다. 기본적으로 시스템 검사는 22시간마다 실행됩니다. 테스트 목적으로 분당 한 번, 즉 60초로 설정할 수 있습니다. 테스트가 완료되면 이를 정상적인 값으로 되돌립니다.

<syscheck>
    <!-- Frequency that syscheck is executed - default to every 22 hours -->
    <frequency>60</frequency>

    <alert_new_files>yes</alert_new_files>

디렉토리 및 파일 변경 설정

그 직후 OSSEC가 모니터링하는 시스템 디렉토리 목록이 표시되어야 합니다. 다음과 같이 읽습니다.

<!-- Directories to check  (perform all possible verifications) -->
<directories check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories check_all="yes">/bin,/sbin</directories>

각 줄에 report_changes=\yes\ realtime=\yes\ 설정을 추가하여 실시간 모니터링을 활성화합시다. 다음 줄을 수정하여 다음과 같이 읽습니다.

<!-- Directories to check  (perform all possible verifications) -->
<directories report_changes="yes" realtime="yes" check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories report_changes="yes" realtime="yes" check_all="yes">/bin,/sbin</directories>

report_changes=\yes\는 말한 대로 정확하게 수행합니다. realtime=yes도 마찬가지입니다.

OSSEC가 모니터링하도록 구성된 기본 디렉터리 목록 외에도 모니터링하려는 새 디렉터리를 추가할 수 있습니다. 다음 섹션에서는 /home/sammy/var/www를 모니터링하도록 OSSEC에 지시할 것입니다. 이를 위해 기존 줄 바로 아래에 새 줄을 추가하여 해당 섹션이 이제 다음과 같이 표시되도록 합니다.

<!-- Directories to check  (perform all possible verifications) -->
<directories report_changes="yes" realtime="yes" check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories report_changes="yes" realtime="yes" check_all="yes">/bin,/sbin</directories>

<directories report_changes="yes" realtime="yes" restrict=".php|.js|.py|.sh|.html" check_all="yes">/home/sammy,/var/www</directories>

원하는 설정과 일치하도록 디렉토리를 수정해야 합니다. 사용자 이름이 sammy가 아닌 경우 홈 디렉토리의 경로를 변경해야 합니다.

모니터링할 새 디렉터리에 대해 OSSEC에 지정된 파일 형식만 모니터링하도록 지시하는 restrict 옵션을 추가했습니다. 해당 옵션을 사용할 필요는 없지만 이미지 파일과 같이 OSSEC에서 경고하지 않기를 원하는 다른 파일이 있는 경우 유용합니다.

이것이 ossec.conf의 모든 변경 사항입니다. 파일을 저장하고 닫을 수 있습니다.

/var/ossec/rules/local_rules.xml의 로컬 규칙

수정할 다음 파일은 /var/ossec/rules 디렉토리에 있으므로 다음을 입력하여 cd를 입력하십시오.

cd /var/ossec/rules

해당 디렉토리에서 ls를 수행하면 다음과 같은 XML 파일이 많이 표시됩니다.

ls -lgG

축약된 출력:

total 376
-r-xr-x--- 1  5882 Sep  8 22:03 apache_rules.xml
-r-xr-x--- 1  2567 Sep  8 22:03 arpwatch_rules.xml
-r-xr-x--- 1  3726 Sep  8 22:03 asterisk_rules.xml
-r-xr-x--- 1  4315 Sep  8 22:03 attack_rules.xml

...

-r-xr-x--- 1  1772 Nov 30 17:33 local_rules.xml

...

-r-xr-x--- 1 10359 Sep  8 22:03 ossec_rules.xml

...

현재 관심 있는 파일은 local_rules.xmlossec_rules.xml입니다. 후자는 OSSEC의 기본 규칙 정의를 포함하고 전자는 사용자 지정 규칙을 추가하는 위치입니다. 즉, local_rules.xml을 제외하고 이 디렉터리의 파일을 수정하지 않습니다.

ossec_rules.xml의 기본 규칙 정의는 살펴보고 수정하여 로컬 규칙에 복사할 수 있도록 하는 데 유용합니다. ossec_rules.xml에서 모니터링되는 디렉터리에 파일이 추가될 때 실행되는 규칙은 규칙 554입니다. 기본적으로 OSSEC는 해당 규칙이 트리거될 때 경고를 보내지 않습니다. , 그래서 여기서 해야 할 일은 그 행동을 바꾸는 것입니다. 기본 버전에서 규칙 554는 다음과 같습니다.

<rule id="554" level="0">
<category>ossec</category>
<decoded_as>syscheck_new_entry</decoded_as>
<description>File added to the system.</description>
<group>syscheck,</group>
</rule>

규칙의 수준이 0으로 설정된 경우 OSSEC는 경고를 보내지 않습니다. 이 규칙을 수정하여 경고 수준을 높이고 싶습니다. 기본 파일에서 변경하는 대신 규칙을 local_rules.xml에 복사하고 경고를 트리거할 수 있도록 수정합니다.

이렇게 하려면 /var/ossec/rules/local_rules.xml 파일의 백업 복사본을 만듭니다.

cp /var/ossec/rules/local_rules.xml /var/ossec/rules/local_rules.xml.00

nano를 사용하여 파일을 편집합니다.

nano /var/ossec/rules/local_rules.xml

파일 끝에 새 규칙을 추가합니다. ... 태그 내에 있는지 확인하십시오.

<rule id="554" level="7" overwrite="yes">
<category>ossec</category>
<decoded_as>syscheck_new_entry</decoded_as>
<description>File added to the system.</description>
<group>syscheck,</group>
</rule>

파일을 저장하고 닫습니다.

이것이 필요한 모든 변경 사항입니다.

OSSEC 재시작

이제 남은 것은 OSSEC의 파일을 수정할 때마다 수행해야 하는 작업인 OSSEC를 다시 시작하는 것입니다. OSSEC를 다시 시작하려면 다음을 입력하십시오.

/var/ossec/bin/ossec-control restart

모두 제대로 작동하면 OSSEC에서 (재)시작했음을 알리는 이메일을 받아야 합니다.

5단계 - 파일 변경 알림 트리거

그리고 OSSEC가 모니터링하도록 구성된 디렉토리에서 발생하는 상황에 따라 다음과 같은 이메일을 받게 됩니다.

이제 /home/sammy에 샘플 파일을 만들어 보세요.

touch /home/sammy/index.html

잠깐 기다려요. 콘텐츠 추가:

nano /home/sammy/index.html

잠깐 기다려요. 파일 삭제:

rm /home/sammy/index.html

다음과 같은 알림을 받기 시작해야 합니다.

OSSEC HIDS Notification.
2014 Nov 30 18:03:51

Received From: ossec2->syscheck
Rule: 550 fired (level 7) -> "Integrity checksum changed."
Portion of the log(s):

Integrity checksum changed for: '/home/sammy/index.html'
Size changed from '21' to '46'
What changed:
1c1,4
< This is an html file
---

    <!doctype html> <p>This is an html file</p>

Old md5sum was: '4473d6ada73de51b5b36748627fa119b'
New md5sum is : 'ef36c42cd7014de95680d656dec62de9'
Old sha1sum was: '96bd9d685a7d23b20abd7d8231bb215521bcdb6c'
New sha1sum is : '5ab0f31c32077a23c71c18018a374375edcd0b90'

아니면 이거:

OSSEC HIDS Notification.
2014 Dec 01 10:13:31

Received From: ossec2->syscheck
Rule: 554 fired (level 7) -> "File added to the system."
Portion of the log(s):

New file '/var/www/header.html' added to the file system.

참고: OSSEC는 파일 추가에 대한 실시간 경고를 보내지 않고 파일 수정 및 삭제에 대해서만 경고를 보냅니다. 파일 추가에 대한 경고는 ossec.conf의 빈도 확인 시간에 의해 관리되는 전체 시스템 검사 후에 사라집니다.

nano /var/ossec/etc/ossec.conf

빈도 설정:

<syscheck>
    <!-- Frequency that syscheck is executed - default to every 22 hours -->
    <frequency>79200</frequency>

이메일을 받지 못한 경우 스팸 메일을 확인하고 /var/ossec/logs/ossec.log를 확인하고 메일 로그 등을 확인하세요.

결론

이것이 OSSEC이 제공해야 하는 것을 맛보기로 제공했기를 바랍니다. 고급 설정 및 구성이 가능하므로 서버를 모니터링하고 보호하기 위해 OSSEC를 배포하는 방법에 대한 향후 기사를 계속 지켜봐 주십시오.

OSSEC에 대한 자세한 내용은 프로젝트 웹 사이트(http://www.ossec.net/)를 참조하십시오.