P. 1
Artigo_tcc _1.5

Artigo_tcc _1.5

|Views: 75|Likes:
Published by luizfmattos26

More info:

Published by: luizfmattos26 on Jan 16, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

08/14/2013

pdf

text

original

LORO, Edgar – TAVEIRA, Leandro Guilherme

1

Integração entre Snort e Iptables para criação de regras automáticas no firewall e bloqueio de ataque.
Edgar Loro, Leandro Guilherme Taveira, Universidade Anhanguera
Resumo — Este artigo explicará como implementar um Sistema de Prevenção de Invasão (IPS – Intrusion Prevent System) com integração com o firewall IPtables para criação automática de regras e bloqueio de Ip e bloqueio de ataques ou ameaças. Para esta implementação 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 instalação do Ubuntu é bem simples. Abaixo está descrito passo a passo como realizar sua instalação. 1. 2. 3. 4. O primeiro passo é baixar a imagem do Ubuntu do link http://www.ubuntu.com/download. Após terminar o download grave a imagem em um cd; Defina a opção de boot da máquina deixando para dar boot em primeiro lugar pela unidade de cd; Quando a máquina reiniciar será exibido uma tela como mostrado abaixo e, a partir desta tela basta seguir o wizard de instalação;

OJE em dia existem diversas ameaças e pessoas mal intencionadas que podem capturar informações ou até mesmo destruir redes de computadores inteiras através de vários tipos diferente de ataque. Devido à existência destas ameaças é primordial termos uma boa defesa para prevenirmos estes tipos de problema. Ferramentas poderosas intituladas por firewalls e sniffers podem se de grande valia na detecção e remoção de ameaças não desejadas em sua rede. Um bom exemplo de defesa baseado nestas ferramentas é a utilização 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 ameaças que procuram se infiltrar em sua rede aproveitando alguma vulnerabilidade encontrada. Antes de explicarmos a instalação e integração do Iptables com o Snort, é importante conhecer o conceito de cada ferramenta que será utilizada. II.UBUNTU Realizaremos a implantação de nosso IPS no sistema operacional Ubuntu versão 11.04. O ubuntu é um sistema operacional open source baseado em Unix e por possuir interface gráfica pode ser utilizado por maior parte de usuários de Windows pois suas interfaces são muito parecidas. Além de sua interface amigável o Ubuntu, por ser baseado em Linux, pode ser utilizado como servidor firewall e IPS, pois além do bom desempenho possui o firewall Iptables nativo. Instalação do Ubuntu

H

I. INTRODUÇÃO

Fig. 1. Tela inicial de instalação do sistema operacional Ubuntu.

5.

As demais telas são semelhantes às telas de instalação do Windows devendo ser definido se será uma nova instalação, o idioma da instalação, o fuso-horário, o tipo de configuração do teclado, partição em que será instalado e informações sobre o usuário da máquina. Abaixo serão mostrados exemplos destas telas.

[5] III. Tela de opção de instalação do Ubuntu. 2. Fig.LORO. Tela de definição de usuário. 5. 4. 7. Fig. 6. 3. Seleção de partição em que o Ubuntu será instalado. Tela de seleção de layout do teclado a ser utilizado no Ubuntu Fig. senha e nome da máquina do Ubuntu. Tela de seleção de idioma do Ubuntu. IPTABLES O IPTABLES é um firewall nativo do sistema operacional . Tela de seleção de fuso-horário do Ubuntu. Fig. Edgar – TAVEIRA. Leandro Guilherme 2 Fig. Fig.

