Snort é um "farejador" que analisa todo o tráfego da rede, porém não toma nenhuma atitude. Neste tutorial você verá como integrar o Snort com o
Guardian. O Guardian, por sua vez, toma a ação de atualizar o iptables com os alertas gerados pelo Snort, ou seja, ele interpreta o log do Snort e atualiza a regra do iptables.
Antes de iniciar, vamos colocar os seguintes mirrors em nosso
sources.list:
deb http://ftp.us.debian.org/debian lenny main contrib non-free
deb http://de.debian.org/debian squeeze main
Agora vamos atualizar a lista de pacotes:
# apt-get update
Criar diretório IDS na raiz:
# mkdir /IDS
Criar diretório para instalação do http:
# mkdir /www
Copiar todos os pacotes para /IDS:
# cp snort-xxx.tar.gz /IDS
# cp http-xxx.tar.gz /IDS
Descompactar em
/IDS e fazer a compilação:
# tar -zxvf http-xxx.tar.gz
# cd http-xxx
Obs.: Verifique se o pacote
build-essential está instalado, pois utilizaremos o compilador
GCC e esse pacote já vem o GCC e outros softwares. Caso não esteja devidamente instalado, utilize:
# apt-get -y install build-essential
# ./configure --prefix=/www
# make && make install
Verifique se o iptables está instalado e sua versão utilizando:
# iptables -V
Antes de instalar o
Snort, vamos instalar a
Libcap, que é necessária para a instalação do Snort:
# apt-cache search libpcap
(assim verificamos o nome e a versão do pacote)
# apt-get -y install libpcap0.8-dev
Foi utilizada a versão 0.8 da libpcap.
Precisamos instalar também o
Libpcre:
# apt-get -y install libpcre3-dev
Agora vamos instalar o Snort-xxx:
# tar -zxvf snort-xxx.tar.gz
# cd snort-xxx
# ./configure
# make && make install
Crie os seguintes diretórios:
# mkdir /etc/snort
# mkdir /etc/snort/rules
Ainda no diretório
/IDS/snort-xxx faça:
# cd etc/
# cp classification.config gen* threshold.conf unicode.map sid* snort.conf reference.config /etc/snort/
Agora vamos colocar as rules baixadas do site
snort.org (lembrando que é necessário ter login no referido site para baixar as rules):
# cd /IDS
# tar -zxvf snortrules-snapshot-CURRENT.tar.gz
# cd rules
# cp * /etc/snort/rules
Obs.: O link direto para download é:
snortrules-snapshot-CURRENT.tar.gz
Para isso você precisa ter login, mas para criar seu login no site é FREE, grátis. :)
Crie o arquivo que irá guardar os logs:
# mkdir /var/log/snort
# cd /var/log/snort
# touch alert
Para rodar o Snort, edite o arquivo:
# vim /etc/snort/snort.conf
Altere a linha:
var RULE_PATH ../rules
Para:
var RULE_PATH /etc/snort/rules
E faça assim:
# snort -c /etc/snort/snort.conf -o
Ou melhor:
# snort -c /etc/snort/snort.conf -o -i eth0 -D
Definição do
Guardian:
"O Guardian, é uma ferramenta que lê os logs do snort em tempo real e bloqueia algum ataque que esteja vindo de algum lugar na internet, ou melhor, bloqueia alguma coisa que possa vir a ser um problema para seu servidor e/ou você." -
Snort + MySQL + Guardian + ACID - ataliba.eti.br
Agora vamos instalar o Guardian:
# cd /IDS
# tar -zxvf guardian-1.7.tar.gz
# cd guardian-1.7/scripts
O programa Guardian utiliza sempre os scripts denominados
guardian_block.sh e
guardian_unblock.sh. Assim, deverão ser copiados para os arquivos com esses nomes correspondentes ao firewall que pretendemos utilizar. Copie:
# cp iptables_block.sh /usr/bin/guardian_block.sh
# cp iptables_unblock.sh /usr/bin/guardian_unblock.sh
# chmod 755 /usr/bin/guardian_block.sh /usr/bin/guardian_unblock.sh
# cd ..
# cp guardian.pl /usr/bin
# chmod 755 /usr/bin/guardian.pl
# cp guardian.conf /etc/
Vamos configurar alguns parâmetros no
guardian.conf:
Interface eth0 #Interface eth0, a que terá os terminais bloqueados
AlertFile /var/adm/secure #Mude para /var/log/snort/alert
TimeLimit 86400 #Mude para um valor em segundos que pretendemos que o endereço IP fique bloqueado pela firewall. O valor 99999999 remove esta opção.
Crie o arquivo de log do guardian:
# touch /var/log/guardian.log
Crie o arquivo
guardian.ignore com os endereços IP que se pretende ignorar:
# touch /etc/guardian.ignore
Inicie o Guardian:
# guardian.pl -c /etc/guardian.conf
Caso retorne um erro relacionado a seu IP, ex.:
Warning! HostIpAddr undefined!
Attempting to guess...
Abra o arquivo
/etc/guardian.conf, no começo do arquivo, descomente a linha:
# HostIpAddr
Deixando assim:
HostIpAddr SEUIP
Ex.: HostIpAddr 192.168.0.102
Agora, tente de novo iniciar o Guardian...
Para visualizar o log use:
# tail -f /var/log/snort/alert
Uma observação importante é que o Snort, com o pacote básico das regras, gera muitos falsos positivos, porém serve muito bem, mas caso você tenha uma rede grande, e queira um alto nível de segurança, seria bom comprar as regras!
Onde comprar? No próprio
site do Snort
Outra coisa que queria deixar bem claro é que não houve cópia, esse tutorial realmente foi TOTALMENTE elaborado por mim e postado em meu blog:
Porém, faz muito tempo que o fiz, então, busquei algumas referências em blogs e outros sites, mas não me lembro de todos.
Um abraço :)
Referências: