3 분 소요


 두번째 포스팅에서는 본격적으로 Snort 설치를 해보려고 한다..
전 포스팅에서 언급했던 네트워크 토폴로지에 의하면, 우리는 네트워크 카드가 두개가 필요하고 스위치도 필요하고 컴퓨터도 하나 더 필요하고~~ 뭔가 많지만(이것 말고 다른 여러 토폴로지들도 당연히 가능하다. 요건 권장 사항 중 하나일 뿐이다) 데탑 하나와 노트북 하나로 연명하는 나는 그냥 데탑에 전부다 깔아버리기로 했다.. 그렇다고 안도는건 아니니까..
 다시 말해 나의 토폴로지는 그냥.... 

외부인터넷망 -> 라우터(학교안 어딘가 있을..) -> Snort IDS(그냥 내 컴퓨터 -_-;)

 이게 끝이다.. 아 허무한 구성이여.. 뭐 실제로 공격을 잡고자 하는 용도는 아니고 시뮬레이션 용도니까... 라고 나와 타협좀 하고... 어차피 하드웨어 방화벽을 쓰지는 않으니까(학교 망 밖에서는 쓰고있겠지만 여튼,,) 이런 심플한 구성으로 일단 설치만 해보자.

 그냥 리눅스 명령어를 줄줄 쓰는게 마음편할 것 같아서 단순무식하게 정리해놓는다. 나중에 그냥 나온대로만 따라해도 잘 되게..리눅스 까는건 알아서... 깔고.... 이번 설치는 Ubuntu 10.04 LTS 버전으로 진행할 것이다. 윈도우에도 Snort를 깔아는 봤는데 많이 테스트해보지 않았고 익숙하지 않아서 제한다. 게다가 Snort는 본래 리눅스 기반이었기 때문에 이쪽이 운영 상 더 나은 것 같다....

 설치환경: Ubuntu 10.04 LTS / 64bit / Snort 2.9.2 

* 모든 명령어는 우분투 기준이다.. 레드햇이나 페도라 등 다른 리눅스를 쓰는 사람은 apt-get install 같은거 없다 ( ㅇ_ㅇ)
* apt-get install 명령은 인터넷에 연결되어있어야 동작한다..... 는 당연한건가....................
* tab을 적극 활용하자. 리눅스에서는 타이핑을 하다가 tab을 누르면 현재 폴더 안에 있는 것들 중 문자열이 일치하는 것을 자동으로 써준다.
  예를 들어, apple.txt 라는 파일이 현재 내 폴더 안에 있으면, ap 까지만 쓰고 tab을 누르면 자동으로 apple.txt가 써진다.
  밑의 설치 과정에서 경로명을 찾아가야 할 때가 많은데 오타가 하나라도 생기면 안되기 때문에 tab을 자주 이용한다. 엄청 편하고.
  리눅스를 쓴다면 기본이겠지만 혹시 모르는 사람도 있을까봐 추가함.

1. 필요 패키지들 먼저 설치
$sudo apt-get install nmap
$sudo apt-get install nbtscan
$sudo apt-get install php5
$sudo apt-get install php5-mysql
$sudo apt-get install php5-gd
$sudo apt-get install libpcap0.8-dev
$sudo apt-get install libpcre3-dev
$sudo apt-get install g++
$sudo apt-get install biso
$sudo apt-get install flex
$sudo apt-get install libpcap-ruby

$sudo apt-get install mysql-server
$sudo apt-get install libmysqlclient16-dev

*) 마지막에서 두번째 줄 mysql-server (데이터베이스다..) 설치과정에서 루트 비밀번호를 설정하라고 나온다. 비밀번호를 아무거나 정해서 입력하면 된다. 단 잊어버리지 않게 주의하자.


2. Snort를 다운받자!!

1) Data Acquisition API 다운로드 및 설치 (Snort Core 설치 전에 해주자)
$cd ~/Downloads              
 (일단 다운로드 폴더로 이동합니다>< (아무 폴더나 홈 폴더에 다운받아도 되지만 그냥 다 모아놓는게 이뻐서 -_-)
$sudo tar zxvf daq-0.6.2.tar.gz
$cd daq-0.6.2
$sudo ./configure
$sudo make
$sudo make install
$sudo ldconfig

2) libnet 다운로드 및 설치
$cd ..
$sudo tar zxvf libdnet-1.12.tgz
$cd libdnet-1.12
$sudo ./configure
$sudo make
$sudo make install
$sudo ln -s /usr/local/lib/libdnet.1.0.1   /usr/lib/libdnet.1   (띄어쓰기 잘보자..)