apache2. lipcap-ruby e libmysqlclient-dev.8-dev.1 Duas características interessantes do Iptables são a possibilidade de realizar a análise do cabeçalho e assim decidir se o pacote é confiável ou não.tar.8 para 1. como o SnortSam. nmap. SNORT O Snort é uma das ferramentas mais utilizadas atualmente em servidores espalhados pela internet. conforme informado antes. para poder realizar o bloqueio das ameaças identificadas. O filtro dos pacotes é realizado através de comparação de regras em tabelas identificando se um pacote tem ou não permissão para chegar ao seu destino.1. Após a coleta destas informações.4 do KERNEL.1. flex. g++.1. Output. Para realizar a compilação do Snort. Os pacotes de bibliotecas necessários para realizar a compilação e instalação do Snort são libpcap0. Edgar – TAVEIRA. Forward e 3 1. e ser um firewall do tipo stateful. Cada uma destas tabelas é constituída por chains diferentes que serão mostradas a seguir: TABELA Filter Nat Mangle Postrouting CHAIN Input. php5-gd. Esta análise é realizada comparando a assinatura do pacote com a base de dados do Snort e caso seja uma assinatura conhecida. Output e Postrouting Input. IPTABLES-SAVE e IPTABLES-RESTORE. bison. Estas tabelas são áreas na memória usadas para armazenar os chains em conjunção com o conjunto de regras. que indique uma ameaça ou ataque. também é necessário atualizar o pacote libpcap da versão 0. Para isso execute os comandos listados abaixo: #apt-get update #apt-get upgrade #apt-get install make #apt-get install g++ Prerouting. porém.1. libpcre3-dev. seguindo exatamente os passos descritos abaixo não haverá problema ao realizar a instalação do Snort. A instalação do Snort não é uma tarefa simples de executar pois se faz necessário ter algumas bibliotecas específicas instaladas no Ubuntu. packtlogger que registra os pacotes capturados no disco rígido e etc. Output e Forward Prerouting. é gerado um log com as informações referentes à ameaça e gerado um alerta informando o tipo de ataque. #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. A lista de comando abaixo realiza a atualização desta biblioteca: #cd /srv #wget http://www. serviços da rede. ele memoriza conexões anteriores e consegue aplicar as regras de filtragem de pacote. ou seja. etc. Seu funcionamento é teoricamente simples. é informada ao administrador da rede. além dos pacotes listados nos passos anteriores.1. O Iptables é constituído com os seguintes pacotes: IPTABLES. qualquer tipo de alteração suspeita que haja na rede ou no sistema operacional. tais como Sniffer que serve para capturar os pacotes e exibir na tela. Antes de realizar a instalação do Snort no Ubuntu é necessário realizar um update e upgrade no repositório do ubuntu instalar os pacotes make. Como o Snort é um IDS ele apenas alerta sobre o ataque sendo necessário utilizar outra ferramenta. mysql-server.gz #tar zxvf libpcap-1. Para isso execute os seguintes comandos: #apt-get install libcap0. nbtscan. php5.org/release/libpc ap-1.1. excesso de conexões. IP6TABLES. também conhecido como um código das versões 2. após comparação com as informações coletadas anteriormente. php5-mysql. Basicamente o snort funciona analisando pacotes que trafegam na rede tentando identificar se existe alguma anomalia no pacote que possa indicar algum tipo de ameaça para o sistema. .LORO. pois ele faz análise do sistema operacional e dos componentes da rede armazenando em uma base de dados informações como volume de dados. Existem três tipos de tabelas dentro do Iptables que são ”Tabela NAT".1. “Tabela Filter” e “Tabela Mangle”. Para isso é necessário realizar o download desta pois esta versão não está disponível no repositório do Ubuntu.[4] IV. é composto por vários módulos que são ferramentas poderosas capazes de produzir uma grande quantidade de informação sobre os ataques monitorados.8-dev #apt-get install libpcre3-dev #apt-get install libpcap-ruby #apt-get install libmysqlclient-dev 3.gz #cd libpcap-1.tcpdump.tar. Leandro Guilherme Ubuntu.

9. Com a atualização da biblioteca libpcap é possível prosseguir com a instalação do Snort instalando a API Data Acquisition API (daq).snort. #make install 4.org/downloads/867. é realizar o download e compilar o Snort.1 #.* to snort@localhost identified by 'SENHA'.5.snort.com/files/ libdnet-1.gz #cd daq0.tar.0./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. por exemplo. instalado anteriormente. finalmente.gz #cd /srv #tar zxvf daq0.9.12/ #.12. Após realizar a compilação e instalação do Snort é possível criar a parte de banco de dados onde será criado usuário e definido as permissões para o usuário do Snort no banco de dados e serão armazenadas algumas informações como. update on snort. insert.12. e realizar a criação do usuário e schemas utilizados pelo Snort execute os comandos abaixo: #mysql -u root -p > create database snort.5 #.5. Edgar – TAVEIRA. O link para download da versão do snort é www.tar. . Se todos os passos listados foram seguidos corretamente não haverá problemas ao executar os passos abaixo: #cp /root/Downloads/snort2.LORO. Para logar no mysql. A versão desta API depende da versão escolhida para compilação do Snort.tar. Leandro Guilherme #.gz /srv #cd /srv #tar zxvf snort-2. a libdnet1. neste artigo será utilizada a versão 0.0./configure #make #make install #ln -s /usr/local/lib/libdnet. os alertas gerados pelo Snort.5/schemas/create_mysql.tgz #tar zxvf libdnet1.5 desta API por utilizarmos o Snort versão 2.tar. Um detalhe importante para continuar com esta instalação é necessário instalar uma biblioteca específica que também não está disponível no repositório do Ubuntu.tgz #cd libdnet1.1 /usr/lib/libdnet.9.12.0.googlecode. #mysql -u root –p > grant create.5.5.gz #cd snort-2. delete.0.0.9.0.1 4 O próximo passo./configure #make #make install #ldconfig 5. select.9. É possível realizar o download desta API utilizando o link www. Os comandos abaixo realizaram o download e instalaram esta biblioteca: #cd /srv #wget http://libdnet./configure --prefix=/usr #make 6.1.org/downloads/745 e instalação executando os seguintes comandos: #cp /root/Downloads/daq0.1. > exit #mysql -u root -p -D snort < srv/snort2.

