Você está na página 1de 8

LORO, Edgar TAVEIRA, Leandro Guilherme

Integrao entre Snort e Iptables para criao de regras automticas no firewall e bloqueio de ataque.
Edgar Loro, Leandro Guilherme Taveira, Universidade Anhanguera
Resumo Este artigo explicar como implementar um Sistema de Preveno de Invaso (IPS Intrusion Prevent System) com integrao com o firewall IPtables para criao automtica de regras e bloqueio de Ip e bloqueio de ataques ou ameaas. Para esta implementao ser utilizado o IDS (Intrusion Detection System) Snort, SnortSam agente e plugin para que se possa utilizar o Snort como IPS e o firewall Iptables, em sistema operacional Ubuntu. Palavras chaves Snort, SnortSam, Iptables, Ubuntu

A instalao do Ubuntu bem simples. Abaixo est descrito passo a passo como realizar sua instalao. 1. 2. 3. 4. O primeiro passo baixar a imagem do Ubuntu do link http://www.ubuntu.com/download. Aps terminar o download grave a imagem em um cd; Defina a opo de boot da mquina deixando para dar boot em primeiro lugar pela unidade de cd; Quando a mquina reiniciar ser exibido uma tela como mostrado abaixo e, a partir desta tela basta seguir o wizard de instalao;

OJE em dia existem diversas ameaas e pessoas mal intencionadas que podem capturar informaes ou at mesmo destruir redes de computadores inteiras atravs de vrios tipos diferente de ataque. Devido existncia destas ameaas primordial termos uma boa defesa para prevenirmos estes tipos de problema. Ferramentas poderosas intituladas por firewalls e sniffers podem se de grande valia na deteco e remoo de ameaas no desejadas em sua rede. Um bom exemplo de defesa baseado nestas ferramentas a utilizao do firewall Iptables e o sniffer SNORT que, quando combinados, pode se tornar um IPS (Intrusion Prevention System) poderoso podendo assim deixar a rede mais segura de ameaas que procuram se infiltrar em sua rede aproveitando alguma vulnerabilidade encontrada. Antes de explicarmos a instalao e integrao do Iptables com o Snort, importante conhecer o conceito de cada ferramenta que ser utilizada. II.UBUNTU Realizaremos a implantao de nosso IPS no sistema operacional Ubuntu verso 11.04. O ubuntu um sistema operacional open source baseado em Unix e por possuir interface grfica pode ser utilizado por maior parte de usurios de Windows pois suas interfaces so muito parecidas. Alm de sua interface amigvel o Ubuntu, por ser baseado em Linux, pode ser utilizado como servidor firewall e IPS, pois alm do bom desempenho possui o firewall Iptables nativo. Instalao do Ubuntu

I. INTRODUO

Fig. 1. Tela inicial de instalao do sistema operacional Ubuntu.

5.

As demais telas so semelhantes s telas de instalao do Windows devendo ser definido se ser uma nova instalao, o idioma da instalao, o fuso-horrio, o tipo de configurao do teclado, partio em que ser instalado e informaes sobre o usurio da mquina. Abaixo sero mostrados exemplos destas telas.

LORO, Edgar TAVEIRA, Leandro Guilherme

Fig. 2. Tela de opo de instalao do Ubuntu.

Fig. 5. Tela de seleo de layout do teclado a ser utilizado no Ubuntu

Fig. 3. Tela de seleo de idioma do Ubuntu.

Fig. 6. Seleo de partio em que o Ubuntu ser instalado.

Fig. 4. Tela de seleo de fuso-horrio do Ubuntu.

Fig. 7. Tela de definio de usurio, senha e nome da mquina do Ubuntu.[5]

III. IPTABLES O IPTABLES um firewall nativo do sistema operacional

LORO, Edgar TAVEIRA, Leandro Guilherme Ubuntu, conforme informado antes, tambm conhecido como um cdigo das verses 2.4 do KERNEL. O Iptables constitudo com os seguintes pacotes: IPTABLES, IP6TABLES, IPTABLES-SAVE e IPTABLES-RESTORE. O filtro dos pacotes realizado atravs de comparao de regras em tabelas identificando se um pacote tem ou no permisso para chegar ao seu destino. Estas tabelas so reas na memria usadas para armazenar os chains em conjuno com o conjunto de regras. Existem trs tipos de tabelas dentro do Iptables que so Tabela NAT", Tabela Filter e Tabela Mangle. Cada uma destas tabelas constituda por chains diferentes que sero mostradas a seguir:
TABELA Filter Nat Mangle Postrouting CHAIN Input, Output e Forward Prerouting, Output e Postrouting Input, Output, Forward e