3) Snort 다운로드 및 설치
$cd ..
$sudo tar zxvf snort-2.9.2.tar.gz
$cd snort-2.9.2
$sudo ./configure --prefix=/usr/local/snort --enable-sourcefire
$sudo make
$sudo make install
$sudo mkdir /var/log/snort
$sudo mkdir /var/snort
$sudo groupadd snort
$sudo useradd -g snort snort
$sudo chown snort:snort /var/log/snort

이제 스노트도 설치했고 권한도 줬으니, 스노트의 로그를 저장할 데이터베이스를 만들자!
아래 과정에서는 아까 생성한 mysql 데이터베이스 비밀번호를 쳐야한다..
$echo "create database snort;" | mysql -u root -p
$mysql -u root -p -D snort < ./schemas/create_mysql
$echo "grant create, insert, select, delete, update on snort.* to snort@localhost identified by '내비밀번호'" |  mysql -u root -p

4) Snort Rule 다운로드
 스노트 룰은 wget으로 받을 수 없다.. 로그인이 필요하기 때문에.. 홈페이지( http://www.snort.org/snort-rules ) 에 가보면 Subscriber Release 와 Registered User Release 두 버전의 룰이 있는 것을 확인할 수 있다. Subscriber 버전은 돈을 주고 산 사람들이다 (...) 나는 착실한 무료 유저이므로 Registered 룰을 이용하도록 하겠다. Snort를 만든 SourceFire에서는 주기적으로 룰을 업데이트 하는데 이 두 버전 룰의 차이는 하나다. Registered가 Subscriber보다 한달 느리다. 한 달 전 버전이라는 뜻.
 바이러스 백신 업데이트를 한 달 동안 안했다고 하면 어느정도 느낌인지 감이 올 것 같다. 하지만 둘이 큰 차이는 없고 어차피 Subscriber 버전이 한달 후엔 Registered 버전으로 바뀌기 때문에 그냥 쓴다 -_-
 현재(2012/4/4) 룰의 최신 버전은 Subscriber Release 가 '2012/4/3' 이고 (..어제네 -_-)  Registered User Release는 '2012/3/1' 이다. Snort에 회원가입을 한 후 Registered User Release 칸에 있는 'snortrules-snapshot-2912.tar.gz' 를 다운받는다. 물론 뒤의 숫자는 바뀔수도 있다.
다운받으면 홈 폴더의 Downloads 폴더에 넣어주자.. (크롬에서 받았다면 기본값으로 Downloads 폴더에 들어간다. firefox는 모르겠당)
 다시 쉘로 돌아가서!

$cd ~/Downloads
$sudo tar zxvf snortrules-snapshot-2921.tar.gz -C /usr/local/snort
$sudo mkdir /usr/local/snort/lib/snort_dynamicrules

$sudo cp /usr/local/snort/so_rules/precompiled/Ubuntu-10-4/i386/2.9.2.1/*  /usr/local/snort/lib/snort_dynamicrules  
(띄어쓰기 주의 / 2.9.2.1 숫자가 다를 수도 있다. tab으로 확인하면서 진행하자)
*32bit 컴퓨터일 경우에만 해당하는 명령어이다. 64bit 컴퓨터일 경우에는
 $sudo cp /usr/local/snort/so_rules/precompiled/Ubuntu-10-4/x86-64/2.9.2.1/*  /usr/local/snort/lib/snort_dynamicrules  
로 명령해야 한다!!  *

이어서
$sudo touch /usr/local/snort/rules/white_list,rules
$sudo touch /usr/local/snort/rules/black_list.rules
$sudo ldconfig




 아아아아 다 설치했다..... 는 아니고 한 70%쯤 한 것 같다. 다음 포스팅에서는 스노트 환경설정을 해보자 ㅜㅜ
혹시라도 있을 오타에 벌벌 떨며.




카테고리:

업데이트:

댓글남기기