tar. Com o Snort compilado e com suas regras aplicadas iremos configurar seu arquivo para que seja possível iniciar o Snort.9. #cd /var #chmod 757 /www Alterando nível de log do php5: Edite os arquivos abaixo deixando a error_reporting com o valor mostrado abaixo: #vi /etc/php5/apache2/php. e armazenará no banco de dados e o aplicativo web BASE para que possamos visualizar as informações capturadas pelo Snort.LORO. Para isso devemos editar o arquivo snort. Para realizar o download das regras é necessário realizar um cadastro gratuito no site do Snort e após isso clicar no link Get Rules. Após realizar o download das regras execute os seguintes comandos: #cp /root/Downloads/ snortrulessnapshot-2900.tar.conf.ini error_reporting = E_ALL & -E_NOTICE Para instalar o Barnyard 2 #cd /srv linha .conf “. inclua a linha abaixo na seção Output deste arquivo: output unified2: filename snort.conf.u2.conf -i eth0 11. Antes de iniciar a instalar o Barnyard e o BASE execute as instruções abaixo para permitir escrita na pasta do BASE e alterar o nível de log do php.gz -C /usr/local/snort #mkdir /usr/local/snort/lib/snort_dynamicru les #cp /usr/local/snort/so_rules/precompiled /DebianLenny/i386/2. gerados pelo Snort. limit 128 10. Com a configuração do arquivo snort.gz /srv #tar zxvf snortrules-snapshot2900.ini error_reporting = E_ALL & -E_NOTICE #vi /etc/php5/cli/php. Leandro Guilherme > flush privileges. Este passo consiste em baixar o pacote de regras utilizadas pelo Snort para realizar a detecção dos ataques. utilizando o comando “#vi /usr/local/snort/etc/snort. Edgar – TAVEIRA.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.conf troque procure pela linha abaixo: 5 preprocessor http_inspect: global iis_unicode_map unicode.so dynamicdetection directory /usr/local/snort/lib/snort_dynamicrules Ainda dentro do arquivo snort. para finalizar.map 1252 decompress_depth 20480 compress_depth 20480 decompress_depth 20480 E substitua por: preprocessor http_inspect: global iis_unicode_map unicode.0. precisamos instalar o software Barnyard 2 que interpretará os arquivos binários contendo os logs. Agora. > exit 8.0/* /usr/local/snort/lib/snort_dynamicrul es 9. Já dentro do arquivo é procure e substitua as informações conforme mostrado abaixo: dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/ dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.map 1252 Um pouco abaixo desta linha apague a linha: inspect_gzip \ e compress_depth \ Para finalizar a configuração 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.

user=root password=test dbname=db host=localhost E substitua por: config reference_file: /usr/local/snort/etc/reference.LORO.map -d /var/log/snort -f snort. aparecerá um tela de configuração do BASE...5.zip #unzip adodb511.waldo A execução do BASE é realizada com os seguintes comandos: #cd /srv #wget http://sourceforge. output database: log.map config sid_file: /etc/snort/sidmsg..snort /var/log/snort/barnyard2.8.tar..tar.8.gz #mv base-1.waldo 12.conf /usr/local/snort/etc #mkdir /var/log/barnyard2 #chmod 666 /var/log/barnyard2 #touch /var/log/snort/barnyard2. mysql.conf -G /usr/local/snort/etc/genmsg.[6] .8 #.config config gen_file: /etc/snort/genmsg. Leandro Guilherme #wget http://www.gz #tar zxvf barnyard2-1. Com o arquivo de configuração aberto encontre as informações abaixo: config reference_file: /etc/snort/reference.4.5. vamos editar seu arquivo de configuração utilizando o comando vi /usr/local/snort/etc/barnyard2.map config sid_file: /usr/local/snort/etc/sidmsg..net/projects/adod b/files/adodb-php5-only/adodb-511for-php5/adodb511.zip #mv adodb5 /var/www/ Caso a instalação tenha êxito ao acessar o link http://enderecodohost/base/setup.gz #cd barnyard2-1.config config classification_file: /etc/snort/classification. Preencha as informações solicitadas e ao terminar a configuração você irá direto para a tela de monitoração de eventos capturados pelo Snort. Após a instalação do Barnyard.map .5/base1. 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.5 /var/www/base #wget http://sourceforge.u2 -w /var/log/snort/barnyard2.. config hostname: localhost config interface: eth0 ..map . #config hostname: thor #config interface: eth0 .c onfig config gen_file: /usr/local/snort/etc/genmsg.net/projects/secu reideas/files/BASE/base-1.waldo #chown snort.gz #tar zxvf base-1.config config classification_file: 6 /usr/local/snort/etc/classification. mysql.tar./configure --with-mysql #make #make install #cp etc/barnyard2.4.4.com/download/ barnyard2/barnyard2-1.map -S /usr/local/snort/etc/sidmsg.securixlive.. em seu browser de internet.conf. #output database: log.tar.4. Edgar – TAVEIRA.

