침입 탐지 · 4 min read · Oct 16, 2025
침입 탐지: Snort (IDS), OSSEC (HbIDS) 및 Prelude (HIDS) 우분투 거츠 기븐에서
침입 탐지: Snort (IDS), OSSEC (HbIDS) 및 Prelude (HIDS) 우분투 거츠 기븐에서
모두가 알고 있는 문제입니다. IDS 도구가 설치되어 있고 각 도구는 고유한 인터페이스를 가지고 있습니다.
Prelude는 모든 이벤트를 prelude 데이터베이스에 기록하고 하나의 인터페이스(prewikka)를 사용하여 조회할 수 있게 해줍니다. 이 방법서는 완전한 솔루션을 구성하는 다양한 도구를 설치하고 구성하는 방법을 설명합니다.
이 방법서는 몇 가지 문제를 해결하기 위해 찾은 조각과 매뉴얼의 일부, 그리고 완전한 솔루션을 설치한 제 경험을 바탕으로 작성되었습니다.
Snort에 대한 자세한 정보는 www.snort.org를 방문하세요.
OSSEC에 대한 자세한 정보는 www.ossec.net를 방문하세요.
Prelude에 대한 자세한 정보는 www.prelude-ids.org를 방문하세요.
전제 조건:
당신이 The Perfect Server - Ubuntu Gutsy Gibbon (Ubuntu 7.10)을 따랐다고 가정해 보겠습니다. 그렇지 않다면 해당 방법서를 따르고 시스템에 설치되지 않은 부분만 설치/추가하세요.
다음 패키지는 유용하므로 올바르게 설치되었는지 확인하세요:
apt-get install ntpdate
apt-get install dbconfig-common
Prelude 설치 및 구성
보통은 libprelude, libpreludedb를 컴파일하고 설치한 다음 데이터베이스를 생성해야 합니다. 다행히도 패키지는 우분투 저장소에서 제공됩니다.
Prelude 관리자
apt-get install prelude-manager/etc/prelude/default/tls.conf에서 기본 TLS 설정 사용:
생성된 키 크기: 1024 비트.
인증서 수명: 무제한.
생성된 인증서 수명: 무제한.
분석기 prelude-manager 생성 중.
/etc/prelude/profile/prelude-manager 생성 중…
prelude-manager에 대한 식별자 할당: 4232957740008155.
RSA 개인 키 생성 중… 시간이 오래 걸릴 수 있습니다.
[시스템 활동을 증가시키면 프로세스 속도가 빨라집니다.]1024 비트 RSA 개인 키 생성 중…
설치 중에 관리자는 prelude 사용자에 대한 프로필을 생성합니다. GnuTLS가 보안상의 이유로 /dev/random 대신 /dev/urandom에 접근하려고 시도하기 때문에 시간이 (매우) 오래 걸릴 수 있습니다. 이는 미래에 변경될 수 있습니다(아마도 더 빠른 생성을 위한 옵션을 사용할 수 있지만, 암호학적으로 덜 안전할 수 있습니다).
dbconfig는 데이터베이스를 자동으로 구성할 것인지 물어봅니다. 원하지 않으면 ‘아니오’라고 말하고 모든 것을 수동으로 구성하세요( sql 스크립트는 /usr/share/libpreludedb/ 디렉토리에 있습니다). 답변이 ‘예’라고 가정해 보겠습니다.
참고: 질문의 수는 debconf의 상세도( dpkg-reconfigure debconf를 사용하여 설정)와 dbconfig 매개변수에 따라 변경될 수 있습니다. /etc/dbconfig-common/config 파일에 있습니다.
database-common으로 데이터베이스 구성: 예
database type:이전에 설치한 데이터베이스의 유형으로 설정하세요. 이 경우 mysql입니다.
데이터베이스 관리자 비밀번호: ******dbconfig-common은 ‘prelude’ 사용자에 대한 비밀번호를 요청합니다. 아무것도 제공하지 않으면(단순히 Enter를 누르면) 무작위 비밀번호가 생성됩니다. 걱정하지 마세요. 구성 파일은 자동으로 업데이트됩니다.
dbconfig-common: /etc/dbconfig-common/prelude-manager.conf에 구성 작성 중
새 버전으로 /etc/dbconfig-common/prelude-manager.conf 구성 파일 생성
prelude@localhost에 대한 데이터베이스 prelude에 대한 접근 권한 부여: 성공.
prelude@localhost에 대한 접근 권한 확인: 성공.
데이터베이스 prelude 생성: 성공.
데이터베이스 prelude 존재 확인: 성공.
sql을 통해 데이터베이스 채우기... 완료.
dbconfig-common: 관리 비밀번호 플러시
Prelude 관리자 시작: prelude-manager.우분투 패키지는 자동으로 prelude에 대한 사용자와 데이터베이스를 생성합니다. 비밀번호를 변경하려면 먼저 mysql에서 변경한 후 /etc/prelude-manager/prelude-manager.conf에서 변경하세요.
Prelude-Manager가 이제 실행 중이어야 합니다:
ps auxw | grep managerprelude 28530 0.0 0.1 59384 4480 ? Ssl 13:49 0:00 /usr/sbin/prelude-manager첫 번째 부분이 끝났습니다. 이제 관리자가 실행 중입니다.
청취 주소:기본 청취 주소는 localhost (127.0.0.1)입니다. 이는 에이전트가 prelude-manager에 도달할 수 있도록 다른 호스트에 센서를 추가하려면 이 주소를 변경해야 함을 의미합니다.
/etc/prelude-manager/prelude-manager.conf를 편집하세요:
listen = xxx.xxx.xxx.xxx서버를 재시작하고 주소를 확인하세요(주소를 변경한 경우):
# /etc/init.d/prelude-manager stop Prelude 관리자 중지: prelude-manager.# /etc/init.d/prelude-manager startPrelude 관리자 시작: prelude-manager.# netstat -pantu | grep preludetcp 0 0 192.168.66.1:4690 0.0.0.0:* LISTEN 30544/prelude-managerPrelude-LML
모니터링하려는 모든 호스트에 prelude-lml을 설치해야 합니다. Prelude-LML은 로그를 분석하고 이벤트를 관리자에게 보고합니다.
# apt-get install prelude-lml…
Prelude LML 시작: prelude-lml.
사용하기 전에 두 가지 작업을 수행해야 합니다:
- 관리자 주소를 lml에 구성해야 합니다.
- 관리자는 센서가 등록될 때까지 신뢰하지 않습니다.
관리자 주소
관리자가 청취하는 주소를 변경한 경우, prelude-lml을 설치하는 모든 머신의 클라이언트 구성에서 주소를 변경해야 합니다.
관리자 주소는 /etc/prelude/default/client.conf 파일에 저장됩니다:
[prelude]
server-addr = 127.0.0.1 센서 등록
센서를 등록하는 것은 네 단계의 프로세스로, 센서와 관리자 모두에서 명령을 실행해야 합니다:
LML 클라이언트에서 등록 명령을 실행하세요:
prelude-adduser register prelude-lml "idmef:w" --uid 0 --gid 0 팁: 명령을 기억하지 못하면 prelude-lml을 실행하세요. 등록되지 않았기 때문에 실패하지만, 도움말을 표시할 만큼 똑똑합니다:
# prelude-lml
- pcre[default] 플러그인 구독 중
- pcre 플러그인 394 규칙 로드됨.
- pcre[default]를 통해 /var/log/messages 모니터링 중
* 경고: /var/log/everything/current가 존재하지 않습니다.
prelude-client: prelude-client 시작 오류: '/etc/prelude/profile/prelude-lml/analyzerid'를 읽기 위해 열 수 없습니다.
'prelude-lml' 프로필이 존재하지 않습니다. 생성하려면 다음을 실행하세요:
prelude-adduser register prelude-lml "idmef:w" --uid 0 --gid 0. LML은 로그를 분석할 수 있도록 root로 실행되기 때문에 uid와 gid 0으로 등록해야 합니다.
LML은 이제 관리자가 제공하는 일회성 비밀번호(OTP)를 기다립니다:
"prelude-adduser" 프로그램에서 제공한 일회성 비밀번호를 입력하세요:
- 등록 일회성 비밀번호 입력:관리자에서 다음을 실행하세요:
prelude-adduser registration-server prelude-manager…
- 등록 서버 시작 중.
- 생성된 일회성 비밀번호는 “dummypass”입니다.
…
LML 프롬프트에 비밀번호를 입력하세요:
- 등록 일회성 비밀번호 입력:
- 등록 일회성 비밀번호 확인:
- 등록 서버(127.0.0.1:5553)에 연결 중…
- 등록 서버에 대한 익명 인증 성공.
- 인증서 요청 전송 중.
이제 LML은 관리자가 인증서를 서명하기를 기다리고 있습니다.
관리자에서 인증서 서명 요청을 검증하세요:
- 익명 인증 일회성 비밀번호 확인 성공.
- 클라이언트 인증서 요청 대기 중.
- ID=”3559090256170900”인 분석기가 권한=”idmef:w”로 등록 요청 중입니다.
등록 승인 [y/n]: y
인증서가 생성되어 클라이언트에 전송됩니다: - 권한 “idmef:w”로 분석기 “3559090256170900” 등록 중.
- 클라이언트에 대한 서명된 인증서 생성 중.
- 클라이언트에 서버 인증서 전송 중.
- ::ffff:127.0.0.1:47054가 성공적으로 등록되었습니다.
클라이언트에서 다음을 볼 수 있습니다:
LML 등록이 성공했습니다.
- 서명된 인증서 수신 중.
- CA 인증서 수신 중.
- 127.0.0.1에 대한 prelude-lml 등록 성공.
이제 관리자와 센서 간에 신뢰 관계가 형성되었으며 서로 메시지를 보낼 수 있습니다.
이 프로세스는 시간이 걸리지만 보안을 강화하고 센서와 관리자 간의 통신이 암호화됩니다.
마지막으로 LML 센서도 실행 중이어야 합니다:
/etc/init.d/prelude-lml startPrelude LML 시작: prelude-lml.
ps auxw | grep lml
root 1946 0.3 0.0 20856 3424 ? Ss 14:35 0:00 /usr/bin/prelude-lml -d -q -P /var/run/prelude-lml.pid
이로써 첫 번째 부분이 끝났습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.