Veja neste artigo a instalação do sistema de detecção de intrusão na rede
Snort, logando no banco de dados MySQL através do BarnYard2 e
visualizando os logs e gráficos gerenciais pelo Snorby, rodando no
servidor Web Apache2, tudo isso dentro do Debian.
Instalando o MySQL
Instalando o MySQL:
# apt-get install mysql-server-5.1 mysql-client libmysqlclient-dev libpcap-dev
Durante a instalação, será pedida a senha para o usuário root do MySQL, mas, se houver algum problema, configure a senha do root do MySQL com o comando:
# mysqladmin -u root password senharootdomysql
Vamos criar o banco de dados e o usuário para acessá-lo:
# mysql -u root -p
Já no shell do MySQL:
CREATE DATABASE snort;
GRANT all privileges ON snort.* TO snort@localhost IDENTIFIED BY 'senha_snort_mysql';
flush privileges;
QUIT
Instalando o SNORT
Instalando o SNORT:
# apt-get install snort-mysql snort-rules-default
Criando as tabelas para o snort:
# zcat /usr/share/doc/snort-mysql/create_mysql.gz | mysql -u snort -h localhost -p snort
Agora vamos configurar o SNORT editando o arquivo /etc/snort/snort.debian.conf.
Primeiro, configure a rede interna no parâmetro já existente:
DEBIAN_SNORT_HOME_NET=”127.0.0.0/16,192.168.0.0/24”
Interface usada:
DEBIAN_SNORT_INTERFACE=”eth0”
Vamos dizer para o SNORT usar o banco de dados do MySQL, editando o arquivo /etc/snort/database.conf e coloque:
output database: log, mysql, user=snort password=snort_pwd dbname=snort host=localhost
Remova o arquivo de “pendência” do banco de dados para o snort:
# rm -rf /etc/snort/db-pending-config
Reinicie o SNORT e pronto, já está funcionando e registrando no MySQL:
# /etc/init.d/snort restart
Instalando o BarnYard2
Baixe o banryard2 e instale:
# tar xvf barnyard2-1.8.tar.gz
# cd barnyard2-1.8
# ./configure --with-mysql
# make
# make install
# cd etc
# cp barnyard2.conf /etc/snort
Vamos configurar o arquivo /etc/snort/database.conf. Comente com “#” a linha que diz respeito ao MySQL:
#output database: log, mysql, user=snort password=senha_snort_mysql dbname=snort host=localhost
Adicione a linha:
output unified2: filename snort.out, limit 128
Agora vamos editar o arquivo /etc/snort/barnyard2.conf:
config daemon
config hostname: localhost
config interface: eth0
config logdir: /var/log/barnyard2/
config waldo_file: /var/barnyard2/waldo
Acrescente no final a linha:
output database: log, mysql, user=snort password=senha_snort_mysql dbname=snort host=localhost
Vamos criar as pastas para o uso do barnyard2:
# mkdir /var/log/barnyard2
# mkdir /var/barnyard2
Vamos reiniciar o SNORT:
# /etc/init.d/snort restart
Iniciando o BarnYard2:
# cd /etc/snort
# barnyard2 -d /var/log/snort -f snort.out
*** Os
comandos acima para inicialização do BarnYard2 deverão ser executados
sempre na inicialização do sistema, sugiro colocá-los no /etc/rc.local
***
Instalando o Apache2
Instale o apache e alguns requisitos:
# aptitude install apache2 apache2-prefork-dev libapr1-dev libaprutil1-dev libopenssl-ruby libcurl4-openssl-dev gem
Instalando o SNORBY
Vamos instalar os requisitos para o Snorby:
# aptitude install gcc g++ build-essential libssl-dev libreadline5-dev zlib1g-dev linux-headers-generic libsqlite3-dev libxslt-dev libxml2-dev imagemagick git-core libmagickwand-dev default-jre
Instale o wkhtmltopdf:
# wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.10.0_rc2-static-i386.tar.bz2
# tar xvjf wkhtmltopdf-0.10.0_rc2-static-i386.tar.bz2
# cp wkhtmltopdf-i386 /usr/sbin/wkhtmltopdf
Instalando o ruby:
# wget http://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p290.tar.gz
# tar -xvzf ruby-1.9.2-p290.tar.gz
# cd ruby-1.9.2-p290
# ./configure
# make && make install
Vemos a versão instalada:
# ruby -v
ruby 1.9.2p290 (2010-08-18 revision 29036) [i686-linux]
Instalamos os gems:
# gem install thor i18n bundler
# gem install tzinfo builder memcache-client rack rack-test erubis mail text-format sqlite3-ruby
# gem install rack-mount --version=0.4.0
# gem install rails --version=3.0.0
Instalando Snorby:
# git clone http://github.com/Snorby/snorby.git /var/www/snorby
Editamos o arquivo de configuração do banco de dados:
# vi /var/www/snorby/config/database.yml
snorby: &snorby
adapter: mysql
username: snort
password: senha_snort_mysql
host: localhost
Editamos o arquivo de configuração do Snorby:
# vi /var/www/snorby/config/snorby_config.yml
development:
domain: localhost:3000
wkhtmltopdf: /usr/sbin/wkhtmltopdf
test:
domain: localhost:3000
wkhtmltopdf: /usr/sbin/wkhtmltopdf
production:
domain: localhost:3000
wkhtmltopdf: /usr/sbin/wkhtmltopdf
Já no shell do MySQL:
GRANT all privileges ON snorby.* TO snort@localhost;
flush privileges;
QUIT
Instalando o Snorby:
# cd /var/www/snorby
# bundle install
# rake snorby:setup RAILS_ENV=production
Vamos criar o acesso do usuário snort no banco de dados do Snorby:
# mysql -u root -p
Edite o arquivo /etc/snort/barnyard2.conf e acrescente a linha:
output database: log, mysql, user=snort password=senha_snort_mysql dbname=snorby host=localhost
Editando o Apache2
Instalando o módulo passenger:
# gem install --no-ri --no-rdoc --version 3.0.3 passenger
# cd /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.3/bin
# ./passenger-install-apache2-module -a
Vamos criar o arquivo do módulo para o Apache2:
# vi /etc/apache2/mods-available/passenger.load
Adicione no arquivo:
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.3/ext/apache2/mod_passenger.so
Vamos habilitar o módulo:
# vi /etc/apache2/mods-available/passenger.conf
Adicione no arquivo:
<IfModule mod_passenger.c>
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.3
PassengerRuby /usr/local/bin/ruby
</IfModule>
Instalando o módulo:
# a2enmod passenger
# a2enmod rewrite
# a2enmod ssl
Reinicie o apache2:
# /etc/init.d/apache2 restart
Edite o arquivo /etc/apache2/sites-available/default:
<Virtualhost *:80>
# ServerName infosegura
DocumentRoot /var/www/snorby/public/
<Directory /var/www/snorby/public>
RailsBaseURI /
Options +ExecCGI FollowSymLinks -MultiViews
AllowOverride all
Order allow,deny
Allow from all
</Directory>
Reinicie o apache2:
# /etc/init.d/apache2 restart
Vamos reiniciar o SNORT:
# /etc/init.d/snort restart
Iniciando o Snorby:
# cd /var/www/snorby
# ruby script/delayed_job start -e production
*** Os comandos acima para inicialização do Snorby deverão ser executados sempre na inicialização do sistema, sugiro colocá-los no /etc/rc.local ***
Acesse pelo navegador o Snorby: http://<ip_snorby>
Coloque o usuário e senha:
- Usuário: snorby@snorby.org
- Senha: snorby
Tela principal, na qual o “Dashboard” é atualizado a cada 30 min e os eventos são atualizados imediatamente:
Verifique se o Snorby Worker está funcionando clicando em “Administration > Administrator Menu > Worker & Job Queue”.
Dica
Crie o script abaixo para executar o Barnyard2 na inicialização do sistema:
#!/bin/sh
case $1 in
start)
printf "starting $0..."
cd /etc/snort
barnyard2 -d /var/log/snort -f snort.out
echo -e 'OK'
;;
stop)
printf "stopping $0..."
killall barnyard2
echo -e 'OK'
;;
restart)
$0 stop
$0 start
;;
*)
echo "usage: $0 (start|stop|restart)"
;;
esac
Para executar acrescente no /etc/rc.local:
/caminho/nome_script_barnyard2 start
Para executar o Snorby na inicialização do sistema, crie o script:
#!/bin/bash
cd /var/www/snorby
/usr/local/bin/ruby script/delayed_job start -e production
Para executar acrescente no /etc/rc.local:
/caminho/nome_script_snorby
Atualizar o Snorby
O projeto Snorby está em constante desenvolvimento, por isso, se quiser atualizar o seu, é necessário o RAKE:
# gem install rake
Entre no diretório de instalação do Snorby:
# cd /var/www/snorby
Vamos utilizar o GIT para a atualização. Diga a ele que seus arquivos estão nesse diretório…
# git add .
# git commit -m 'Coloque seu comentário aqui'
Verifica as atualizações disponíveis:
# git rm Gemfile.lock && git pull origin master
Atualize as dependências:
# gem update --system
# bundle install --path vendor/cache
Edite o arquivo com as credenciais de acesso ao banco de dados MySQL e coloque o usuário e senha de acesso ao banco do Snorby:
# vi config/database.yml
Atualize o Snorby:
# rake snorby:update
Acesse pelo navegador o Snorby: http://<ip_snorby>