sh #/makesnortsam. é necessário ter uma rede bem estruturada desde o seu cabeamento até os seus servidores.LORO. A instalação do Agent deve ser realizada no servidor de firewall e a instalação do Client no servidor onde está o Snort. [7] VI.0 dontblock 192. devido a muitos aspectos.26. A instalação do SnortSam é realizada em duas partes. trabalhando como um IPS./configure --prefix=/usr/local/snort --enableipv6 -enable-normalizer #make #make install Após realizar todas as instalações mencionadas será possível realizar a integração entre Snort (IPS) e Iptables (Firewall) para que sejam criadas regras de firewall automáticas a partir das detecções realizadas pelo Snort.diff.gz #cd /srv/snort-2.0. assim. O client (patch) funciona como um sensor e tem como objetivo coletar as informações detectadas pelo Snort e enviá-las ao Agent para que possa ser realizada a criação da regra de bloqueio no firewall. Este arquivo deve conter informações como os endereços IPs dos agentes Snort que serão aceitos.2.3 utilizando o link http://www.conf localizado na pasta /etc para que seja realizada comunicação e ele possa aceitar as solicitações dos sensores.9.168.2. O SnortSam é constituído de dois componentes: Client (patch) e Agent (aplicação).snortsam. O Agent (aplicação) deve ser instalado na mesma máquina em que o firewall esta instalado. #vi /etc/snortsam. crie uma regra no IPtables com as informações recebidas para que seja realizado o bloqueio da ameaça no firewall.168. tipo de firewall utilizado pelo SnortSam.sh #. Para isto siga as instruções abaixo: #cd /root/Downloads #tar -xvvzf snortsam-src2. pois isso não é mais problema é só um mero detalhe.70 utilizando o link http://www.168.diff #chmod +x autojunk. Para realizar a instalação do SnortSam Sensor é necessário aplicar um patch no snort e posteriormente recompilá-lo.0. endereço IP onde ficará esperando por requisições e os endereços IP que nunca serão bloqueados (white-list). Nos dias de hoje você não deve somente contar com "desastres naturais" como um fio corrompido ou um HD queimado. local onde será armazenado o arquivo de log dos registros de bloqueio.2.3. Para isso execute os comandos abaixo e edite o arquivo snort.2 logfile /var/log/snort.sam configurado: Instalação SnortSam Sensor 1.net/download. as verdadeiras ameaças são os famosos crackers.html e em seguida execute os comandos abaixo: #cd /root/Downloads #tar zxvf snortsam-2.3. CONCLUSÕES Nenhuma rede é 100% segura nos dias de hoje. para .9.net/download.9.1306546038 bindip 192.html e em seguida compila-lo e instalá-lo.sh 2.sh #. Após a instalação é necessário configurar o arquivo snortsam. se necessário. Instalação SnortSam Agent 1.conf Exemplo de snort. Leandro Guilherme accept 192.9.2 daemon 7 V. Para realizar a instalação do SnortSam Agent é necessário realizar o download do código fonte da versão 2. Para isto faça o download do patch versão 2.5 #patch –p1 < /root/Downloads/snortsam2.u2. que geralmente se infiltram nas de grandes corporações com o intuito de coletar informações sigilosas ou até mesmo danificar a rede. Sua função é ficar escutando até que receba alguma informação do cliente para que. não só um firewall físico. Devido a isso toda rede deve possuir um firewall poderoso.tar.0. Edgar – TAVEIRA. porém se você deseja ter uma boa rede.gz /src #cd /src #chmod +x makesnortsam.0. SNORTSAM O SnortSam trata-se de uma ferramenta que permite que o Snort possa além de identificar ameaças bloqueá-las no firewall.snortsam. mas também lógico./autojunk.conf.

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

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->