Pessoal hoje iremos aprender passo a passo como instalar e configurar
o Snort com suporte a Mysql e integrado com o Guardian, mas antes de colocar a
mão na massa vamos ver o que é esse tal de Snort e pra que ele serve.
O Snort é um sistema de detecção de intrusão de rede ou simplesmente NIDS,
é uma ferramenta open source que nos permite monitorar o tráfego da rede e descobrir
quando a rede esta sofrendo de acessos não autorizados que pode ser um
potencial atacante.
Inicialmente os pacotes são capturados pelo Snort utilizando o DAQ,
depois são remontados pelos pré-processadores para analisar seu conteúdo e comparam
com as assinaturas existentes para dar confiabilidade ao IDS e evitar falso-negativo,
depois o payload é comparado com as regras que possuímos, então caso exista uma
regra que bata com o payload é gerado o output que pode ser um alerta, logs ou
alguma medida de ação.
O Snort pode vir a ter duas coisas que podem atrapalhar sua
confiabilidade que são:
Falso-negativo – é quando um pacote passa sem ser notificado pelo IDS
, o IDS pensa que o pacote é fluxo normal, na minha opinião pior que os
falsos-positivos.
Falso-positivo – é quando o pacote é notificado como intrusivo, mas na
verdade é somente um falso alerta, alarme falso. O grande problema de muito
falso positivo é a ferramenta perder a credibilidade, é a velha história do
alarme do carro que dispara muito e quando realmente for um furto você não vai
acreditar que estão levando seu carro .
Bem vamos ao que interessa, mão na massa:
Primeiramente iremos instalar e configurar nosso banco de dados mysql:
# aptitude install mysql-server
Depois de instalar iremos criar o usuário snort:
# mysql -u root –p
Entre com a senha de root que você forneceu durante a instalação.
mysql> grant all privileges
on snort.* to snort@localhost identified by "123456";
mysql> quit;
Agora entre no mysql usando o usuario que acabamos de criar.
# mysql -u snort –p
Informe a senha que utilizou para criar o usuário.
Verifique as bases.
mysql> show databases;
Crie a base snort no banco.
mysql> create database
snort;
Agora saia.
mysql> quit
Agora é hora de instalar o Snort:
# aptitude install snort-mysql
Durante a instalação informe a faixa de rede e a mascara que sua rede
usa. Depois você será questionado se deseja que o crie uma base de dados para
gravar os logs, selecione sim e depois dê OK.
Agora acesse o diretório da
documentação do Snort que contém as tabelas:
# cd /usr/share/doc/snort-mysql
Agora use o arquivo create_mysql para criar as tabelas na base snort
do banco.
# zcat create_mysql.gz | mysql
-u snort -h localhost -p snort
Informe a senha do usuario snort.
Depois acesse a base snort do banco e verifique se as tabelas foram
criadas com sucesso:
# mysql -u snort –p
Entre com a senha do usuario
snort.
mysql> show databases;
mysql> use snort;
mysql> show tables;
mysql> status;
mysql> quit;
Agora vá ate o diretório onde estão os arquivos de configuração do
Snort.
# cd /etc/snort
Renomeie o arquivo snort.conf
# mv snort.conf snort.conf.orig
Agora crie uma copia do arquivo que acabamos de renomear sem os comentários
para o arquivos ficar menor e mais legível.
# cat snort.conf.orig | grep -v
^# | grep . > snort.conf
Agora iremos editar o arquivo snort.conf
# pico snort.conf
Na primeira linha (var HOME_NET any) remova o any e digite a faixa de
rede/ mascara:
var HOME_NET 192.168.0.0/24
Agora quase no final do arquivo abaixo da linha (output log_tcpdump:
tcpdump.log) digite o seguinte:
output database: log, mysql, user=snort password=123456 dbname=snort host=localhost
output alert_full: /var/log/snort/alert
Entendendo: Na primeira linha informamos o nome de usuario da banco, a
senha, o nome da base e o host do banco, no exemplo estou usando localhost, mas
é muito importante você colocar o banco de dados em outro servidor. Já na
segunda linha informamos o snort para gerar os logs no arquivo alert.
Agora vá até o arquivo snort.debian.conf e de uma olhada na linha (DEBIAN_SNORT_INTERFACE="eth0")
mude-a caso deseje que o snort escute em outra interface.
Agora remova o arquivo de pendência de configuração do banco de dados.
# rm db-pending-config
Agora entre no arquivo /etc/snort/database.conf e comente a seguinte
linha:
### output database: log, mysql,
Depois disso pode iniciar o snort:
# /etc/init.d/snort start
Agora faça um teste, fique monitorando o arquivo de log do Snort:
# tail –f /var/log/snort/alert
E em outra máquina use o nmap para escanear o host do snort:
# nmap –sX 192.168.0.1 (esse
é o ip do snort no meu laboratorio)
Fique acompanhando o arquivo alert e veja o que acontece.
Pronto até aqui já temos o Snort pronto para gerar os alertas e gravar
no banco de dados, mas ele ainda não é capaz de bloquear nada pois não esta com
o IPS Guardian, vamos fazer isso agora.
Primeiro iremos baixar o guardian:
# cd /opt
Agora iremos descompactar:
# tar –xvzf guardian-1.7.tar.gz
# cd guardian-1.7
Agora iremos editar o arquivo guardian.conf
# pico guardian.conf
Agora informa o ip do servidor na linha HostIpAddr:
HostIpAddr 192.168.0.1
Informe a interface na linha Interface:
Interface eth0
Na linha AlertFile informe o caminho do arquivo alert:
AlertFile /var/log/snort/alert
Salve o arquivo e copie para o /etc/
# cp guardian.conf /etc/
Agora crie o arquivo /etc/guardian.ignore e nele informe os ips que
serão ignorados pelo guardian, no caso pode colocar o ip do Server.
# pico /etc/guardian.ignore
192.168.0.1
Agora iremos copiar os scripts de bloqueio e desbloqueio:
# cd scripts
# cp iptables_block.sh /sbin/guardian_block.sh
# cp iptables_unblock.sh
/sbin/guardian_unblock.sh
Agora caso seu sistema esteje em portugues edite o arquivo guardian.pl
# cd /opt/guardian-1.7
# pico guardian.pl
Procure pla linha que contem inet addr (linha 320) e mude para inet
end. Salve o arquivo e copie para o /sbin/
# cp guardian.pl /sbin
Crie o arquivo de log do guardian:
# touch /var/log/guardian.log
Agora iremos criar o script para o guardian ser executato
automaticamente durante o boot:
# pico /etc/init.d/guardian
#!/bin/bash
test -f /sbin/guardian.pl
|| exit 0
case "$1"
in
start)
guardian.pl -c /etc/guardian.conf
;;
stop)
kill -9 $(pgrep guardian.pl)
;;
*)
echo "Opção invalida. Use start ou
stop."
exit 2
;;
esac
exit 0
Dê permissão de execução para o script:
# chmod 755
/etc/init.d/guardian
Agora pode iniciar o guardian com o comando:
# /etc/init.d/guardian start
E parar com o:
# /etc/init.d/guardian stop
Habilite o guardian para ser executado durante o boot com o assistente
rcconf:
# aptitude install rcconf
# rcconf
Marque a opção do guardian e dê OK.
Bem pessoal agora é só fazer os testes e ver se esta tudo ok e o
guardian esta bloqueado ataques, você pode usar o mesmo teste de antes de
executar o nmap como mostrado acima e ver se o guardian vai bloquear o ip do
atacante.
Pessoal é isso ai, espero que tenham gostado do post, desculpe algum
erro de ortografia, mais pra frente irei postar um artigo de instalação e
configuração do Snort com o Barnyard2 mais o Guardian e suporte ao mysql. Até a
próxima.
muito bom me ajudou muito obrigado
ResponderExcluirboa tarde meu amigo!
ResponderExcluirnão consigo instalar o short-mysql! alguém poderia me ajudar?
snort-mysql!!!!
ResponderExcluir