스노트는 초기에는 Packet Sniffer로 만들어진 도구이다. Signature 기반에 분석 기능이 추가되면서 침입 탐지 시스템으로 사용되기 시작하였다. 현재는 P2P, 백도어, DDos, 웹 공격, 악성코드 등을 탐지할 수 있는 규칙이 제공되고 있다.
구성 환경 : VMware, CentOS 5.3, Snort-2.9.3.1
1. VMware 설정
CentOS를 구동한 다음에 Network 설정을 NAT모드로 설정한다.
2. Snort를 설치하기 위해 필요한 라이브러리를 수동으로 설치한다.
cd /usr/local tar zxvf /root/Desktop/snort/libnet-1.0.2a.tar.gz cd Libnet-1.0.2a ./configure && make && make install
cd /usr/local tar zxvf /root/Desktop/snort/libdnet-1.11.tgz cd libdnet-1.11 ./configure && make && make install
cd /usr/local tar zxvf /root/Desktop/snort/libpcap-1.0.0.tar.gz cd libpcap-1.0.0 ./configure && make && make install cp /usr/local/lib/libpcap.a /usr/lib/
cd /usr/local/ tar zxvf /root/Desktop/snort/daq-1.1.1.tar.gz cd daq-1.1.1 ./configure && make && make install
cd /usr/local/ tar xvzf /root/Desktop/snort/pcre-8.31.tar.gz cd pcre-8.31.tar.gz ./configure && make && make install cd /usr/local tar zxvf /root/Desktop/snort/snort-2.9.3.1.tar.gz cd snort-2.9.3.1 ./configure && make && make install 추가적으로 필요한 라이브러리 설치 yum install httpd* pcre pcre-devel php php-common php-gd php-cli php-mysql flex bison mysql mysql-devel mysql-bench mysql-server php-pear.noarch phppear-DB.noarch php-pear-File.noarch kernel-devel libxml2-devel vimenhanced.i386 -y |
3. Snort를 기본 설치한 후에 정상적으로 동작하는지 확인한다.
[root@localhost ~]# snort -V
,,_ -*> Snort! <*- o" )~ Version 2.9.3.1 IPv6 GRE (Build 40) '''' By Martin Roesch & The Snort Team: http://www.snort.org/snort/snort-team Copyright (C) 1998-2012 Sourcefire, Inc., et al. Using libpcap version 1.0.0 Using PCRE version: 8.31 2012-07-06 Using ZLIB version: 1.2.3 |
4. Snort가 동작되는지 확인한 후에 기본 설정과 Snort에서 제공하는 rules을 설치한다.
mkdir /etc/snort mkdir /var/log/snort (log 파일이 저장될 폴더 생성) cd /etc/snort
tar -xvzf /root/Desktop/snortrules-snapshot-2931.tar.gz -C /etc/snort cp etc/* /etc/snort
groupadd snort (snort라는 그룹 생성) useradd -g snort snort (사용자 계정을 추가하는데 -g옵션은 사용자 기본그룹을 지정하는 옵션으로 snort라는 그룹에다가 snort라는 계정을 생성) chown snort:snort /var/log/snort (var/log/snort라는 폴더의 소유권자와 소유그룹을 snort, snort로 설정함// chown [소유자계정][:소유그룹] FILE ... ) touch /var/log/snort/alert (크기 0byte의 alert라는 빈 파일을 생성) chown snort:snort /var/log/snort/alert(alert 파일도 소유권자와 소유그룹을 snort로 설정함) chmod 600 /var/log/snort/alert (1~3자리는 파일 소유자, 4~6자리는 파일을 소유한 그룹, 7~9자리는 그 외 사용 // r : 읽기권한(숫자 4), w : 쓰기권한(숫자 2), x : 실행권한(숫자 1), - : 권한 없음(숫자 0) //읽기 + 쓰기 + 실행 : 4 + 2 + 1 = 7//쓰기 + 실행 : 2 + 1 = 3//읽기 + 실행 : 4 + 1 = 5)
mkdir /usr/local/lib/snort_dynamicrules cp /etc/snort/so_rules/precompiled/Centos버전/i386/스노트버전/*.so /usr/local/lib/snort_dynamicrules (snort에 사용되는 라이브러리를 복사) cat /etc/snort/so_rules/*.rules >> /etc/snort/rules/so-rules.rules (so_rules 폴더에 있는 모든 rules 파일들의 내용을 so-rules.rules라는 파일을 생성해서 내용을 덮어씀) |
5. Snort의 환경 설정파일을 수정한다.
cd /etc/snort vim snort.conf SO_RULE_PATH 를 /etc/snort/so_rules 로 변경 PREPROC_RULE_PATH 를 /etc/snort/preproc_rules 로 변경
reputation preprocessor 부분은 모두 주석처리함
사용자가 사용할 [rules명.rules]를 제외하고는 다른 모든 rules는 주석처리함
unified2 항목으로 이동하여 주석처리된 output 라인을 주석을 삭제하고, 저장될 로그 파일 이름을 merged.log에서 snort.log로 변경하고 limit 128 이외에는 모두 삭제함
cd /etc/snort/rules 폴더에 들어가서 local.rules라는 파일을 생성함(사용하게 될 rules 파일) |
출처 : http://gonisec.tistory.com/entry/Snort-설치
'Security > Snort' 카테고리의 다른 글
snort HTTP 관련 매칭 옵션 (http_uri, http_client_body, http_header, etc..) (0) | 2014.03.18 |
---|---|
Snort 3.0 Alpha and IPv6 - Friday, April 06, 2007 (0) | 2014.02.25 |
[Snort] SnortReport 설치 (0) | 2014.02.11 |
[Snort] 사용 방법 (0) | 2014.02.11 |
[Snort] User Manual (0) | 2014.02.11 |
댓글