얼마전부터 운영중인 시스템에 알수없는 문제가 발생하기 시작했다. 결론은 DOS 류 SYN_FLOOD ATTACK 으로 단정을 지었는데.. 꺼림칙함을 감출수가 없엇다 ㅠ.. 그래서 패킷정보를 찾기위해서 snort 운영을 시작했다.
Snort?
snort 는 unix 시스템 기반 실시간 traffic 분석, packet logging 외에도 다양할 룰을 적용하여, 버퍼오버플로우, 포트스캔, SMB등 기본적인 시스템에서는 분석할수 없는 네트워크 패킷 정보를 실시간으로 기록해준다. 그리고 특정 룰에 관해서는 실시간 경보가 가능하다.
내가 설치한 시스템은
O/S : CentOS 4.1
CPU : Intel Xeon 2G Dual
RAM : 2G
HDD : SCSI 72G
0. libcap, pcre-devel
snort를 소스컴파일 설치하기위해서는 libpcap 이 필요하다.
보통기본적으로 배포판에 포함되어있으나 포함되어있지 않는경우는
http://rpmfind.com 이나 오피셜 사이트에서 구하거나
내 블로그 포스트에 yum 설치를 참고하시고.
#yum install libcap ; 명령으로 간단히 설치할수있다.
그리고 펄확장모듈 pcre-devel 패키지도 설치해줘야 한다.
물론 나는 #yum install pcre-devel 한방으로 처리했다.
1. snort source download
http://www.snort.org 에서 나는 현존하는 최신버젼인 snort-2.4.0 버젼을 받았다; 2005.08.02
그리고 이전버젼 1.x, 2.x 대 버젼에서 DoS 및 몇가지 보안관련 부분에서 구멍이있어 오피셜사이트에서 최신버젼 사용권고를 하고 있다.
#cd /usr/src/app ; 보통나는 이경로에 소스파일을 받곤한다;
#tar snort-2.4.0.tar.gz
#cd snort-2.4.0
#./configure --prefix=/usr/local/snort-2.4.0 ; 소스로 설치하는 경우 이경로에 설치하고 삭제가 쉽게 관리한다;
#make ; make install
./configure --help 를 보면 여러가지 옵션이 있는데 이중 참고할만한 사항은 적용하는 것이 좋겠다; 물론 나한테 필요한 부분은 없었지만..
#mkdir /usr/local/snort-2.4.0/etc ; conf 파일이 위치할 디렉토리 생성
#mkdir /var/log/snort ; snort 로그를 기록할 디렉토리 생성
#cp etc/snort.conf /usr/local/snort-2.4.0/etc/
2. snort rule 파일 다운로드.
http://www.snort.org 에 일단 가입을 먼저한다음. 메일로 간단한인증을 거친후에.
rule 파일을 다운을 받는다.
유료와 무료가 있어 역시나 무료를 썻지만.. 무슨차이가 있는지는;;
그리고 다운받은 룰파일을
/usr/local/snort-2.4.0 디렉토리에 풀고. rules 라는 디렉토리가 생성되었는지를 확인한다.
3. 실행.
#/usr/local/snort-2.4.0/bin/snort -d -l /var/log/snort -c /usr/local/snort-2.4.0/etc/snort.conf -A full -D
라고 실행하면 deamon 모드로 백그라운드에서 실시간으로 감시를 시작한다.
/var/log/snort/alert 파일에서 snort의 경보내용을 볼수있고. 아이피별 디렉토리에서 패킷정보를 확인할수있다.
[출처] 네트워크 IDS / snort 설치와 운용 #1 설치|작성자 짱동이