본문 바로가기

카테고리 없음

snort 설치

 

- IDS(Intrusion Detection System) 시 스템에서 snort는 A-BOX에 해 당한다.

- R-BOX를 강화시키고 여러가지 보안 기능을 포함하는 시스템을 IPS (Intrusion Prevention System) 라 한다.

- E-box : daq(Data AcQuisition system)

- D-box : barnyard2, MySQL

 

snort는 snort.org에서 제공

- 2.9.0 부터 DB에 대한 connect 기능이 제공되지 않는다.

- snort, DAQ( Data Acquisition Package)는 다양한 배포본이 제공된다.

- sniffer등으로도 사용 가능하다.

 

설치 과정

1. 관련 패키지 설치

2. daq 설치

3. snort 설치

4. 기본 환경 설정

5. snort.conf 설정

6. 실행과 테스트

 

 

1. 관련 패키지 설치

- Dependency로 인해 대략 40~50 정도의 패키지가 설치된다.

# yum -y install libdnet-devel openssl-devel pkgconfig gcc flex bison zlib* libpcap* pcre* libpcap-devel libpcre3-devel libnetfilter-queue-devel iptables-devel libdnet* tcpdump

 

2. daq 설치

- daq와 같이 설치되야 하는 libnghttp2는 epel에서 제공한다.

# yum install -y daq daq-devel daq-modules libnghttp2

# ln -s /usr/lib64/libdnet.so.1.0.1 /usr/lib64/libdnet.1             //링크 파일 생성

epel-release-7-11.noarch.rpm
0.01MB
epel-release-5-4.noarch.rpm
0.01MB
epel-release-6-8.noarch.rpm
0.01MB

 

3. snort 설치

- Wget를 이용해서 다운 받아 설치한다.

- 설치 후 작동 여부를 확인한다. 

- rpm 패키지를 설치하면 snort 계정도 생성된다.

# wget https://snort.org/downloads/snort/snort-2.9.16-1.centos7.x86_64.rpm

# rpm -Uvh snort-2.9.16-1.centos7.x86_64.rpm

# snort -V

 

snort를 설치하니 snort 계정이 자동으로 생성이 되어있다.

 

 

4. 기본 환경 설정

- snort 실행에 필요한 기본 디렉토리와 rule 파일을 생성하고 퍼미션을 조정한다.

# mkdir /usr/local/lib/snort_dynamicrules

# touch /etc/snort/rules/white_list.rules

# touch /etc/snort/rules/black_list.rules

# touch /etc/snort/rules/local.rules

 

# chmod -R 700 /etc/snort 

# chmod -R 700 /var/log/snort

# chmod -R 700 /usr/local/lib/snort_dynamicrules

# chown -R snort.snort /etc/snort

# chown -R snort.snort /var/log/snort

# chown -R snort.snort /usr/local/lib/snort_dynamicrules

 

- test를 위해 /etc/snort/rules/local.rules 파일에 다음 rule을 추가한다.

# vi /etc/snort/rules/local.rules

alert icmp any any -> $HOME_NET any (msg:"ICMP TEST"; sid:10000001; rev:001;) 로 수정

// 경고 출력

// rev : 개선넘버

// msg:"ICMP TEST" <- msg : " 이런식으로 사이에 공백이 들어가면 에러가 날 수 있음으로 주의

/etc/snort/rules/local.rules 파일

 

5. snort.conf 설정

- /etc/snort/snort.conf 파일은 snort의 환경 설정파일이다. 수정 전 반드시 백업받는다.

# cp /etc/snort/snort.conf /etc/snort/snort.conf.back

/etc/snort/snort.conf 파일을 /etc/snort/snort.conf.back 파일로 백업 시켜준다

 

- 다음 항목을 찾아 수정한다.

ipvar HOME_NET 192.168.12.0/24   //snort의 네트워크 주소 

ipvar EXTERNAL_NET !$HOME_NET

var RULE_PATH /etc/snort/rules

var SO_RULE_PATH /etc/snort/so_rules

var PREPROC_RULE_PATH /etc/snort/preproc_rules

var WHITE_LIST_PATH /etc/snort/rules

var BLACK_LIST_PATH /etc/snort/rules

output unified2: filename snort.log, limit 128            //128Mbyte 까지 만들어라

 

- 파일 내에 include $RULE_PATH/local.rules 아래 모든 룰은 삭제한다.

include $RULE_PATH/local.rules 아래 모든 룰 주석처리 완료!

 

6. 실행과 테스트

- snort를 실행하고 탐지를 테스트한다.

- -i : 'ERROR: Cannot decode data link type 239' 에러 방지

# snort -i ens32 -A console -c /etc/snort/snort.conf           //-A 출력 방향 지정, -c conf 파일 어떤거 쓸지 지정

(# snort -i ens32 -A fast -c /etc/snort/snort.conf)

snort 실행 화면

 

- 시스템에 ping을 보낸후 /var/log/snort 에 생성된 log 파일이나 alert 파일을 확인한다.

 

# snort -r  로그파일

 

# cat /var/log/snort/alert

바이너리 파일로 저장이 되어있는 것 같다.