Ads 468x60px

quarta-feira, 21 de setembro de 2011

Instalando o SAMBS (Snort + Apache2 + MySQL + BarnYard2 + Snorby) no Debian


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:
# 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://
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://

Referências:

Fonte:Imasters

0 comentários: