[Snort/tcpdump] 우분투 리눅스 환경에서의 Snort 설치 및 실습
예전에 했던 과제랑 실습들 간간이 정리함.
1. IP 주소 확인 및 인터페이스 명 변경
우분투 리눅스 터미널 창에서 ifconfig 명령어를 사용하기 위해 net-tools 우선 설치.
$ sudo apt-get install net-tools
실패하면
$ sudo apt-get update
$ sudo apt-get upgrade
$ ifconfig
명령어를 사용하여 ip주소와 인터페이스 명 확인.
인터페이스 명이 ens33으로 되어있는데 이대로 진행하면 안 되고 Snort 사용을 위해서는 eth0으로 변경해줘야함.
$ vi grup
grup 파일을 vi 편집기로 열어서 GRUB_CMDLINE_LINUX 부분을 위와 같이 추가해준다.
$ sudo grub-mkconfig -o /boot/grub/grub.cfg
명령어를 이용하여 grup을 리빌드. Done까지 뜨는 것을 확인한 뒤, 재부팅한다.
재부팅 뒤, 다시 ifconfig를 사용해 인터페이스명이 eth0으로 변경된 것을 확인한다.
안 바뀌면... 나도 모름.
$ sudo apt-get install snort
SNORT를 설치해준다.
설치 시 나오는 화면에는 아까 eth0으로 바꿔주었던 해당 ip 주소를 입력해준다.
그리고 snort -V 명령어를 사용하여 Snort 버전을 출력하고 정상 설치되었음을 확인한다. 버전과 함께 귀여운 돼지새끼가 나오면 설치 완료.
$ Snort -T -c /etc/snort/snort.conf
명령어를 이용하여 Snort 테스트를 해준다. 위와 같이 버전드로가 함께 Snort successfully validated the configuration! 이라는 문구가 뜨면 성공.
Snort 작동 테스트를 위하여 Tcpdump를 설치한다.
tcpdump란 주어진 조건을 만족시키는 네트워크 인터페이스를 거치는 패킷들의 헤더들을 출력시켜주는 프로그램이다.
$ apt-get install tcpdump
위는 이미 설치된 상태에서 찍어서 저렇게 나왔다.
tcpdump 명령어를 사용하여 패킷들을 캡쳐한 모습.
/etc/snort 경로에서 snort.conf를 열어 위에 보이는 룰들, 즉 578~696번째 줄들을 주석처리한다.
$ tcpdump -ni eth0 host (IP주소)
지정한 IP주소로 가는 패킷만 캡쳐하는 명령어다.
etc/snort/rules 경로에서 local.rules를 열어 규칙을 작성해준다.
위는 모든 패킷(출발이 any, 도착이 any인)을 캡쳐하는 규칙을 1000001번째 규칙으로써 추가시킨 것이다.
ping을 보낼 PC에서 IP주소를 확인한다.
PC1에서 PC2의 IP로 ping을 보내고 그 과정을
$ Snort -A console -q -u snort -g snort -v /etc/snort/snort.conf
명령어를 이용하여 탐지하고 캡쳐하는 모습이다.
local.rules에 작성한 룰대로 탐지되는 것을 볼 수 있다.