Snort + MySQL + Guardian - Instalação e configuração

Introdução

 

Pessoal, aqui aprenderemos, 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 para que 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 está sofrendo de acessos não autorizados que podem ser de um potencial atacante.

O Snort funciona da seguinte maneira: Inicialmente os pacotes são capturados pelo Snort utilizando o DAQ, depois são remontados pelos pré-processadores para analisar seu conteúdo e comparar 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. Em 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.


Fonte: Sp0oKeR Labs: Introdução ao Snort - Serie Snortando (Parte 1)

Bem, vamos ao que interessa. Mão na massa!

MySQL

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 [email protected] identified by "123456";
mysql> quit;

Agora entre no MySQL usando o usuário 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;

Saia:

mysql> quit

 

Snort

Agora é hora de instalar o Snort:

# aptitude install snort-mysql

Durante a instalação, informe a faixa de rede e a máscara que sua rede usa. Depois você será questionado se deseja que seja criado 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

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 usuário "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 usuário snort)

mysql> show databases;
mysql> use snort;
mysql> show tables;
mysql> status;
mysql> quit;

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

Crie uma cópia do arquivo que acabamos de renomear sem os comentários, para o arquivo ficar menor e mais legível:

# cat snort.conf.orig | grep -v ^# | grep . > snort.conf

Agora vamos editar o arquivo "snort.conf":

# pico snort.conf

Na primeira linha (var HOME_NET any) remova o "any" e digite a faixa de rede/máscara:

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 usuário 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 dê uma olhada na linha (DEBIAN_SNORT_INTERFACE="eth0"), mude-a caso deseje que o Snort escute em outra interface.

Remova o arquivo de pendência de configuração do banco de dados:

# rm db-pending-config

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

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

Obs.: Esse é o IP do Snort no meu laboratório.

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 está com o IPS Guardian. Vamos fazer isso agora.

 

Guardian

Primeiro baixaremos o Guardian:

# cd /opt
# wget -cv
http://www.chaotic.org/guardian/guardian-1.7.tar.gz

Agora iremos descompactar:

# tar -xvzf guardian-1.7.tar.gz
# cd guardian-1.7


Editar o arquivo "guardian.conf":

# pico guardian.conf

Informar 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/

Crie o arquivo /etc/guardian.ignore e nele informe os IPs que serão ignorados pelo Guardian. No caso, pode colocar o IP do servidor:

# pico /etc/guardian.ignore

192.168.0.1


Copiaremos os scripts de bloqueio e desbloqueio:

# cd scripts
# cp iptables_block.sh /sbin/guardian_block.sh
# cp iptables_unblock.sh /sbin/guardian_unblock.sh


Caso seu sistema esteja em português, edite o arquivo "guardian.pl":

# cd /opt/guardian-1.7
# pico guardian.pl


Procure pela linha que contém "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

Criaremos o script para o Guardian ser executado 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.

Conclusão

Agora é só fazer os testes e ver se está tudo OK. O Guardian está bloqueando ataques, você pode usar o mesmo teste antes de executar o Nmap como mostrado acima e ver se o Guardian vai bloquear o IP do atacante.

Pessoal, é isso aí. Espero que tenham gostado do post. Adiante postarei um artigo de instalação e configuração do Snort com o Barnyard2 mais o Guardian e suporte ao MySQL.


Artigo também publicado em: Guia do TI: Instalando e Configurando Snort-Mysql + Guardian

 

Fonte: https://www.vivaolinux.com.br/artigo/Snort-MySQL-Guardian-Instalacao-e-configuracao?pagina=3

.