Elaborado por: Miguel Sampaio (miguelsaraiva@zmail.pt) Marco Silva (mareco@portugalmail.pt)
Instituto Politcnico de Leiria Escola Superior de Tecnologia e Gesto Departamento de Engenharia Informtica www.estg.ipleiria.pt
1 I. Agradecimentos
Este trabalho foi realizado no mbito da disciplina de Projecto I, da Licenciatura em Engenharia Informtica e Comunicaes (EIC), da Escola Superior de Tecnologia e Gesto (ESTG), do Instituto Politcnico de Leiria (IPL). A orientao do projecto esteve a cargo dos professores Mrio Antunes e Miguel Frade que contriburam na fase de edio deste documento.
II. Introduo
Este manual pretende apresentar, de uma forma simples, o processo de instalao de um sensor do Network Intrusion Detection System (NIDS) Snort e de todos os componentes de software necessrios. Este trabalho insere-se no mbito do desenvolvimento de um projecto de avaliao das funcionalidades do Snort, recorrendo realizao de testes numa rede piloto. A instalao em que se baseou este manual decorreu numa mquina com o sistema operativo Ubuntu 5.10 j instalado e com o servidor X tambm instalado e configurado.
III. Requisitos
Antes de iniciar a instalao e configurao do Snort e de alguns dos seus utilitrios, necessrio instalar algum software fundamental.
1 Instalar PHP, MySQL e Apache 1.1 Por download e instalao manual: PHP (www.php.net) MySQL (www.mysql.com) Apache (www.apache.org)
2 Configurar o iptables para que, especialmente na fase de testes, no bloqueie o trfego IP. # sudo i pt abl es - I I NPUT - i et h0 - p i p - j ACCEPT
3 Testar o Apache atravs do seguinte cdigo php: # sudo nano / var / www/ i ndex. php
<?php phpi nf o( ) ; ?>
Aps a instalao do Apache, dever ser possvel aceder atravs de um browser aos seguintes recursos: http://127.0.0.1/ ou http://localhost/.
2
4 Instalar o ADODB e o BASE (Basic Analysis and Security Engine) disponveis respectivamente em: http://prdownloads.sourceforge.net/adodb/ http://prdownloads.sourceforge.net/secureideas/
IV. Instalar o Snort
1. Executar o download do Snort e do PCRE: http://www.snort.org http://prdownloads.sourceforge.net/pcre/
2. Atravs do utilitrio Adept verificar se esto instalados os componentes libpcap0.8, libpcap0.8-dev, libpcre3 e o libpcre3-dev, necessrios para a instalao do Snort. Se necessrio, proceder sua instalao via Adept.
3. Instalar PCRE #sudo tar -xvzf pcre-6.3.tar.gz #cd pcre-6.3 #sudo ./configure #sudo make #sudo make install
4. Instalar Snort #sudo tar -xvzf snort-2.4.4.tar.gz #cd snort-2.4.4 #sudo ./configure --with-mysql=<localizao do mysql> #sudo make #sudo make install
Se ocorrer a seguinte mensagem de erro: snort: error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory, dever criar-se um link simblico, atravs do seguinte comando: # sudo l n - s / usr / l ocal / l i b/ l i bpcr e. so. 0 <l ocal i zao do f i chei r o> Por exemplo: # sudo l n - s / usr / l ocal / l i b/ l i bpcr e. so. 0 / usr / l i b/ l i bpcr e. so. 0
5. Efectuar o download das regras e proceder sua extraco para a directoria /etc/snort/rules
6. Configurar os seguintes parmetros no ficheiro /etc/snort/snort.conf:
var HOME_NET any ( Par a capt ur ar t odos as r edes) var EXTERNAL_NET ! $HOME_NET ( Tudo o que no f or HOME_NET ext er no) var RULE_PATH / et c/ snor t / r ul es ( cami nho cor r ect o par a as r egr as) - - pr epr ocessor out put dat abase: l og, mysql , user =snor t passwor d=<pwd_escol hi da>
3 dbname=snor t host =l ocal host
7. Configurar a base de dados do Snort no MySQL:
# mysql mysql > SET PASSWORD FOR r oot @l ocal host =PASSWORD( ' passwor d' ) ; >Quer y OK, 0 r ows af f ect ed ( 0. 25 sec) mysql > cr eat e dat abase snor t ; >Quer y OK, 1 r ow af f ect ed ( 0. 01 sec) mysql > gr ant I NSERT, SELECT on r oot . * t o snor t @l ocal host ; >Quer y OK, 0 r ows af f ect ed ( 0. 02 sec) mysql > SET PASSWORD FOR snor t @l ocal host =PASSWORD( ' passwor d_do_snor t . conf ' ) ; >Quer y OK, 0 r ows af f ect ed ( 0. 25 sec) mysql > gr ant CREATE, I NSERT, SELECT, DELETE, UPDATE on snor t . * t o snor t @l ocal host ; >Quer y OK, 0 r ows af f ect ed ( 0. 02 sec) mysql > gr ant CREATE, I NSERT, SELECT, DELETE, UPDATE on snor t . * t o snor t ; >Quer y OK, 0 r ows af f ect ed ( 0. 02 sec) mysql > exi t >Bye
8. Executar os seguintes comandos para criar as tabelas # mysql - u r oot - p < ~/ snor t i nst al l / snor t - 2. 4. 3/ schemas/ cr eat e_mysql snor t Ent er passwor d: mysql r oot passwor d
9. Verificar se a BD do Snort foi criada correctamente
# mysql - p >Ent er passwor d: mysql > SHOWDATABASES;
+- - - - - - - - - - - - + | Dat abase +- - - - - - - - - - - - + | mysql | Snor t | t est +- - - - - - - - - - - - + 3 r ows i n set ( 0. 00 sec)
mysql > use snor t >Dat abase changed
mysql > SHOWTABLES; +- - - - - - - - - - - - - - - - - - + | Tabl es_i n_snor t +- - - - - - - - - - - - - - - - - - + | dat a | det ai l | encodi ng Ver si on 13 Page 13 of 20 Updat ed 10/ 24/ 2005 7: 39 PM | event | i cmphdr
4 | i phdr | opt | r ef er ence | r ef er ence_syst em | schema | sensor | si g_cl ass | si g_r ef er ence | si gnat ur e | t cphdr | udphdr +- - - - - - - - - - - - - - - - - - + 16 r ows i n set ( 0. 00 sec) exi t ;
V. Instalar o ADODB:
# cp adodb462. t gz / var / www/ # cd / var / www/ # t ar - xvzf adodb462. t gz # r mr f adodb462. t gz
VI. Instalar e configurar o BASE:
1. Instalar:
# cp base- 1. 2. t ar . gz / var / www/ ht ml # cd / var / www/ ht ml # t ar xvzf base- 1. 2. t ar . gz # r mf base- 1. 2. t ar . gz # mv base- 1. 2 base ( r enomear base- 1. 2 par a si mpl esment e base) # cd / var / www/ ht ml / base # cp base_conf . php. di st base_conf . php
2. Editar o ficheiro /var/www/html/base/base_conf.php e introduzir os seguintes parmetros:
$BASE_ur l pat h = " / base"; $DBl i b_pat h = "/ var / www/ adodb/ "; $DBt ype = "mysql " ; $al er t _dbname = " snor t "; $al er t _host = "l ocal host " ; $al er t _por t = ""; $al er t _user = "snor t " ; $al er t _passwor d = "passwor d_do_snor t _conf "; / * Ar chi ve DB connect i on par amet er s */ $ar chi ve_exi st s = 0; # Set t hi s t o 1 i f you have an ar chi ve DB
VII. Iniciar o Snort
1. Activar o Snort para iniciar a recolha de trfego, atravs da execuo do seguinte comando:
# snor t - c <f i chei r o de conf i gur ao>
5
Por exemplo, para o ficheiro de configurao do Snort / et c/ snor t / snor t . conf , o arranque do Snort efectuado pelo seguinte comando: # snor t - c / et c/ snor t / snor t . conf
2. Consultar o BASE, executando num browser:
ht t ps: / / <ender eo. i p>/ base/ ht ml
Na pgina inicial de setup do BASE clicar no link setup page e de seguida no boto setup AG. Nesta altura possvel aceder e consultar os logs do Snort acedendo simplesmente ao endereo ht t ps: / / <ender eo. i p>/ base/ ht ml .
VIII. Instalar o Guardian
O Guardian um programa que funciona em conjunto com o Snort. A sua funo consiste na actualizao automtica das regras do iptables, com base nos alertas gerados pelo Snort. A actuao conjunta do Snort e do Guardian torna possvel dotar o Snort de mecanismos de reaco em caso de intruso e preveno de ataques futuros. De seguida so apresentados os passos para instalao deste programa:
1. Efectuar o download do Guardian em http://www.chaotic.org/guardian/.
2. Executar os seguintes comandos: # mv guar di an- x- x. t ar . gz / usr / sr c # t ar - xvzf guar di an- x- x. t ar . gz # cd guar di an- x- x # cd scr i pt s # l s
A directoria scripts dever ter os seguintes scripts:
f r eebsd_bl ock. sh f r eebsd_unbl ock. sh i pchai n_bl ock. sh i pchai n_unbl ock. sh i pt abl es_bl ock. sh i pt abl es_unbl ock. sh
O programa Guardian utiliza sempre os scripts denominados guardian_block.sh e guardian_unblock.sh. Assim, devero ser copiados para ficheiros com esses nomes os correspondentes ao filtro de pacotes que pretendemos utilizar. No caso concreto do iptables que o mais frequentemente utilizado, devero realizar-se os seguintes comandos:
# cp i pt abl es_bl ock. sh / usr / bi n/ guar di an_bl ock. sh # cp i pt abl es_unbl ock. sh / usr / bi n/ guar di an_unbl ock. sh # chmod 755 / usr / bi n/ guar di an_bl ock. sh / usr / bi n/ guar di an_unbl ock. sh
3. Copiar o script e ficheiro de configurao do Guardian para os locais correspondentes, atravs dos seguintes comandos: # cd . . # cp guar di an. pl / usr / bi n
6 # chmod 755 / usr / bi n/ guar di an. pl # cp guar di an. conf / et c/
4. Configurar os seguintes parmetros no ficheiro /etc/guardian.conf: I nt er f ace et h0 - i nt er f ace et h0, a que vai t er os t er mi nai s bl oqueados Al er t Fi l e / var / adm/ secur e - mudar par a / var / l og/ snor t / al er t Ti meLi mi t 86400 - mudar par a um val or em segundos que pr et endemos que o ender eo I P f i que bl oqueado pel a firewall. O val or 99999999 r emove est a opo.
5. Criar o arquivo de log do Guardian, atravs do comando: #t ouch / var / l og/ guar di an. l og
6. Criar o ficheiro guardian.ignore com os endereos IP que se pretende ignorar: # t ouch / et c/ guar di an. i gnor e
7. Iniciar o Guardian # guar di an. pl - c / et c/ guar di an. conf OS shows Li nux War ni ng! Host I pAddr i s undef i ned! At t empt i ng t o guess. . Got i t . . your Host I pAddr i s 192. 168. 1. 1 My i p addr ess and i nt er f ace ar e: 192. 168. 1. 1 et h0 Loaded 3 addr esses f r om/ et c/ guar di an. i gnor e Becomi ng a daemon. .