스노트(Snort) 실습 1. 우분투(Ubuntu_16.04)에 Snort 설치
목 차
1. 우분투(Ubuntu_16.04) .ova 다운로드
2. 우분투(Ubuntu_16.04) Snort 설치
3. 우분투(Ubuntu_16.04) Snort 룰 테스트
1. 우분투(Ubuntu_16.04) .ova 다운로드
- 리눅스 관련 이미지 다운로드 사이트 : https://www.linuxvmimages.com/
- 다운로드가 완료된 압축파일을 해제하면 .ova 확장자 파일을 VMware에서 열어주면 우분투 설치는 완료된다.
2. 우분투(Ubuntu_16.04) Snort 설치
1) 기본 패키지 설치 진행
- $sudo su
- #apt-get update
- #apt-get ugrade
- #apt-get install make
- #apt-get install make install
- 에러가 발생하는 경우 우분투(Ubuntu) 재시작 진행
- #shutdown -h now
2) Snort 설치 전 필수 소프트웨어(의존성 패키지) 설치 진행
- #apt-get install -y gcc libpcre3-dev zlib1g-dev libluajit-5.1-dev
- #apt-get install libpcap-dev openssl libssl-dev libnghttp2-dev libdumbnet-dev
- #apt-get install bison flex libdnet autoconf libtool
3) Snort 다운로드
① 임시 다운로드 폴더 생성
- #mkdir ~/snort_src && cd ~/snort_src
② Snort 자체는 데이터 수집 라이브러리(DAQ)를 사용하여 패킷 캡처 라이브러리에 대한 추상 호출을 만든다.
- #wget https://www.snort.org/downloads/snort/daq-2.0.7.tar.gz
- #tar -xvzf daq-2.0.7.tar.gz
- #cd daq-2.0.7
③ DAQ를 자동 재구성하는 추가 단계 진행. autoconf 및 libtool이 설치되어 있어야 한다.
- #autoreconf -f -i
④ 설정 스크립트를 디폴트 값으로 실행하고 make로 프로그램을 컴파일하고 마지막으로 DAQ를 설치한다.
- #./configure && make && make install
⑤ wget으로 Snort 소스코드를 다운로드하며 Snort 다운로드 페이지에서 최신 버전 번호를 입력한다.
- #cd ~/snort_src
- #wget https://www.snort.org/downloads/snort/snort-2.9.18.tar.gz
⑥ 다운로드가 완료되면 소스를 추출하고 새 디렉터리로 변경한다.
- #tar -xvzf snort-2.9.18.tar.gz
- #cd snort-2.9.18
⑦ sourcefire를 활성화한 상태에서 설치를 구성하고 make를 실행하고 make install을 실행한다.
- #./configure --enable-sourcefire && make && make install
4) NIDS 모드에서 실행하도록 Snort 구성
① 시스템에 대해 Snort를 구성해야하며, 공유 라이브러리 업데이트 진행
- #ldconfig
② 우분투(Ubuntu)의 Snort는 /usr/local/bin/snort 디렉터리 설치되기 때문에 /usr/sbin/snort에 대한 심볼릭 링크를 만드는 것이 좋다.
- #ln -s /usr/local/bin/snort /usr/sbin/snort
5) 사용자 이름 및 폴더 구조 설정
① root 엑세스 없이 우분투(Ubuntu)에서 Snort를 안전하게 실행하려면 권한이 없는 새 사용자와 데몬을 실행할 새 사용자 그룹을 만든다.
- #groupadd snort
- #useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snort
② Snort 구성을 수용할 폴더 구조를 생성
- #mkdir -p /etc/snort/rules
- #mkdir /var/log/snort
- #mkdir /usr/local/lib/snort_dynamicrules
③ 생성한 디렉토리에 대한 권한을 설정한다.
- #chmod -R 5775 /etc/snort
- #chmod -R 5775 /var/log/snort
- #chmod -R 5775 /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
④ 화이트리스트와 블랙리스트 및 로컬 규칙에 대한 새로운 파일을 생성한다.
- #touch /etc/snort/rules/white_list.rules
- #touch /etc/snort/rules/black_list.rules
- #touch /etc/snort/rules/local.rules
⑤ 다운로드 폴더에서 구성 파일을 복사한다.
- #cp ~/snort_src/snort-2.9.16/etc/*.conf* /etc/snort
- #cp ~/snort_src/snort-2.9.16/etc/*.map /etc/snort
⑥ Snort 설정 파일 수정
- #vi /etc/snort/snort.conf
변경 전 | 변경 후 |
ipvar HOME_NET any | ipvar HOME_NET [탐지할 목적지 IP] |
ipvar EXTERNAL_NET any | ipvar EXTERNAL_NET [탐지할 출발지 IP] |
var RULE_PATH ../rules | var RULE_PATH /etc/snort/rules |
var SO_RULE_PATH ../so_rules | var SO_RULE_PATH /etc/snort/so_rules |
var PREPROC_RULE_PATH ../preproc_rules | var PREPROC_RULE_PATH /etc/snort/preproc_rules |
var WHITE_LIST_PATH ../rules | var WHITE_LIST_PATH /etc/snort/rules |
var BLACK_LIST_PATH ../rules | var BLACK_LIST_PATH /etc/snort/rules |
⑦ Snort가 사용자 정의 규칙을 로드할 수 있도록 local.rules의 주석 처리를 제거한다.
- #vi /etc/snort/snort.conf
- :/local.rules --> '#' 제거
⑧ sed 명령을 사용하여 불필요한 부분을 주석처리 진행 후 테스트 모드를 활성화하여 구성을 테스트한다.
- #sed -i 's/include \$RULE\_PATH/#include \$RULE\_PATH/' /etc/snort/snort.conf
- #snort -T -c /etc/snort/snort.conf
3. 우분투(Ubuntu_16.04) Snort 룰 테스트
1) 사용자 지정 탐지 규칙 경고를 local.rules 파일에 추가
- #vi /etc/snort/rules/local.rules
- alert icmp any any -> 192.168.0.135 any (msg:"ICMP TEST"; sid:10000001;)
- #snort -v -c /etc/snort/rules/local.rules