Snort Install Manual Ad2m VMware libnet-1.1.5.tar.gz DebianOS libpcap-1.1.1.tar.gz Putty snort-2.8.6.tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconfig 명령어로현재 IP를확인해본다. 2) vi /etc/network/interfaces 네트워크설정파일에아래와같이설정을해준다. auto lo auto eth0 iface eth0 inet static address xxx.xxx.xxx.xxx <--- 192.168.1.162 netmask xxx.xxx.xxx.xxx <--- 255.255.255.0 network xxx.xxx.xxx.xxx <--- 192.168.1.0 broadcast xxx.xxx.xxx.xxx <--- 192.168.1.255 gateway xxx.xxx.xxx.xxx <--- 192.168.1.1 3) vi /etc/resolv.conf 설정파일에서 DNS 서버를설정해준다. 네트워크설정파일에서도 DNS 서버를등록할수는있다. nameserver xxx.xxx.xxx.xxx <--- 168.126.63.1 4) ifconfig eth0 up 명령어로 eth0 인터페이스를링크업시켜준다. 5) /etc/init.d/networking restart 명령어를사용하여네트워크를재시작한다. 6) route 명령어를확인후게이트웨이가등록되어있지않으면등록해준다. 7) 아래와같이 default gw를등록해준다. route add default gw 192.168.1.1 8) 통신이제대로이루어지고있는지게이트웨이로 ping 테스트를해본다. ping 192.168.1.1 ping 8.8.8.8 (DNS가제대로등록이되었는지 8.8.8.8로시도해보는것 ) 9) Ping테스트로연결이제대로이루어지고있다면연결은제대로이루어진것이다. 참고인터페이스설정을하다제대로되지않고임시방편으로 IP설정을해준다면아래와같이해보자 ifconfig eth0 192.168.1.162 netmask 255.255.255.0 route add default gw 192.168.1.1 10) ping이안된다면 VMware설정을확인한다.
2. apt-get 사용하기위한미러사이트등록 1) apt-get을사용하여기타설치파일들을다운받기위해미러사이트를등록한다. 2) vi /etc/apt/sources.list 명령어를이용하여미러사이트등록파일에아래와같이설정을해준다. deb cdrom ( 주석처리 ) deb http://ftp.daum.net/debian/ squeeze main contrib non-free( 추가등록 ) deb-src http://ftp.daum.net/debian/ squeeze main contrib non-free( 추가등록 ) [ 그림 1] 3) apt-get update 명령어를이용하여 /etc/apt/sources.list 의패키지데이터베이스를업데 이트한다. 3. 원격지에서접속하기위해 SSH 를설치 1) apt-get install openssh-server를이용하여 ssh-server를설치한다. ssh-client는기본적으로설치가되어져있다. 2) netstat an grep LISTEN으로열려있는포트를확인해보자. port 22번이열려있는지확인한다. 3) putty로원격접속확인해본뒤접속이된다면 SSH가제대로설치가이루어졌다고확신하면된다.
4. apt-get 으로아래와같은기본설치파일들다운 1) 아래명령어를사용하여설치해준다. apt-get install gcc g++ bison flex autoconf libc6-dev m4 apt-get install checkinstall apt-get install autoconf apt-get install build-essential apt-get install libnet1-dev apt-get install mysql-client apt-get install libmysqlclient* apt-get install libpcre* 5. Snort 사용에있어필요한파일들을설치 1) 원격지로파일을이동하기위해 Winscp 를이용하여 /tmp 에옮겨놓는다. libpcap-1.1.1.tar.gz snort.conf libnet-1.1.5.tar.gz hsc.v104.sql snort-2.8.6.tar.gz rules [ 그림 2] [ 그림 3]
2) snort.conf, hsc.v104.sql 은설정이되어져있는파일이다. 뒤에다시한번나오겠지만설 설정에있어서필요한파일이기때문에미리옮겨놓는것이다. 3) 아래와같은명령어를이용해서설치를진행하자. cd /tmp tar xzvf libpcap-1.1.1.tar.gz cd /tmp/libpcap-1.1.1./configure make make install tar xzvf libnet-1.1.5 tar.gz cd /tmp/libnet-1.1.5./configure make make install apt-get install snort-mysql 6. mysql 설치 1) apt-get install mysql-server 명령어를사용하여 mysql 을설치한다. apt-get install mysql-server 2) 설치도중에 root 의비밀번호를설정하게된다. [ 그림 4] 3) netstat an grep LISTEN 명령어를사용하여 mysql 3306 포트가열려있는지확인한 다.
netstat an grep LISTEN 4) mysql 설치는완료가된것이다. [ 그림 5] 참고 apt-get 으로 mysql 설치가잘못되었을경우설정파일도지워주는 --purge 옵션을 사용해완전삭제후다시설치해야한다. apt-get --purge remove 패키지명 reboot apt-get install mysql-server 7. SNORT 설치 1) tar 명령어를이용하여 tar 압축을해제하자. tar xzvf snort-2.8.6.tar.gz 2) Snort 와 mysql 을연동시키며설치하기위해서아래와같은명령어를사용한다../configure --with-mysql --prefix=/etc/snort make make install 중요!./configure with-mysql prefix=/etc/snort 이와같은명령어를사용하지않을 경우 DB 설치가제대로이루어지지않는다. 3) snort설치는됐다. 이제 mysql과연동을시켜보자!! 4) mysql에 snort DB와 hsc에서사용할 aw_hsc DB를생성해보자 mysqladmin -u root -p create snort mysqladmin -u root -p create aw_hsc
[ 그림6] 5) Snort와 mysql을연동해보자. 6) 연동을하기전에 /tmp/hsc.v104.sql 파일을 /etc/snort/schemas/hsc.v104.sql 이와같은경로로이동을시키자. 7) 아래와같은명령어로연동을시켜주자. mysql -D snort -u root -p < /tmp/snort-2.8.6/schemas/create_mysql mysql -D aw_hsc -u root -p < /tmp/snort-2.8.6/schemas/hsc.v104.sql [ 그림 7] 8) 위와같이 snort 연동은아무이상이없지만, aw_hsc 연동은에러가난다.
[ 그림 8] [ 그림 9] 9) [ 그림7] 과같이에러가났을때는 [ 그림9] 와같이 aw_hsc.sql 파일을수정해주어야한다. 해당파일안에테이블의제목마다 -- 이와같은하이픈처리가되어있다. 이부분을 # 주석처리해주어야한다. 다시한번 aw_hsc DB를연동시켜보면아무이상이없을것이다. 10) DB 에사용자권한을설정해주자. mysql -u root -p grant all privileges on * to snort@'%' identified by ' 암호 '; grant all privileges on * to aw_hsc@'%' identified by ' 암호 ';
11) 설정을적용시켜주자. flush privileges; 12) 권한을주고난뒤에각 DB 별로접속해보자. [ 그림10] 참고원격에서 DB접속이안된다싶으면 /etc/mysql/my.cnf 파일을열어서 47번라인부분에 bind-address = 127.0.0.1 문장을주석처리한후저장한다. mysql을재실행한다. (/etc/init.d/mysql restart) [ 그림 11]
8. snort.conf 파일과 rules 파일덮어쓰기 1) /tmp 파일에옮겨놓은 snort.conf파일을 /etc/snort/snort.conf파일에덮어쓰기를한다. 2) /tmp/ 파일에있는 rule파일을 /etc/snort에있는 rules파일에덮어쓰기를한다. 3) Snort 데몬실행단축키설정을위해 vi.bashrc로접속하여설정을해준다. 4) 설정후 source.bashrc 명령어로 alias 저장해준다 [ 그림 12] 9. SNORT 실행 1) 아래의명령어로 Snort를실행해보자. snort-c /etc/snort/snort.conf -l /var/log/snort/ -i eth0 -T snort-c /etc/snort/snort.conf -l /var/log/snort/ -i eth0 D
[ 그림13] 2) 탐지가제대로이루어지고있는지이벤트를확인해보자. 3) 탐지테스트를하기위해선 nc파일을이용하여패턴을만든후탐지테스트를진행해도되지만현재로선 hping을이용하여테스트를진행해도무관하다. 4) 아래그림은 hping을이용하여테스트를진행하였다. 5) 이벤트를확인하기위해 mysql에접속을하여아래와같은명령어확인해보면된다. mysql u root p use snort; select * from event;
[ 그림 14] 6) data 또는탐지시그니처를확인하기위해서아래와같은명령어를사용해도된다. select * from data; select * from signature; select sig_name from signature; 7) 또다른방법으로는 /var/log/snort 에서 tcpdump.log 라는파일이저장이되어있는걸확 인할수있다. 해당파일의내용을확인해보면알수있다. [ 그림 15]