1.

Antes de realizar a instalao do Snort no Ubuntu necessrio realizar um update e upgrade no repositrio do ubuntu instalar os pacotes make, g++, flex, bison, nmap, nbtscan, apache2, php5, php5-gd, php5-mysql, mysql-server. Para isso execute os comandos listados abaixo: #apt-get update #apt-get upgrade #apt-get install make #apt-get install g++

Prerouting,

#apt-get install flex #apt-get install bison #apt-get install apache2 #apt-get install php5 php5-gd php5mysql #apt-get install mysql-server 2. Os pacotes de bibliotecas necessrios para realizar a compilao e instalao do Snort so libpcap0.8-dev, libpcre3-dev, lipcap-ruby e libmysqlclient-dev. Para isso execute os seguintes comandos: #apt-get install libcap0.8-dev #apt-get install libpcre3-dev #apt-get install libpcap-ruby #apt-get install libmysqlclient-dev 3. Para realizar a compilao do Snort, alm dos pacotes listados nos passos anteriores, tambm necessrio atualizar o pacote libpcap da verso 0.8 para 1.1.1. Para isso necessrio realizar o download desta pois esta verso no est disponvel no repositrio do Ubuntu. A lista de comando abaixo realiza a atualizao desta biblioteca: #cd /srv #wget http://www.tcpdump.org/release/libpc ap-1.1.1.tar.gz #tar zxvf libpcap-1.1.1.tar.gz #cd libpcap-1.1.1

Duas caractersticas interessantes do Iptables so a possibilidade de realizar a anlise do cabealho e assim decidir se o pacote confivel ou no, e ser um firewall do tipo stateful, ou seja, ele memoriza conexes anteriores e consegue aplicar as regras de filtragem de pacote.[4] IV. SNORT O Snort uma das ferramentas mais utilizadas atualmente em servidores espalhados pela internet; composto por vrios mdulos que so ferramentas poderosas capazes de produzir uma grande quantidade de informao sobre os ataques monitorados, tais como Sniffer que serve para capturar os pacotes e exibir na tela, packtlogger que registra os pacotes capturados no disco rgido e etc. Basicamente o snort funciona analisando pacotes que trafegam na rede tentando identificar se existe alguma anomalia no pacote que possa indicar algum tipo de ameaa para o sistema. Seu funcionamento teoricamente simples, pois ele faz anlise do sistema operacional e dos componentes da rede armazenando em uma base de dados informaes como volume de dados, servios da rede, excesso de conexes, etc. Aps a coleta destas informaes, qualquer tipo de alterao suspeita que haja na rede ou no sistema operacional, aps comparao com as informaes coletadas anteriormente, informada ao administrador da rede. Esta anlise realizada comparando a assinatura do pacote com a base de dados do Snort e caso seja uma assinatura conhecida, que indique uma ameaa ou ataque, gerado um log com as informaes referentes ameaa e gerado um alerta informando o tipo de ataque. Como o Snort um IDS ele apenas alerta sobre o ataque sendo necessrio utilizar outra ferramenta, como o SnortSam, para poder realizar o bloqueio das ameaas identificadas. A instalao do Snort no uma tarefa simples de executar pois se faz necessrio ter algumas bibliotecas especficas instaladas no Ubuntu, porm, seguindo exatamente os passos descritos abaixo no haver problema ao realizar a instalao do Snort.

LORO, Edgar TAVEIRA, Leandro Guilherme #./configure --prefix=/usr #make 6. #make install 4. Com a atualizao da biblioteca libpcap possvel prosseguir com a instalao do Snort instalando a API Data Acquisition API (daq), A verso desta API depende da verso escolhida para compilao do Snort, neste artigo ser utilizada a verso 0.5 desta API por utilizarmos o Snort verso 2.9.0.5. possvel realizar o download desta API utilizando o link www.snort.org/downloads/745 e instalao executando os seguintes comandos: #cp /root/Downloads/daq0.5.tar.gz #cd /srv #tar zxvf daq0.5.tar.gz #cd daq0.5 #./configure #make #make install #ldconfig 5. Um detalhe importante para continuar com esta instalao necessrio instalar uma biblioteca especfica que tambm no est disponvel no repositrio do Ubuntu, a libdnet1.12. Os comandos abaixo realizaram o download e instalaram esta biblioteca: #cd /srv #wget http://libdnet.googlecode.com/files/ libdnet-1.12.tgz #tar zxvf libdnet1.12.tgz #cd libdnet1.12/ #./configure #make #make install #ln -s /usr/local/lib/libdnet.1.0.1 /usr/lib/libdnet.1

