2 분 소요


 그럼 이제 이 BASE가 snort와 잘 연동이 되는지 한번 테스트 해보자... 뭐가 좋을까..
그냥 제일 기본적인 rule 아무거나 추가해서 확인해보자.

$cd /usr/local/snort/etc/rules
이 폴더로 이동하면 현재 Snort에 적재되어있는 Rule 파일들을 볼 수 있다. 하나의 .rules 파일에 여러개의 룰들이 들어가있다.
룰의 기본적인 구성 등등은 이 포스트의 논 외인 것 같고, 대충 아무 rule이나 만들어서 추가해보자
$sudo vi local.rules
텍스트 편집기가 열리면 제일 밑 줄에
alert tcp any any -> any any (msg:"test"; sid:1000000)
라고 추가하자. 왜 이런 룰이 나오는지는 나중에 설명하기로 하고.. 대충 이 룰은 그냥 들어오고 나가는 모든 트래픽을 잡으라는 뜻이다.

1. Barnyard2와 Snort를 실행하자.
$sudo /usr/local/bin/barnyard2    -c  /usr/local/snort/etc/barnyard2.conf   -G  /usr/local/snort/etc/gem- msg.map   -S /usr/local/snort/etc/sid-msg.map   -d /var/log/snort   -f snort,u2   -w /var/log/snort/barnyard2.waldo   -D

$sudo /usr/local/snort/bin/snort -u snort -g snort -c /usr/local/snort/etc/snort.conf -i eth0

 이제 IDS머신이 돌아가고 있는 상태이다. ping을 날려보거나 웹사이트를 돌아다녀보자. 아주 잠깐만이어도 충분하다..
위에 테스트용으로 만들어 놓은 규칙은 무지막지하니까..
 쌓인 기록들이 많아지면 BASE의 로딩 속도가 느려진다. 그나마 BASE가 다른 플러그인들 보다도 빠른 편인데도 불구하고 기록의 수가 몇만개를 넘어가면 버벅버벅 거린다. 이때는 데이터베이스를 초기화 시켜주자. 데이터 베이스를 아예 삭제했다가 다시 만드는 무식한 방법도 있지만 BASE는 데이터베이스 초기화를 제공한다.  BASE의 메인 화면 밑쪽에 보면 작은 메뉴 세개 중에 Cache & Status 부분이 보일 것이다. 이를 클릭하면 중간쯤에 Database 관련 메뉴가 등장한다.
'Clear Data Tables' 라고 써있다 신난다 ㅋㅋㅋㅋ
나는 처음에 이걸 몰라서 데이터베이스를 지웠다 만들었다를 하곤 했었다.... 아....

2. 자동 실행 파일 만들기
 snort가 항상 돌아가고 있길 원한다면 아예 시스템 부팅시에 한번만 명령어를 치도록 설정하면 좋을 것이다. 아니라면 매번 저 위의 명령어들을 다 쳐야하니까....

$sudo vi /etc/init.d/rc.local
텍스트 편집기가 뜬다!. 제일 밑의 exit 0 위에다가 아래 내용을 추가한다.

<여기부터>
ifconfig eth0 up
/usr/local/snort/bin/snort -u snort -g snort -c /usr/local/snort/etc/snort.conf -i eth0

/usr/local/bin/barnyard2    -c  /usr/local/snort/etc/barnyard2.conf   -G  /usr/local/snort/etc/gem- msg.map   -S /usr/local/snort/etc/sid-msg.map   -d /var/log/snort   -f snort,u2   -w /var/log/snort/barnyard2.waldo   -D
<여기까지 추가!>

다 되었다. 이제 컴퓨터를 처음 켰을 때
$sudo /etc/init.d/rc.local start
라고 명령을 주면 계에속 켜있다. 

참고1) 지금 snort가 켜있는지 확인하는 방법은
$ps -aux |  grep snort
라고 쳐서 snort라고 표시된 항목이 나오나 보면 된다. 

참고2) barnyard가 실행되지 않으면 데이터베이스에 기록이 쌓이지 않는다. barnyard2를 꼭 실행시켜 주자 (비록 명령문은 길지만,,)

3. rc.local 파일 만들기는 싫고 긴 명령어 치기는 싫을 때.
 이럴때는 그냥.. 펄스크립트 쓰자.... 이런 뭐 같지도 않은 hello world 수준의 코드 몇줄이면 system에서 쉘 명령을 내리는 프로그램이 완성된다.

<여기부터>
#!/usr/bin/perl
system "ifconfig eth0 up";
system "sudo /usr/local/bin/barnyard2    -c /usr/local/snort/etc/barnyard2.conf   -G  /usr/local/snort/etc/gem- msg.map  -S /usr/local/snort/etc/sid-msg.map -d /var/log/snort  -f snort,u2   -w /var/log/snort/barnyard2.waldo -D";
system "sudo /usr/local/snort/bin/snort -u snort -g snort -c /usr/local/snort/etc/snort.conf -i eth0";
<여기까지>

*PERL 파일 만드는법! 참고
 그냥... vi 파일이름.perl 이렇게 치면 새 파일이 생성되면서 텍스트 편집기가 열린다.
예를들어 vi apple.perl 이렇게 치고 코드를 줄줄 쓴다음, 저장하면 된다. perl 파일 실행시에는
$perl apple.perl  이렇게 치면 실행이 된다.


종료할 때는 마찬가지로 Ctrl+C 이다.

일단 여태까지 단순 설치법에 대해서만 알아보였다.   다섯개에 걸친 포스팅은 전부 설치에 관한 내용이었고 앞으로는 운영 등등을 다루려고 한다.          
아, 스노트가 제대로 돌아가는 것을 확인했으면 아까 추가했던 룰은 지우거나 주석처리 해주자.. 그렇지 않으면 데이터베이스가 너무 커져서 BASE 자체가 켜지지 않는 사태까지 발생할 수 있다. 

아 힘들다 ㅜㅜ



카테고리:

업데이트:

댓글남기기