automatizando firewall com ids snort e snortsam

6
Automatizando Firewall com IDS Snort e SnortSam Autor: Vinicius Raupp Alves <viniciusrauppalves at gmail.com> Data: 23/01/2013 Introdução Snort é um sistema de detecção de intrusos (IDS), o qual usa seus sensores e um conjunto de regras para monitorar todo o tráfego da rede e gerar alertas de possíveis ameaças à segurança de seus sistemas. Com a ajuda do plugin SnortSam, será possível automatizar bloqueios de endereços IP em seu firewall. Neste tutorial será mostrado como instalar e configurar o Snort. Como este pacote só gera alertas de ameaças, será necessária a ajuda do plugin SnortSam para recebê-los e executar uma regra de firewall para bloquear o endereço IP do computador mal-intencionado. Para visualizar os alertas do Snort utilizaremos uma interface amigável de um sistema Web chamado BASE (Basic Analysis and Security Engine), conectada a uma base de dados em MySQL. Abaixo, o sistema operacional e versões dos pacotes utilizados: S.O. Debian Squeeze 6.0.5 Snort 2.9.2.2 SnortSam 2.70 Firewall IPtables BASE 1.4.5 MySQL 5.1 Para proceder a instalação dos pacotes foi utilizado um servidor com duas placas de rede atuando como firewall/roteador, recebendo Internet por uma placa e distribuindo para a rede interna através da outra placa. Endereços IPs do firewall: eth0 = 10.0.0.5 - obtido por DHCP = Internet (WAN) eth1 = 192.168.1.1 - IP fixo - Rede interna (LAN) De forma resumida, para utilizar o Snort com o SnortSam, será necessário: Baixar o código fonte do Snort; 1. Aplicar patch SnortSam sobre o fonte do Snort; 2. Compilar e instalar Snort; 3. Baixar código fonte do SnortSam; 4. Compilar e instalar SnortSam. 5. Automatizando Firewall com IDS Snort e SnortSam [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13710 1 de 6 26/01/2013 12:59

Upload: webjuliano

Post on 28-Oct-2015

47 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Automatizando Firewall Com IDS Snort e SnortSam

Automatizando Firewall com IDS Snort e SnortSam

Autor: Vinicius Raupp Alves <viniciusrauppalves at gmail.com>Data: 23/01/2013

Introdução

Snort é um sistema de detecção de intrusos (IDS), o qual usa seus sensores e um conjunto de regras paramonitorar todo o tráfego da rede e gerar alertas de possíveis ameaças à segurança de seus sistemas. Com aajuda do plugin SnortSam, será possível automatizar bloqueios de endereços IP em seu firewall.

Neste tutorial será mostrado como instalar e configurar o Snort. Como este pacote só gera alertas deameaças, será necessária a ajuda do plugin SnortSam para recebê-los e executar uma regra de firewall parabloquear o endereço IP do computador mal-intencionado.

Para visualizar os alertas do Snort utilizaremos uma interface amigável de um sistema Web chamado BASE(Basic Analysis and Security Engine), conectada a uma base de dados em MySQL.

Abaixo, o sistema operacional e versões dos pacotes utilizados:

S.O. → Debian Squeeze 6.0.5Snort → 2.9.2.2SnortSam → 2.70Firewall → IPtablesBASE → 1.4.5MySQL → 5.1

Para proceder a instalação dos pacotes foi utilizado um servidor com duas placas de rede atuando comofirewall/roteador, recebendo Internet por uma placa e distribuindo para a rede interna através da outraplaca.

Endereços IPs do firewall:

eth0 = 10.0.0.5 - obtido por DHCP = Internet (WAN)eth1 = 192.168.1.1 - IP fixo - Rede interna (LAN)

De forma resumida, para utilizar o Snort com o SnortSam, será necessário:

Baixar o código fonte do Snort;1.Aplicar patch SnortSam sobre o fonte do Snort;2.Compilar e instalar Snort;3.Baixar código fonte do SnortSam;4.Compilar e instalar SnortSam.5.

Automatizando Firewall com IDS Snort e SnortSam [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13710

1 de 6 26/01/2013 12:59

Page 2: Automatizando Firewall Com IDS Snort e SnortSam

Instalação do Snort

Inicie pelos procedimentos de compilação e instalação do Snort, para isto é preciso instalar algumasdependências via apt-get:

# apt-get install -y libfont-afm-perl libgcrypt11 libgnutls26 libgpg- error0 libhtml-format-perllibhtml-parser-perl autoconf automake # apt-get install -y libhtml-tagset-perl libhtml-tree-perllibltdl7 libmailtools-perl libmysqlclient16 libmysql++-dev libp cap0.8 libpcre3

# apt-get install -y libprelude2 libtasn1-3 liburi-perl libwww-perl oinkmaster libpcap-devlibpcre3-dev libxml2-dev bison flex libprelude-dev libdumbnet-dev

Outras dependênciasInstalando libdnet:

# wget http://libdnet.googlecode.com/files/libdnet-1.12.tgz# tar zxvf libdnet-1.12.tgz# cd libdnet-1.12# ./configure --prefix=/usr --enable-shared# make# make install

Instalando DAQ:

# cd ..# wget http://www.snort.org/downloads/1623 -O daq-0.6.2.tar.gz# tar zxvf daq-0.6.2.tar.gz# cd daq-0.6.2# ./configure# make# make install

Atualizando as bibliotecas (importante para que não ocorra alguns erros):

# echo >> /etc/ld.so.conf /usr/lib# ldconfig

Preparando o Snort:

# cd ..# wget http://www.snort.org/dl/snort-current/snort-2.9.2.2.tar.gz# tar zxvf snort-2.9.2.2.tar.gz# cd snort-2.9.2.2

Download e aplicação do patch SnortSam: Baixe o patch compatível com a versão do Snort, no caso2.9.2.2:

# wget http://www.snortsam.net/files/snort-plugin/snortsam-2.9.2.2.diff.gz

Descompacte na mesma pasta do código fonte do Snort e aplique o patch:

Automatizando Firewall com IDS Snort e SnortSam [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13710

2 de 6 26/01/2013 12:59

Page 3: Automatizando Firewall Com IDS Snort e SnortSam

# gunzip snortsam-2.9.2.2.diff.gz# patch -p1 < snortsam-2.9.2.2.diff

Compilar e instalar o Snort:

# ./configure --prefix=/usr/local/snort --with-mysql --with-daq-libraries=/usr/local/lib/daq/ --disable-prelude --disable-rzb-saac# make# make install

Caso encontre algum erro de razorback ou libtool, faça os procedimentos abaixo:

1. Edite o arquivo "configure.in", comente as linhas: 1526 à 1557, que trata sobre o razorback e paracorrigir o libtool.2. Edite o arquivo "autojunk.sh" acrescentando o parâmetro: "-- force", na linha onde consta o comandolibtoolize3. Por último, torne o arquivo "autojunk" executável e execute:

# chmod +x autojunk.sh# ./autojunk.sh

Repita o processo de compilação e instalação.

Crie a pasta para os arquivos de configuração do Snort e copie os arquivos de configuração fornecidos napasta do código fonte:

# mkdir /etc/snort# cp src-pacote-snort/etc/*.* /etc/snort/

Edite o arquivo /etc/snort/snort.conf, localize e altere as linhas para que fique conforme abaixo:

var RULE_PATH /etc/snort/rulesvar SO_RULE_PATH /etc/snort/so_rulesvar PREPROC_RULE_PATH /etc/snort/preproc_rules

dynamicpreprocessor directory /usr/local/snort/lib/snort_dynamicpreprocessordynamicengine /usr/local/snort/lib/snort_dynamicengine/libsf_engine.so

#dynamicdetection directory /usr/local/lib/snort_dynamicrules

# Linhas necessárias para enviar os alertas para o banco de dados Mysql.output database: log, mysql, user=snort password=senha-snort dbname=snort host=localhostoutput database: alert, mysql, user=snort password=senha-snort dbname=snort host=localhost

# Linha necessária para enviar os alertas específicos ao daemon SnortSam.output alert_fwsam: 127.0.0.1:898/password

Em "Customize your rule site", comente todas regras com a exceção da "icmp-info.rules", pois será a únicaregra usada em nossos teste. Salve e feche o arquivo de configuração.

Crie o usuário "snort" para o sistema:

# useradd snort -d /var/log/snort -s /bin/false -c SNORT_IDS

Automatizando Firewall com IDS Snort e SnortSam [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13710

3 de 6 26/01/2013 12:59

Page 4: Automatizando Firewall Com IDS Snort e SnortSam

Crie uma pasta para os logs:

# mkdir /var/log/snort# chown -R snort /var/log/snort

Faça o download do pacote de regras do Snort no site oficial (necessário criar uma conta no site):

http://www.snort.org/snort-downloads

E descompacte em /etc/snort/.

Faça um primeiro teste, execute o comando para que o Snort mostre na tela os pacotes da rede capturados,mas antes, coloque a interface eth0 no modo promíscuo:

# ifconfig eth0 promisc# /usr/local/snort/bin/snort -v -i eth0

Instalação do MySQL e BASE

Instalação do MySQL:

# apt-get install mysql-server -y

O instalador irá pedir uma senha de acesso root ao MySQL (coloque a senha que preferir). Acesse oconsole de administração do MySQL e coloque a senha criada na hora da instalação:

# mysql -u root -p

Use os comandos abaixo para criar a base de dados e usuário para o Snort:

mysql> create database snort;mysql> grant all on snort.* to snort@localhost identified by 'senha-snort';mysql> flush privileges;mysql> exit;

Crie as tabelas importando o arquivo "create_mysql" encontrado dentro do código fonte do Snort:

# cd src-pacote-snort/schema# mysql -u root -p snort < create_mysql

Instalar o BASE:

# apt-get install acidbase -y

O instalador irá perguntar qual senha será usada para acessar a base de dados snort no MySQL, digite"senha-snort", confirme a senha digitando-a novamente.

Acrescente o acidbase no Apache:

# nano /etc/apache2/sites-enabled/000-default

Posicione o cursor antes da tag </VirtualHost>, aperte Ctrl+R e insira o caminho /etc/acidbase/apache.conf.

Automatizando Firewall com IDS Snort e SnortSam [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13710

4 de 6 26/01/2013 12:59

Page 5: Automatizando Firewall Com IDS Snort e SnortSam

Permita o acesso via rede local alterando a linha:

allow from 127.0.0.0/255.0.0.0

Para:

allow from 192.168.1.0/255.255.255.0

Reinicie o serviço apache2:

# invoke-rc.d apache2 restart

Acesse a página do acidbase via rede local: http://192.168.1.1/acidbase

Para completar a instalação, surgirá uma página com um erro, mas é normal. Clique em Setup Page edepois em Create_ACID_AG. Após feita a instalação com sucesso, acesse novamente o endereço dapágina do acidbase.

Instalação do serviço SnortSam

Execute os comandos:

# wget http://www.snortsam.net/files/snortsam/snortsam-src-2.70.tar.gz# tar zxvf snortsam-src-2.70.tar.gz# cd snortsam# chmod +x makesnortsam.sh# ./makesnortsam.sh# cp snortsam /usr/local/bin

Crie um arquivo "snortsam.conf" em /etc e adicione as seguintes linhas de configuração:

defaultkey passwordaccept localhostkeyinterval 30 minutesdontblock 192.168.1.1 # rede localrollbackhosts 50rollbackthreshold 20 / 30 secsrollbacksleeptime 1 minutelogfile /var/log/snort/snortsam.logloglevel 3daemonnothreads# linha importante para gerar os bloqueios via iptablesiptables eth0 LOGbindip 127.0.0.1

Pra finalizar as configurações, escolha um arquivo de regras dentro da pasta /etc/snort/rules/ e acrescenteno final da regra o parâmetro "fwsam: src, 5 minutes", onde src é o IP de origem e 5 minutes é o tempo emque o IP de origem será bloqueado.

Exemplo: Edite o arquivo "icmp-info.rules", encontre e descomente a regra com a descrição "ICMP-InfoEcho Reply". Acrescente nesta regra o parâmetro "fwsam: src, 5 minutes" ao final da linha, como abaixo:

Automatizando Firewall com IDS Snort e SnortSam [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13710

5 de 6 26/01/2013 12:59

Page 6: Automatizando Firewall Com IDS Snort e SnortSam

alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"ICMP-INFO Echo Reply"; icode:0;itype:0; classtype:misc-activity; sid:408; rev:6;fwsam: src, 5 minutes;)

Testes finaisInicie todos os serviços:

# /usr/local/snort/bin/snort -u snort -i eth0 -c /etc/snort/snort.conf -l /var/log/snort -Dq

Para depurar erros do Snort, inicie o serviço sem o parâmetro "-Dq".

# /usr/local/bin/snortsam

Para depurar erros do SnortSam, inicie o serviço snortsam-debug que se encontra na mesma pasta dopacote "snortsam-src-2.70.tar.gz" descompactado e compilado anteriormente.

Agora peça para alguém de fora de sua rede pingar para seu servidor e acompanhe via BASE os alertasgerados pelo Snort. Também é possível acompanhar os logs pra analisar os bloqueios ou possíveis erros deconfiguração:

# tail -f /var/log/snort/snortsam.log

Com Snort e SnortSam também é possível trabalhar de forma distribuída, você pode instalar Snort emoutro local estratégico de sua rede e configurá-lo para que envie os alertas para o Daemon SnortSam emseu firewall, fazendo com que ele aplique a regra de bloqueio.

* Mas lembre-se, é possível que o Snort gere falsos positivos, então seja cauteloso ao acrescentar oparâmetro fwsam nas regras.

ReferênciasSnort e BASE no Debian:

http://www.aboutdebian.com/snort.htmHowTo: Tutorial Snort no Debian Squeeze com BASE « Blog Cuidado Digital

Documentação do SnorSam:

SnortSamDocumentation « doc.emergingthreats.net

http://www.vivaolinux.com.br/artigo/Automatizando-Firewall-com-IDS-Snort-e-SnortSam

Voltar para o site

Automatizando Firewall com IDS Snort e SnortSam [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=13710

6 de 6 26/01/2013 12:59