2008. 7. 10. 14:37

linux - snort , NIDS

snort
------------------------------------------------------------------------------------------------------
1. snort 는 공개형 s/w 가장 대표적인 침입탐지 시스템이다
2. 패킷 수집 라이브러리인 libpcat에 기반한 네트워크 스니퍼로 정의되며 침입탐지 rule들에 일치 하는 네트워크 트래픽을 감시, 기록, 경고 할 수 있다.
3. Overflow, Stealth 포트 스캔, CGI공격, SMB탐색, OS확인 시도등 다양한 공격에 대해 탐지가 가능하다.
4. 탐지 룰은 지속적으로 업데이트 되며, 자신이 직접 작성할 수 있으므로 최신의 공격에 대응이 가능하다.
------------------------------------------------------------------------------------------------------


SPAN을 이용한 snort 구성
------------------------------------------------------------------------------------------------------
switch에 물린 각 client가 물려져 있다면 이에 더해서 IDS를 같이 물려 사용할 수 있다.
이때 이용하는 방법이 switch에 SPAN이다. 또는 미러링 포트, 모니터 포트라고도 한다.
 ----------------------------
|ㅁ     ㅁ     ㅁ      ㅁ       ㅁ    ㅁ    |      Switch
-+---+------------------+--
  |       |                                     |
clientS ....                                  IDS
------------------------------------------------------------------------------------------------------


설치 전 준비사항
------------------------------------------------------------------------------------------------------
libpcap
             :    http://www.tcpdump.org
             :    libpcat v0.9.8
             :    wget http://www.tcpdump.org/release/libpcap-0.9.8.tar.gz
pcre
             :   http://sourceforge.net/progect.showfiles.php?group_id=10194
             :   pcre       ,     pcre-devel
snort
             :  snort v2.6.1.5
             :  소스    http://www.snort.org/dl/old/snort-2.6.1.5.tar.gz
             :  sign     http://www.snort.org/dl/old/snort-2.6.1.5.tar.gz.sig
             :  공개키        http://www.snort.org/sl/pubkeys/public_key_2601
------------------------------------------------------------------------------------------------------

설치
------------------------------------------------------------------------------------------------------
사용자 삽입 이미지

libpcap과 pcre는 설치되어있으나 pcre-devel은 없다. yum을 통해서 설치하자. 역시 앞의 두가지도 없다면 설치하자
사용자 삽입 이미지

snort 설치
 
사용자 삽입 이미지

# wget http://www.snort.org/dl/old/snort-2.6.1.5.tar.gz.sig
# wget http://www.snort.org/sl/pubkeys/public_key_2601
# gpg --import public_key_2601
# gpg --list-key                   // 공개키값을 확인하자
# gpg --edit-key ####(공개키값 )
                            command> trust
                            command> 5     
                                                    y
                            command> quit
# gpg --verify snort-2.6.1.5.tar.gz.sig snort-2.6.1.5.tar.gz
                  // 하게 되면 good signature 어쩌구 저쩌구 나온다
이작업은 snort에 대한 변조 유무를 확인 하는작업이다.
tip . 에러 메시지 뜰때는 # rdate -s time.bora.net으로 시간 동기화를 해보길 바란다.
# tar xvzf snort-2.6.1.5.tar.gz
]# cd snort-2.6.1.5
# ls
COPYING        aclocal.m4    contrib     m4             src
ChangeLog      config.guess  depcomp     missing        templates
LICENSE        config.h.in   doc         mkinstalldirs  verstuff.pl
Makefile.am    config.sub    etc         rpm
Makefile.in    configure     install-sh  schemas
RELEASE.NOTES  configure.in  ltmain.sh   snort.8
# ./configure && make && make install
# echo $?

touble 발생
사용자 삽입 이미지

헌데 문제가 생겼다 libpcap 문제로 설치 중단이 되었다. 해서 원본 소르를 받아 설치하려
tcpdump 사이트를 뒤져 봤으나
사이트가 문을 닫은 상태였다 ..
해서 일단 중지
------------------------------------------------------------------------------------------------------
하여 이리저리 문서를 찾은 결과

CentOS에서는 libpcap-devel을 설치 한뒤에 해야 한단다. 설치해야 한다는건지 필요하다는건지''
죄 영어라 원..
fedora 로 썼을때는 따로 설치 한 기억이없었는데 이거원..... 가짢은게 괴롭힌다...
http://www.snort.org/archive-11-4370.html

# yum -y install libpcap-devel
설치후
# ./configure && make && make install
이자 잘된다 ㅡ.,ㅡㅋ
# echo $?
0
설치끝 ㅡ.,ㅡ헥헥
------------------------------------------------------------------------------------------------------

snort의 동작 방식
------------------------------------------------------------------------------------------------------
1. 스니핑 모드 (ethereal 처럼 패킷을 캡쳐, 화면에 출력)
2. 로깅 모드(파일에 저장)
3. 침입탐지 모드
------------------------------------------------------------------------------------------------------

1. 스니핑 모드
------------------------------------------------------------------------------------------------------
[fedora]
# snort -v
[centos]
# nmap -sS -O -v 192.168.10.30                           // 조금 하다가 중지
[fedora]
관찰 정보가 주르르륵 뜬다 탐지가 된다는것
[centos]
ctrn +z
# pkill -9 snort
# ps -ef | grep snort
snort가 남아있는지 확인~
------------------------------------------------------------------------------------------------------

2. 로깅 모드(파일에 저장)
------------------------------------------------------------------------------------------------------
# snort --help
                        -K <mode> : logging mode (pcap (default), ascii, none)
# snort -vde -K ascii                    // log 디렉토리가 없어 에러
# mkdir /var/log/snort                  로그 디렉토리 생성
# snort -vde -K ascii       
                         -v: verbose
                         -d : dump the application layer
                         -e : display the second layer header info
                         -vde : layer 2~7 packet 정보 감시
[xp]
telnet 192.168.10.10 [fedora]
------------------------------------------------------------------------------------------------------