O prximo passo, finalmente, realizar o download e compilar o Snort. O link para download da verso do snort www.snort.org/downloads/867. Se todos os passos listados foram seguidos corretamente no haver problemas ao executar os passos abaixo: #cp /root/Downloads/snort2.9.0.5.tar.gz /srv #cd /srv #tar zxvf snort-2.9.0.1.tar.gz #cd snort-2.9.0.1 #./configure --prefix=/usr/local/snort --enableipv6 --enable-normalizer #make #make install #mkdir /var/log/snort #groupadd snort #useradd -g snort snort #chown snort:snort /var/log/snort

7.

Aps realizar a compilao e instalao do Snort possvel criar a parte de banco de dados onde ser criado usurio e definido as permisses para o usurio do Snort no banco de dados e sero armazenadas algumas informaes como, por exemplo, os alertas gerados pelo Snort. Para logar no mysql, instalado anteriormente, e realizar a criao do usurio e schemas utilizados pelo Snort execute os comandos abaixo: #mysql -u root -p > create database snort; > exit #mysql -u root -p -D snort < srv/snort2.9.0.5/schemas/create_mysql; #mysql -u root p > grant create, insert, select, delete, update on snort.* to snort@localhost identified by 'SENHA';

LORO, Edgar TAVEIRA, Leandro Guilherme > flush privileges; > exit 8. Este passo consiste em baixar o pacote de regras utilizadas pelo Snort para realizar a deteco dos ataques. Para realizar o download das regras necessrio realizar um cadastro gratuito no site do Snort e aps isso clicar no link Get Rules. Aps realizar o download das regras execute os seguintes comandos: #cp /root/Downloads/ snortrulessnapshot-2900.tar.gz /srv #tar zxvf snortrules-snapshot2900.tar.gz -C /usr/local/snort #mkdir /usr/local/snort/lib/snort_dynamicru les #cp /usr/local/snort/so_rules/precompiled /DebianLenny/i386/2.9.0.0/* /usr/local/snort/lib/snort_dynamicrul es 9. Com o Snort compilado e com suas regras aplicadas iremos configurar seu arquivo para que seja possvel iniciar o Snort. Para isso devemos editar o arquivo snort.conf. utilizando o comando #vi /usr/local/snort/etc/snort.conf . J dentro do arquivo procure e substitua as informaes conforme mostrado abaixo: dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/ dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so dynamicdetection directory /usr/local/lib/snort_dynamicrules Substitua por: dynamicpreprocessor directory /usr/local/snort/lib/snort_dynamicpreprocessor/ dynamicengine /usr/local/snort/lib/snort_dynamicengine/libsf_engin e.so dynamicdetection directory /usr/local/snort/lib/snort_dynamicrules Ainda dentro do arquivo snort.conf troque procure pela linha abaixo:

preprocessor http_inspect: global iis_unicode_map unicode.map 1252 decompress_depth 20480 compress_depth 20480 decompress_depth 20480 E substitua por: preprocessor http_inspect: global iis_unicode_map unicode.map 1252 Um pouco abaixo desta linha apague a linha: inspect_gzip \ e compress_depth \

Para finalizar a configurao do arquivo snort.conf, inclua a linha abaixo na seo Output deste arquivo: output unified2: filename snort.u2, limit 128 10. Com a configurao do arquivo snort.conf realizada utilize o seguinte comando para iniciar o Snort: #/usr/local/snort/bin/snort -u snort -g snort -c /usr/local/snort/etc/snort.conf -i eth0 11. Agora, para finalizar, precisamos instalar o software Barnyard 2 que interpretar os arquivos binrios contendo os logs, gerados pelo Snort, e armazenar no banco de dados e o aplicativo web BASE para que possamos visualizar as informaes capturadas pelo Snort. Antes de iniciar a instalar o Barnyard e o BASE execute as instrues abaixo para permitir escrita na pasta do BASE e alterar o nvel de log do php. #cd /var #chmod 757 /www Alterando nvel de log do php5: Edite os arquivos abaixo deixando a error_reporting com o valor mostrado abaixo: #vi /etc/php5/apache2/php.ini error_reporting = E_ALL & -E_NOTICE #vi /etc/php5/cli/php.ini error_reporting = E_ALL & -E_NOTICE Para instalar o Barnyard 2 #cd /srv linha

