Snorby
Snorby는 루비 스크립트로 작성된 웹 응용 프로그램이다. 바이너리 출력 형식으로 이벤트를 기록한다. Snorby는 침입탐지 시스템인 Snort, Suricata, Sagan을 통합한 프로그램이다. 개인 및 기업 모두 사용을 위한 무료, 오픈 소스를 제공하여 네트워크 모니터링 이용에 높은 경쟁력을 만들 수 있다.
Snorby 설치
테스트 환경
CentOS 6.5
Snorby를 설치 하기 전에 Ruby, Rails, ImageMagick, Wkhtmltopdf가 필요하다.
- Ruby: 동적 객체 지향 스크립트 프로그래밍 언어
- Rails: 웹 애플리케이션 개발을 위한 프레임워크
- ImageMagick: 이미지를 새로 만들거나 수정하는데 사용되는 커맨드라인 기반의 오픈소스 소프트웨어
- Wkhtmltopdf: HTML 문서를 PDF로 변환해주는 프로그램
# yum -y groupinstall "Development Tools"
# yum -y install openssl-devel readline-devel libxml2-devel libxslt-devel mysql mysql-devel mysql-libs mysql-server urw-fonts libX11-devel libXext-devel qconf fontconfig-devel libXrender-devel unzip
ImageMagick
# cd /tmp
# wget wget ftp://ftp.fifi.org/pub/ImageMagick/ImageMagick-6.9.5-8.tar.gz
# tar -xvf ImageMagick-6.9.5-8.tar.gz
# cd ImageMagick-6.9.5-8
# ./configure
# make
# make install
# ldconfig /usr/local/lib
Wkhtmltopdf
# yum -y install xz urw-fonts libXext openssl-devel libXrender
# wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos6-amd64.rpm
# rpm -Uvh wkhtmltox-0.12.2.1_linux-centos6-amd64.rpm
rpm 설치 도중 에러가 발생할 수 있다.
xorg-x11-fonts-Type1, xorg-x11-fonts-75dpi 패키지가 없어서 나타나는 문제이다.
yum을 이용해서 설치를 하면 해결된다.
# yum -y install xorg-x11-fonts-Type1
# yum -y install xorg-x11-fonts-75dpi
다시 설치를 한후 테스트를 진행한다.
위와 같은 결과가 나타나면 설치가 성공적으로 이루어진것이다.
Ruby
# yum -y install libxslt-devel libxml2-devel gdbm-devel libffi-devel zlib-devel openssl-devel libyaml-devel readline-devel curl-devel openssl-devel pcre-devel git memcached-devel valgrind-devel mysql-devel ImageMagick-devel
패키지 설치 도중 문제가 발생하였다. yum-plugin-fastestmirror가 필요해서 발생한 문제이다.
# yum -y install yum-install-fastestmirror
yum-install-fastestmirror 설치 후 다시 패키지를 설치한다.
# yum downgrade libyaml-0.1.3-4.el6_6
버전을 낮쳐주고, 다시 패키지 설치를 진행한다.
루비 설치를 쉽게 할 수 있도록 도와주는 서비스로 RVM(Ruby Version Manager)이라는 것이 있다. 이 RVM은 루비의 설치 과정을 간소화시켜주는 동시에, 루비의 여러 버전을 동시에 관리하는 것이 가능하도록 도와주는 프로그램이다.
다음 링크에 접속한다.
https://rvm.io
위 그림과 같이, ‘Install RVM:’ 하단에 있는 명령어를 ‘$’ 다음 부분부터 맨 끝까지 드래그하여 블록 지정 후 복사한 후 터미널에 입력한다.
# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
# \curl -sSL https://get.rvm.io | bash -s stable
RVM 설치가 완료되었다.
# source /etc/profile.d/rvm.sh
RVM 환경을 적용한다.
# rvm install 2.2.2
# rvm use 2.2.2
버전이 낮으면 설치가 안될수도 있기에 Ruby 2.2.2 버전을 설치하였다.
위와 같이 나오면 제대로 설치된 것이다.
# rvm rubygems current
# gem install rails
위와 같이 나오면 제대로 설치된 것이다.
Snorby
# yum -y install httpd
# service httpd start
# chkconfig --add httpd
# chkconfig httpd on
# gem install bundler
# cd /var/www/html
# mkdir snorby
# cd snorby
# wget -O snorby.zip --no-check-certificate https://github.com/Snorby/snorby/archive/master.zip
# unzip snorby.zip
# mv snorby-master/* /var/www/html/snorby
Create a database for Snorby
# mysql -u root -p
Enter password:
mysql > create database snorby;
mysql > grant all privileges on snorby.* to snorby@localhost identified by 'snorby';
mysql > flush privileges;
mysql > exit
# cp config/database.yml.example config/database.yml
# vi config/database.yml
Gemfile
# vi Gemfile
gem 'rake', '0.9.2' 를 gem 'rake', '> 0.9.2' 으로 변경한다.
gem 'thin'을 추가한다.
gem 'thin'을 주석 처리 한다.
Gemfile.lock
rake (0.9.2)를 rake (0.9.2.2)로 변경한다.
Install Snorby
# cp config/snorby_config.yml.example config/snorby_config.yml
# yum -y install java-1.6.0-openjdk-devel java-1.6.0-openjdk
# yum -y install httpd-devel apr-devel apr-util-devel
# bundle install
# gem update --system
# RAILS_ENV=production bundle exec rake snorby:setup
Test the installation:
# rails server thin -e production
실행 후 브라우저에서 http:// 해당 IP :3000 에 접속하면 아래와 같은 화면이 나타난다.
Change the ownership
# chown -R apache:apache /var/www/html/snorby
Modify the barnyard2.conf
# vi /etc/snort/barnyard2.conf
Modify iptables
# iptables -I INPUT -p tcp --dport 80 -m state --state=NEW,ESTABLISHED,RELATED -j ACCEPT
# /sbin/service iptables save
Snorby Testing
# rails server thin -e production 실행 시
No time_zone specified in snorby_config.yml; detected time_zone: UTC가 나타났다.
# vi /var/www/html/snorby/config/snorby_config.yml
time_zone: 'Asia/Seoul' 을 추가해준다.
No time_zone specified in snorby_config.yml; detected time_zone: UTC 가 나타나지 않는다.
# rails server thin -e production
# snort -c /etc/snort/snort.conf
# barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort/ -f snort.u2
snorby, snort, barnyard2 를 모두 실행시킨다.
http://해당 IP:3000 으로 들어가면 snorby 접속 화면이 나온다. 아래의 계정 정보를 이용하여 로그인을 한다.
Email: snorby@example.com
Password: snorby
다른 호스트에서 ping을 보내게 되면 위와 같은 화면을 확인할 수 있다.
Snoby에서 패킷 정보를 수집하는 도중 다른 Snorby 페이지 view로 이동시 아래와 같은 에러를 확인할 수 있다.
# vi /var/www/html/snorby/log/production.log
로그를 확인해보면 Cannot allocate memory를 할 수 없다는 구문을 확인할 수 있다.
Swap 메모리를 할당하지 않을 경우 위와 같은 에러가 발생할 수 있다.
Swap 할당을 하고 다시 Snorby를 실행하면, 패킷 수집 중에도 다른 페이지로 이동할 수 있다.
[ 출처 ]
https://www.packet6.com/installing-snorby-for-snort/
댓글 없음:
댓글 쓰기