SAMSB - Snort + Apache2 + MySQL + Snorby e BarnYard2 no Debian
Tutorial para 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, Snort e o BarnYard2
Instalando o MySQL
No terminal:# apt-get install mysql-server-5.1 mysql-client libmysqlclient12-dev
Durante a instalação será pedido 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:
mysql> CREATE DATABASE snort;
mysql> GRANT all privileges ON snort.* TO snort@localhost IDENTIFIED BY 'senha_snort_mysql';
mysql> QUIT
Instalando o SNORT
No terminal:# 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. Edite o arquivo /etc/snort/database.conf e coloque:
output database: log, mysql, user=snort password=snort_pwd dbname=snort host=localhost
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/snort.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
config hostname: localhost
config interface: eth0
config logdir: /var/log/barnyard2/
config waldo_file: /var/barnyard2/waldo
Acrescente 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
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.
Gostaria somente de deixar algumas dificuldades que tive:
- Problemas com módulo dm-active_model.
Informação: dm-active somente roda na versão maior que a informada.
Solucão: gem update --system
- Problemas no rank: undefined method `symbolize_keys' for nil:NilClass
Informação: Problemas de espaço na edição dos arquivos .yml. Verifique os espaços comparando com o original.
- Problemas no rank: uninitialized constant Rake::DSL
Informação: Necessário atualizar o RANK
Solução: gem install rank
- Problema ao executar o comando: ruby script/delayed_job -e production
Erro:
DataObjects::URI.new with arguments is deprecated, use a Hash of URI components (/usr/local/lib/ruby/gems/1.9.1/gems/dm-do-adapter-1.1.0/lib/dm-do-adapter/adapter.rb:231:in `new')
ERROR: no command given
Informação: Houve alteração do comando na nova versão.
Solução: Roda comando: ruby script/delayed_job start production
Espero que tenha ajudado.
Abs,
Anderson.