LORO, Edgar TAVEIRA, Leandro Guilherme #wget http://www.securixlive.com/download/ barnyard2/barnyard2-1.8.tar.gz #tar zxvf barnyard2-1.8.tar.gz #cd barnyard2-1.8 #./configure --with-mysql #make #make install #cp etc/barnyard2.conf /usr/local/snort/etc #mkdir /var/log/barnyard2 #chmod 666 /var/log/barnyard2 #touch /var/log/snort/barnyard2.waldo #chown snort.snort /var/log/snort/barnyard2.waldo 12. Aps a instalao do Barnyard, vamos editar seu arquivo de configurao utilizando o comando vi /usr/local/snort/etc/barnyard2.conf. Com o arquivo de configurao aberto encontre as informaes abaixo: config reference_file: /etc/snort/reference.config config classification_file: /etc/snort/classification.config config gen_file: /etc/snort/genmsg.map config sid_file: /etc/snort/sidmsg.map ... #config hostname: thor #config interface: eth0 ... #output database: log, mysql, user=root password=test dbname=db host=localhost E substitua por: config reference_file: /usr/local/snort/etc/reference.config config classification_file:

/usr/local/snort/etc/classification.c onfig config gen_file: /usr/local/snort/etc/genmsg.map config sid_file: /usr/local/snort/etc/sidmsg.map ... config hostname: localhost config interface: eth0 ... output database: log, mysql, user=snort password=SENHA dbname=snort host=localhost Para Iniciar o Barnyard 2 execute a seguinte linha de comando: #/usr/local/bin/barnyard2 c /usr/local/snort/etc/barnyard2.conf -G /usr/local/snort/etc/genmsg.map -S /usr/local/snort/etc/sidmsg.map -d /var/log/snort -f snort.u2 -w /var/log/snort/barnyard2.waldo

A execuo do BASE realizada com os seguintes comandos: #cd /srv #wget http://sourceforge.net/projects/secu reideas/files/BASE/base-1.4.5/base1.4.5.tar.gz #tar zxvf base-1.4.5.tar.gz #mv base-1.4.5 /var/www/base #wget http://sourceforge.net/projects/adod b/files/adodb-php5-only/adodb-511for-php5/adodb511.zip #unzip adodb511.zip #mv adodb5 /var/www/ Caso a instalao tenha xito ao acessar o link http://enderecodohost/base/setup, em seu browser de internet, aparecer um tela de configurao do BASE. Preencha as informaes solicitadas e ao terminar a configurao voc ir direto para a tela de monitorao de eventos capturados pelo Snort.[6]

LORO, Edgar TAVEIRA, Leandro Guilherme accept 192.168.2.2 logfile /var/log/snort.u2.1306546038 bindip 192.168.2.0 dontblock 192.168.2.2 daemon

V. SNORTSAM O SnortSam trata-se de uma ferramenta que permite que o Snort possa alm de identificar ameaas bloque-las no firewall, assim, trabalhando como um IPS. O SnortSam constitudo de dois componentes: Client (patch) e Agent (aplicao). O Agent (aplicao) deve ser instalado na mesma mquina em que o firewall esta instalado. Sua funo ficar escutando at que receba alguma informao do cliente para que, se necessrio, crie uma regra no IPtables com as informaes recebidas para que seja realizado o bloqueio da ameaa no firewall. O client (patch) funciona como um sensor e tem como objetivo coletar as informaes detectadas pelo Snort e envi-las ao Agent para que possa ser realizada a criao da regra de bloqueio no firewall. A instalao do SnortSam realizada em duas partes. A instalao do Agent deve ser realizada no servidor de firewall e a instalao do Client no servidor onde est o Snort. Instalao SnortSam Agent 1. Para realizar a instalao do SnortSam Agent necessrio realizar o download do cdigo fonte da verso 2.70 utilizando o link http://www.snortsam.net/download.html e em seguida compila-lo e instal-lo. Para isto siga as instrues abaixo: #cd /root/Downloads #tar -xvvzf snortsam-src2.26.tar.gz /src #cd /src #chmod +x makesnortsam.sh #/makesnortsam.sh 2. Aps a instalao necessrio configurar o arquivo snortsam.conf localizado na pasta /etc para que seja realizada comunicao e ele possa aceitar as solicitaes dos sensores. Este arquivo deve conter informaes como os endereos IPs dos agentes Snort que sero aceitos, tipo de firewall utilizado pelo SnortSam, local onde ser armazenado o arquivo de log dos registros de bloqueio, endereo IP onde ficar esperando por requisies e os endereos IP que nunca sero bloqueados (white-list). Para isso execute os comandos abaixo e edite o arquivo snort.conf. #vi /etc/snortsam.conf Exemplo de snort.sam configurado:

Instalao SnortSam Sensor 1. Para realizar a instalao do SnortSam Sensor necessrio aplicar um patch no snort e posteriormente recompil-lo. Para isto faa o download do patch verso 2.9.0.3 utilizando o link http://www.snortsam.net/download.html e em seguida execute os comandos abaixo: #cd /root/Downloads #tar zxvf snortsam-2.9.0.3.diff.gz #cd /srv/snort-2.9.0.5 #patch p1 < /root/Downloads/snortsam2.9.0.3.diff #chmod +x autojunk.sh #./autojunk.sh #./configure --prefix=/usr/local/snort --enableipv6 -enable-normalizer #make #make install Aps realizar todas as instalaes mencionadas ser possvel realizar a integrao entre Snort (IPS) e Iptables (Firewall) para que sejam criadas regras de firewall automticas a partir das deteces realizadas pelo Snort. [7] VI.
CONCLUSES

Nenhuma rede 100% segura nos dias de hoje, devido a muitos aspectos, porm se voc deseja ter uma boa rede, necessrio ter uma rede bem estruturada desde o seu cabeamento at os seus servidores. Nos dias de hoje voc no deve somente contar com "desastres naturais" como um fio corrompido ou um HD queimado, pois isso no mais problema s um mero detalhe; as verdadeiras ameaas so os famosos crackers, que geralmente se infiltram nas de grandes corporaes com o intuito de coletar informaes sigilosas ou at mesmo danificar a rede. Devido a isso toda rede deve possuir um firewall poderoso, no s um firewall fsico, mas tambm lgico, para

LORO, Edgar TAVEIRA, Leandro Guilherme auxiliar o gerente no monitoramento da rede. Uma tima opo o IPTABLES, que combinado com o SNORT e SNORTSAM se transforma em uma ferramenta poderosa de deteco e neutralizao de intruses, assim diminuindo as vulnerabilidades da sua rede. Logo se pode afirmar que possuir um IPS em sua rede, s traz vantagens a sua empresa, pois a maioria das ameaas e infiltraes sero detectadas e neutralizadas antes da perda de alguma informao importante ou at mesmo a causa de danos na sua rede. VII. REFERNCIAS [1]
[2] [3] [1] FILHO, Bernardo Severo da Silva. Curso de MATLAB 5.1 Introduo Soluo de Problemas de Engenharia, 2 ed. Rio de Janeiro: The Math Works Inc. [2] SEVERANCE, F. L.. System Modeling and Simulation, John Wiley& Sons, 2001. [3] Singh, V.P.. System Modeling and Simulation, New Delhi: New Age International Publishers,2009. ISBN (13) : 978-81-224-2924-4. [4] THOMAZ, Ygor, Viva o Linux, Dominando o IPTABLES (parte 1) http://www.vivaolinux.com.br/artigo/Dominando-o-iptables-%28parte1%29/?pagina=6 acessado em 27/05/2011. [5] GONDIM, Andr, Andr Gondim, Como instalar o ubuntu em nove passos. http://andregondim.eti.br/ubuntu/como-instalar-o-ubuntu-emnove-passos/ acessado em 26/05/2011 WESLEY, Harpia consultoria e tecnologia da informao, tutorial de instalao do snort no Debian/lenny, http://www.harpiatec.com/2010/12/01/tutorial-de-instalacao-do-snortno-debianlenny/ acessado em 25/05/2011 JONKMAN, Matt, Emerging threats, SnortSam Install, http://doc.emergingthreats.net/bin/view/Main/SnortSamINSTALL acessado em 25/05/2011.

[4] [5] [6]

[7]

Você também pode gostar