Você está na página 1de 32

Instrutor Mrcio Oliveira NIDS Snort - Sistemas operacionais Linux Oys -2013 www.oys.com.

br

Network-IDS (NIDS) Snort

1. Objetivos:
Entender a importncia de uma ferramenta NIDS. Configurar um Apache dentro do chroot. Onde posicionar na rede um NIDS. Aprender o Snort com suporte a MySQL. Conhecer e configurar a ferramenta Acid ase. Conhecer am!ientes de chroot "inst#ar e configurar $ !%nus& Configurar ser'idor apache com certificados SSL e entender a sua importncia. Co#ocar o Snort para tra!a#har em ridge. (er a corre#a)*o da Norma com ferramentas NIDS. Integrar o Snort com um I+S ",uardian&

2. Conformidade com a norma.


De acordo com o item 1 .!.1- da norma A N. N / ISO0IEC 1233141335- con'6m 7ue as redes se8am ade7uadamente gerenciadas e contro#adas- de forma a proteg9$#as contra amea)as e manter a seguran)a de sistemas e ap#ica):es 7ue uti#i;am estas redes- inc#uindo a informa)*o em trnsito.

". Como f#nciona a so$#%&o SNO'(.


O Snort rea#i;ando so;inho a tarefa de registros de poss<'eis tentati'as de ata7ue em potencia# 6 uma =tima so#u)*o e se torna me#hor com!inado com uma ferramenta para tratar os #ogs- tornando a informa)*o ainda mais >ti# para um administrador. O Snort 6 !asicamente formado por ? componentes4 $ib)ca) * i!#ioteca uti#i;ada por todas as ferramentas de sniffers. E#a 6 respons@'e# por co#ocar a p#aca de rede em modo promiscuo- ou se8a- o modo 7ue captura todos os pacotes 7ue passam pe#a rede. +r,-)rocessadores - S*o recursos do Snort pacotes 7ue est*o passando por e#e- sendo m@7uina e do Snort e tam!6m a8uda a e'itar a#gum tipo de tentati'a de ata7ue- e#e 8@ gera Snort. 7ue s*o respons@'eis por fa;er um pr6 fi#tro nos assim- e#e diminui !astante o processamento da os fa#sos positi'os. Se o pr6$processador detecta um #og n*o passando o pacote para as regras do

'e-ras do Snort - Depois 7ue os pacotes passam pe#os pr6$processadores sem gerar uma tentati'a de ata7ue- e#es '*o para as regras do Snort- onde 6 feito uma checagem mais comp#eta conforme as regras 7ue o Snort possu<. Caso as regras detectem a#go- 6 gerado um #og. .o-s * Os #ogs podem ser gerados tanto na detec)*o dos pr6$processadores 7uanto nas regras do Snort. Esses #ogs por padr*o s*o gerados no formato teAto- e para faci#itar a 'isua#i;a)*o de#es'amos configurar para serem gra'ados em uma !ase MySQL.

/. Onde o Snort deve ficar0

O mais comp#eAo em uma imp#ementa)*o do ser'i)o Snort- n*o 6 a insta#a)*o do pr=prio ser'idor e sim sa!er onde posicionar o NIDS. Na figura a!aiAo- podemos 'er um eAemp#o de onde podemos posicionar o nosso NIDS"Snort&.

+ara o caso do Snort 7ue pode ficar entre o BireCa## e o SCitch- e#e est@ tra!a#hando como uma !ridge 7ue ser@ 'isto no fina# desse cap<tu#o.

5. Insta$a%&o e confi-#ra%&o do Snort em modo NIDS1 com s#)orte do 23S4..

Obs.: O Snort foi instalado em um sistema Linux, na distribuio Debian. Os procedimentos aqui apresentados, pode ser utilizados em qualquer distribuio, respeitando o processo independente de cada distribuio. este manual tamb!m apresentamos formas de instalao baseados em sistemas "ed #at $%entOS&.'

5.1 Insta$ando o 23S4.


1 * Insta$e o m3s6$-server:
( aptitude install m)sql*ser+er

D yum insta## mys7#$ser'er

2 * 7erifi6#e se o 23S4. est8 rodando e se os sockets est&o ativos:


( ps aux , -rep m)sql

( netstat *nlpt

" * Se na insta$a%&o n&o for definido #ma sen9a do #s#8rio root do 23S4.1 )ode-se fa:er com o se-#inte comando:
( m)sqladmin *u root pass.ord no+a/sen0a

+ara manter a seguran)a no acesso da !ase de dados 7ue ser@ criada- 6 necess@rio criar um usu@rio comum para ser o dono dessa !ase- n*o comprometendo a seguran)a de todo o !anco de dados.

/ * Crie #m #s#8rio c9amado snort no banco de dados:


( m)sql *u root *p

m)sql1 -rant all pri+ile-es on snort.2 to snort3456.478.699.: identified b) ;46<=57;>

m)sql1 -rant all pri+ile-es on snort.2 to snort3local0ost identified b) ;46<=57;>

m)sql1 quit

Dessa maneira- o usu@rio snort ser@ criado e ter@ acesso E !ase snort atra'6s do I+ da m@7uina e do hostname. 5 * ;-ora1 conecte no 23S4. com o #s8rio snort e crie a base de dados snort:
( m)sql *u snort *p

m)sql1 s0o. databases>

m)sql1 create database snort>

m)sql1 quit

5.2 Insta$a%&o e Confi-#ra%&o do Snort com s#)orte a 23S4..


1 * Insta$e o Snort com s#)orte a 23S4.:
( aptitude install snort*m)sql

D yum insta## snort$mys7#

2 * Deta$9es de confi-#ra%&o:

BaiAa de endere)o na 7ua# o Snort de'e ou'ir4 1<2.1!=.2

. >2/

Dese8a configurar uma !ase de dados para snort$mys7# gra'ar os #ogs4 Sim

" - ? necess8rio criar as tabe$as dentro da base de dados snort. O Snort tra: #m e@em)$o das tabe$as na s#a doc#menta%&o. Antre no se-#inte diretBrio:
( cd ?usr?s0are?doc?snort*m)sql

/ - Cti$i:e o ar6#ivo createDm3s6$.-: )ara criar as tabe$as dentro da base de dados snort:
( zcat create/m)sql.-z , m)sql *u snort *0 local0ost *p snort *D snort

5 * ;cesse o servidor 23S4. e verifi6#e as tabe$as na base de dados snort:


( m)sql *u snort *p

m)sql1 s0o. databases>

m)sql1 use snort>

m)sql1 s0o. tables>

m)sql1 status>

m)sql1 quit>

! * 7erifi6#e os ar6#ivos de confi-#ra%&o do snort:


( cd ?etc?snort

( ls *l

E * Fa%a #m cB)ia do snort.conf ori-ina$ e manten9a #m novo ar6#ivo sem os coment8rios:


( m+ snort.conf snort.conf.ori-inal

( cat snort.conf.ori-inal , -rep *+ @( , -rep . 1 snort.conf

= * Adite o snort.conf e modifi6#e-o da se-#inte maneira:


( +im snort.conf

var HOME_NET 192.168.200.0/24 var EXTERNAL_NET any

var DNS_SERVERS $HOME_NET var SMTP_SERVERS $HOME_NET var HTTP_SERVERS $HOME_NET


var SQL_SERVERS $HOME_NET $suprimido& !"#!" $a"a%a&'( ) *+ ,y&-)+ !&'r.&n r" #a&&/ r$.120416 $%na,'.&n r" 2 &".) 3a)2 &" 4 5 ,'n"ar a )6n2a 6n3)!$' $a%a&'&.3 n7 ...$suprimido&...

# Comentar a linha include dabases.conf include classification.config include reference.config include $RU E_P!TH"local.rules include $RU E_P!TH"#ad$traffic.rules include $RU E_P!TH"e%&loit.rules include $RU E_P!TH"co''unit($e%&loit.rules include $RU E_P!TH"scan.rules include $RU E_P!TH"finger.rules include $RU E_P!TH"ft&.rules
...$suprimido&...

< * 7erifi6#e tamb,m o ar6#ivo de confi-#ra%&o snort.debian.conf:


( +im snort.debian.conf

DABCD /S O"E/SED"EFGH;boot; DABCD /S O"E/#OIA/ AEH;456.478.65=.9?6=; DABCD /S O"E/OGECO SH;; DABCD /S O"E/C EA"JD%AH;et09; DABCD /S O"E/SA D/SEDESH;true; DABCD /S O"E/SEDES/"%GEH;root;

1 * 7is#a$i:e as re-ras (assinat#ras) do Snort dentro do diretBrio r#$es:


( cd rules ( ls

11 * ;ntes de reiniciar o snort1 a)a-#e o ar6#ivo de )endGncia da confi-#ra%&o do banco de dados 6#e e$e crio# dentro de >etc>snort:
( cd ?etc?snort

( rm db*pendin-*confi-

12 * Inicie o snort:
( ?etc?init.d?snort start

!. Insta$a%&o e Confi-#ra%&o do ;)ac9e2 com c9root.

!.1 Conformidade com a norma.


No 7ue di; respeito ao iso#amento de sistemas sens<'eis- a norma A N. N / ISO0IEC 1233141335 di; no item 11.!.2- 7ue sistemas sens<'eis de'em ter um am!iente computaciona# dedicado "iso#ado&.

!.1.1 O 6#e , c9root0


O chroot 6 do 7ue um am!iente iso#ado "en8au#ado& dentro da sua m@7uina rea#. .am!6m pode ser definido como um sistema dentro de outro 7ue comparti#ham processos. F um am!iente recomend@'e# para sistemas de acesso p>!#ico.

!.2 A@ec#%&o do )rocedimento: Criando o Sistema C9root


+ode$se uti#i;ar o comando de!ootstrap para criar um sistema De!ian em chroot. 1 * Insta$e o debootstra):
( aptitude install debootstrap

2 * Cti$i:e o debootstra) )ara montar #m Debian em c9root:


( mKdir ?+ar?debc0root

( debootstrap lenn) ?+ar?debc0root

Como estamos usando um reposit=rio interno- podemos fa;er da seguinte maneira4

( debootstrap lenn) ?+ar?debc0root 0ttp:??456.478.4.4?debian

" * 2onte o diretBrio virt#a$ do kerne$ do sistema ori-ina$ dentro do sistema c9root1 e o diretBrio de dis)ositivos:
( mount **bind ?proc? ?+ar?debc0root?proc ( mount **bind ?de+?pts ?+ar?debc0root?de+?pts

/ * De)ois1 acesse o sistema c9root criado:


( c0root ?+ar?debc0root

5 * 2odifi6#e a vari8ve$ de )rom)t )ara diferenci8-$o do sistema ori-ina$:


( +im ?root?.bas0rc

export GS4HLdebc0root:::M.MN L

! * Antre novamente no sistema c9root e at#a$i:e a $ista de )acotes do a)t:


( c0root ?+ar?debc0root

( aptitude update

E * +ara #m teste1 )are o ss9 no sistema ori-ina$:


( exit

( ?etc?init.d?ss0 stop

= * ;-ora dentro do sistema c9root1 insta$e o ss9:


( c0root ?+ar?debc0root

( aptitude install ss0

< * Defina #ma sen9a )ara o #s#8rio root do sistema c9root:


( pass.d root

1 * No >etc>fstab do c9root1 crie a monta-em dos dis)ositivos dos terminais virt#ais:


( +im ?etc?fstab none ?de+?pts de+pts defaults 9 9

( mount *a ( mount

11 * Conecte-se via ss9 em 6#a$6#er m86#ina e veja em 6#a$ sistema entrar8:


( ss0 root3456.478.699.:

A insta#a)*o e a configura)*o do Apache1- +G+5 e Acid ase- ser*o feitas dentro do sistema chroot para uma me#hor seguran)a- mantendo essas ap#ica):es iso#adas do sistema origina#.

1 * Antre no sistema c9root:


( c0root ?+ar?debc0root

2 * Insta$e o ;)ac9e2:
( aptitude install apac0e6

D yum insta## httpd

" * Adite o ar6#ivo de confi-#ra%&o do a)ac9e2 e defina #m F4DN:


( +im ?etc?apac0e6?apac0e6.conf

Ser+er ame 456.478.699.:

/ * 'einicie o ;)ac9e2:
( ?etc?init.d?apac0e6 restart

5 * 'etire a o)%&o de Inde@es )ara o diretBrio )adr&o do ;)ac9e2 ()rocedimentos b8sicos de se-#ran%a )ara o ;)ac9e2):
( cd ?etc?apac0e6?sites*a+ailable

( +im default

ODirector) ?+ar?...?1 (Options Cndexes Jollo.S)mLinKs IultiPie.s O#"6 n& 8 )) /Sy,L6n9& M!)"6V6'/& Dllo.O+erride one

Order allo.,den) allo. from all O?Director)1

! * Desative o banner de )8-ina do ;)ac9e2:


( cd ?etc?apac0e6?conf.d

( +im securit)

Ser+erSi-nature Off

E * 'einicie o ;)ac9e2:
( ?etc?init.d?apac0e6 restart

= * Fa%a #m teste acessando a )8-ina do se# servidor )e$o browser:


0ttp:??456.478.699.x

< * Saia do sistema c9root e crie #m scri)t no sistema ori-ina$ )ara iniciar o ;)ac9e2 dentro do sistema c9root 6#ando a m86#ina for $i-ada:
( exit

( +im ?etc?init.d?apac0e6/c0root

1 (Q?bin?bas0 2 3 mount **bind ?proc ?+ar?debc0root?proc 4 mount **bind ?de+?pts ?+ar?debc0root?de+?pts 5 c0root ?+ar?debc0root ?etc?init.d?apac0e6 start

( c0mod R55 ?etc?init.d?apac0e6/c0root

1 * Crie os $inks simbB$icos )ara os nHveis de e@ec#%&o:


( update*rc.d apac0e6/c0root start 64 6 < = 5 .

!." Insta$a%&o e Confi-#ra%&o do +I+5


1 * Antre no sistema c9root:
( c0root ?+ar?debc0root

2 * Insta$e o +I+5 e a$-#ns mBd#$os necess8rios:


( aptitude install p0p5

( aptitude install p0p5*m)sql

( aptitude install libapac0e6*mod*p0p5

" * Crie #m ar6#ivo na rai: das )a-inas servidas do a)ac9e1 com o nome inde@.)9)1 com o se-#inte conteJdo:
( +im ?+ar?...?index.p0p OS p0p p0pinfo$& S1

/ * Sa$ve o ar6#ivo e reinicie o a)ac9e2:


( ?etc?init.d?apac0e6 restart

5 * Am #m nave-ador1 acesse o conteJdo 6#e o a)ac9e est8 servindo1 com o teste do )9):

S'! &'rv6$ r 7 6 6n&"a)a$ 3 rr'"a,'n"'+ 3 , &!# r"' a #2# / ,y&-).

!./ ;)ac9e com s#)orte a SS..


1 * Antre no sistema c9root:
( c0root ?+ar?debc0root

2 * 7erifi6#e se o mBd#$o ss$ est8 ativo:


( apac0e6ctl *I

ou
( ls *l ?etc?apac0e6?mods*enabled

" * Se n&o1 ative o mBd#$o ss$:


( a6enmod ssl

(ai pedir para reiniciar o apache mas antes 6 necess@rio fa;er mais a#gumas modifica):es.

/ * Confira no ar6#ivo >etc>a)ac9e2>)orts.conf a )orta )adr&o 6#e o )rotoco$o 9tt) sobre (.S>SS. o#ve:
( +im ?etc?apac0e6?ports.conf

HNos pr=Aimo passos mostraremos o 7ue 6 preciso para cria)*o de um certificado padr*o I.53J- e como n=s mesmos podemos assin@$#o. Kti#i;aremos o programa openss# para istoL. 5 * 7erifi6#e se tem o )acote insta$ado:
( dpK- *l openssl

! * Insta$ando o o)enss$ caso n&o )oss#a:


( aptitude install openssl

D yum insta## openss# E * Crie #m diretBrio )ara o certificado:


( mKdir ?etc?apac0e6?ssl

( cd ?etc?apac0e6?ssl

= * ;-ora1 criar #m certificado com a$-oritmo )adr&o 6#e , aceito )e$a maioria dos browsers: +rimeiro a c9ave:

( openssl -enrsa *out 0ostname.Ke) 496=

De)ois o certificado (ser&o feitas a$-#mas )er-#ntas):

( openssl req *ne. *Ke) 0ostname.Ke) *out 0ostname.csr

Tou are about to be asKed to enter information t0at .ill be incorporated into )our certificate request. U0at )ou are about to enter is .0at is called a Distin-uis0ed E0ere are quite a fe. fields but )ou can lea+e some blanK Jor some fields t0ere .ill be a default +alue, Cf )ou enter L.L, t0e field .ill be left blanK. ***** %ountr) ame $6 letter code& VDFW:B"VA EA"W ame or a D .

State or Gro+ince ame $full name& VSome*StateW:"io de XaneiroVA EA"W Localit) ame $e-, cit)& VW:"io de XaneiroVA EA"W

Or-anization ame $e-, compan)& VCnternet Uid-its Gt) LtdW:OTSVA EA"W Or-anizational Fnit %ommon ame $e-, section& VW:CnfraVA EA"W

ame $e-, TOF" name& VW:.VA EA"W

Amail Dddress VW:academia3o)s.com.brVA EA"W

Glease enter t0e follo.in- LextraL attributes to be sent .it0 )our certificate request D c0allen-e pass.ord VW:VA EA"W Dn optional compan) name VW:VA EA"W

< * Neste )onto vocG tem d#as o)%Kes1 )ode tanto enviar se# certificado (CS') )ara #ma das v8rias a#toridades certificadoras )ara 6#e assinem e tornem se# certificado v8$ido o# vocG mesmo )ode assinar:
( openssl x595 *req *da)s <75 *in 0ostname.csr *si-nKe) 0ostname.Ke) *out 0ostname.crt

O ar7ui'o hostname.crt 6 o certificado- e o hostname.Mey a cha'e.

1 * ;dicionando as diretivas necess8rias )ara ativar o SS.:


( cd ?etc?apac0e6?sites*a+ailable ( +im default*ssl (SSL An-ine S.itc0: (Anable?Disable SSL for t0is +irtual 0ost. SSLAn-ine on

(D self*si-ned $snaKeoil& certificate can be created b) installin(t0e ssl*cert pacKa-e. See (?usr?s0are?doc?apac0e6.6*common?"ADDIA.Debian.-z for more info. (Cf bot0 Ke) and certificate are stored in t0e same file, onl) t0e (SSL%ertificateJile directi+e is needed. SSL5'r"6763a"'86)' /'"3/a#a32'2/&&)/2 &"na,'.3r" SSL5'r"6763a"':'y86)' /'"3/a#a32'2/&&)/2 &"na,'.9'y

11 * ;tive o site defa#$t-ss$:


( a6ensite default*ssl

12 * 'einicie o servi%o:
( ?etc?init.d?apac0e6 restart

1" * 7erifi6#e os )rocessos do ;)ac9e2 6#e foram inicia$i:ados:


( ps aux , -rep apac0e6

1/ * Confira as )ortas 6#e foram abertas )ara o servidor web com 9tt)s:
( netstat *nltp , -rep apac0e6

E. Insta$a%&o e Confi-#ra%&o do ;cidLase

O Acid ase 6 a ferramenta 7ue ser@ uti#i;ada para 'isua#i;ar os e'entos de a#erta 7ue ser*o gerados pe#o Snort e gra'ados dentro do MySQL. +ara funcionar- o Acid ase depende do Apache com +G+ pois 6 uma ferramenta Ne!. O Apache1 e o +G+5 8@ est*o insta#ados no sistema chroot- ent*o- o Acid ase de'er@ ser insta#ado #@ tam!6m. 1 * Antre no sistema c9root:
( c0root ?+ar?debc0root

2 * Insta$e o ;cidbase:
( aptitude install acidbase

O /ed Gat e o De!ian Nee;y- n*o possuem pacotes para o Acid!ase. Nesse caso 6 necess@rio insta#ar para o /ed Gat- diretamente pe#o fonte4 0ttps:??launc0pad.net?debian?sid? Ysource?acidbase?4.=.5*<?Yfiles?acidbase/4.=.5.ori-.tar.-z +ara o Nee;yadicionar o seguinte reposit=rio no de!ian chroot4
de! 9tt):>>7"#.$'.$'%6an. r*/$'%6an s6#ee:e main

O!s.4 N*o tem pro!#ema ser de outra 'ers*o a distro de!ian

+e#o fato da insta#a)*o do Acid ase estar sendo feita dentro do sistema chroot- ta#'e; e#e n*o conseguir@ criar as ta!e#as necess@rias na !ase de dados snort- pois na insta#a)*o padr*o e#e entende 7ue o MySQL est@ na mesma m@7uina- por isso- de'e$se ignorar a cria)*o das ta!e#as na !ase de dados- e#as ser*o feitas posteriormente.

" * Adite o ar6#ivo de confi-#ra%&o de base de dados do ;cidLase1 informando os va$ores corretos:
( cd ?etc?acidbase

( +im database.p0p

Nalert/userHLsnortL> Nalert/pass.ordHL46<=57L> Nbasepat0HLL> Nalert/dbnameHLsnortL> Nalert/0ostHL456.478.699.:L> Nalert/portHL<<97L> NDBt)peHLm)sqlL>

/ * .ibere acesso M )8-ina do ;cidLase nas confi-#ra%Kes do ;)ac9e2:


( cd ?etc?acidbase

( +im apac0e.conf OCfIodule mod/alias.c1 Dlias ?acidbase ;?usr?s0are?acidbase; O?CfIodule1

ODirector)Iatc0 ?usr?s0are?acidbase?1 Options YJollo.S)mLinKs Dllo.O+erride one

order den),allo. den) from all a)) / 7r , 192.168.200.0/211.211.211.0 allo. from 46R.9.9.9?655.9.9.9 OCfIodule mod/p0p=.c1 p0p/fla- ma-ic/quotes/-pc Off p0p/fla- tracK/+ars On p0p/+alue include/pat0 .:?usr?s0are?p0p O?CfIodule1 O?Director)Iatc01

5 * Crie o $ink simbB$ico )ara a )asta do a)ac9e2:


( ln *s ?etc?acidbase?apac0e.conf ?etc?apac0e6?conf.d?acidbase.conf

! * 'einicie o ;)ac9e2:
( ?etc?init.d?apac0e6 restart

E * Saia do sistema c9root:


( exit

= * +ermita 6#e o 23s6$ traba$9e no I+ da m86#ina e n&o sB em $oca$9ost:


( +im ?etc?m)sql?m).cnf

bind*address H 456.478.699.: ( ?etc?init.d?m)sql restart

< * ;cesse o ;cidLase no browser:


0ttp:??456.478.699.:?acidbase?

No primeiro acesso- a interface do Acid ase dar@ um erro rec#amando a fa#ta de a#gumas das ta!e#as 7ue o Acid ase uti#i;a. +ara reso#'er esse erro- c#i7ue em Setup +age e depois em Create ase A,.

=. Snort traba$9ando como #ma )onte (brid-e).


Em am!ientes onde o Snort precisa ficar transparente na rede- ou em redes onde n*o tem a disponi!i#idade de tra!a#har com um SCitch com port$mirror- podemos fa;er 7ue o Snort tra!a#he como se fosse uma ponte"!ridge&- onde todo o tr@fego de rede passar@ por e#e de forma transparente.

1 * +rimeiro , necess8rio insta$ar o )acote )ara criar a brid-e entre as interfaces:


( aptitude install brid-e*utils

D yum insta## !ridge$uti#s

2 * ;-ora1 criar a interface de brid-e:


( brctl addbr br9 ( ifconfi- *a

" * Com a interface de brid-e criada1 , necess8rio definir 6#ais interfaces v&o )ertencer a e$a )ara a )onte ser estabe$ecida:
( brctl addif br9 et09 ( brctl addif br9 et04 ( brctl s0o.

/ * +ara ficar a$-o trans)arente1 as interfaces n&o )odem ter endere%o I+:
( ifconfi- et09 9.9.9.9

( ifconfi- et04 9.9.9.9

5 * +ara co$ocar a brid-e em f#ncionamento , necess8rio $evantar a s#a interface:


( ifconfi- br9 up

! * +ara dei@ar essas confi-#ra%Kes fi@as1 edite o >etc>network>interfaces e dei@e da se-#inte maneira:
( +im ?etc?net.orK?interfaces

auto lo iface lo inet loopbacK

( E0e primar) net.orK interface auto et09 iface et09 inet manual address 9.9.9.9 net.orK 9.9.9.9 broadcast 9.9.9.9

auto et04 iface et04 inet manual address 9.9.9.9 net.orK 9.9.9.9 broadcast 9.9.9.9

auto br9 iface br9 inet manual brid-e/ports et09 et04 brid-e/max.ait 9

E * ;-ora1 fa%a com 6#e o Snort traba$9e na interface da brid-e: N vim >etc>snort>snort.debian.conf
DABCD /S O"E/SED"EFGH;boot; DABCD /S O"E/#OIA/ AEH;456.478.:.9?6=; DABCD /S O"E/OGECO SH;; ;E<=AN_SNORT_=NTER8A5E.>%r0; DABCD /S O"E/SA D/SEDESH;true; DABCD /S O"E/SEDES/"%GEH;root; DABCD /S O"E/SEDES/E#"AS#OLDH;4;

= * A feitas as modifica%Kes1 reiniciar o snort:


( ?etc?init.d?snort restart

< * +ara desfa:er a brid-e1 fa%a fa:er os se-#intes )assos:


( ifconfi- br9 do.n

( brctl delif br9 et09

( brctl delif br9 et04

( brctl delbr br9

( ?etc?init.d?net.orKin- restart

<. I+S * Intr#sion +revention S3stem

<.1 Defini%&o de I+S


O I+S 6 o dispositi'o 7ue tra!a#ha 8unto com o NIDS ou GIDS para tomar uma a)*o re#acionado a determinado e'ento 7ue o NIDS0GIDS registraram. Em nosso caso o nosso NIDS 6 Snort- e o I+S 7ue 'amos tra!a#har 6 o ,uardian 7ue foi desen'o#'ido para tra!a#har eAc#usi'amente com o Snort. Sua funciona#idade 6 simp#es- o ,uardian fica constantemente ana#isando os #ogs do Snort- 7uando 6 gerado uma a#erta de n<'e# 1- 7ue 6 o mais a#to do Snort- o ,uardian criar@ automaticamente uma regra com ipta!#es para !#o7uear o I+ 7ue est@ atacando. Esse I+ pode ficar !#o7ueado constantemente- ou por um determinado tempo.

<.2 Insta$ando o O#ardian


1 * O O#ardian , basicamente #m scri)t em +er$1 e n&o est8 em re)ositBrios Debian. +ode-se obtG$o )e$o se-#inte site:
0ttp:??....c0aotic.or-?-uardian?

2 * ;)Bs bai@ar o O#ardian1 vamos descom)acta-$o:


( cd ?opt ( tar xz+f -uardian*4.:.tar.-z ( cd -uardian*4.:

" * +rimeiro1 modifi6#e o ar6#ivo de confi-#ra%&o -#ardian.conf e co$o6#e-o no >etc:


( +im -uardian.conf

Cnterface et0: Lo-Jile ?+ar?lo-?-uardian.lo-

DlertJile ?+ar?lo-?snort?alert C-noreJile ?etc?-uardian.i-nore EimeLimit <799

( cp -uardian.conf ?etc

/ * +ode-se criar o a6#ivo -#ardian.i-nore1 e co$ocar os I+S 6#e n&o )recisam ser c9ecados1 no caso1 )odemos co$ocar o nosso )rB)rio I+:
( +im ?etc?-uardian.i-nore 456.478.699.:

5 * ;-ora1 , necess8rio )re)arar os scri)ts 6#e o -#ardian #ti$i:ar8 )ar b$o6#ear e desb$o6#ear os I+Ps:
( cd scripts ( cp iptables/blocK.s0 ?sbin?-uardian/blocK.s0 ( cp iptables/unblocK.s0 ?sbin?-uardian/unblocK.s0

! * +ara co$ocar o O#ardian em f#ncionamento1 co$o6#e o scri)t -#ardian.)$ )ara #m dos diretBrios do +;(I:
( cd .. ( cp -uardian.pl ?sbin

+or uma #imita)*o do ,uardian- seu sistema precisa estar com o idioma em ing#9s- pois o ,uardian se !aseia nos parmetros 7ue est*o no ifconfig. E * Crie o ar6#ivo de $o- do O#ardian:
( touc0 ?+ar?lo-?-uardian.lo-

= * Crie o ar6#ivo de (ar-et )ara inc$#ir os I+s1 a serem monitorados:

( +im ?etc?-uardian.tar-et 456.478.9.64 456.478.4.4 699.x.x.x

< * Inc$#ir na confi-#ra%&o do Snort1 a o)%&o de arma:enamento de a$ertas1 no ar6#ivo a$ert1 inde)endente do 6#e for $o-ado no 23S4.:
( +im ?etc?snort?snort.conf Z !"#!" a)'r"_7!))( /var/) */&n r"/a)'r" output lo-/tcpdump: tcpdump.looutput database: lo-, m)sql, userHsnort pass.ordH46<=57 dbnameHsnort 0ostHlocal0ost Z

1 * Inicie o O#ardian:
( -uardian.pl *c ?etc?-uardian.conf ( ps ax

11 * +ara testar1 acom)an9e o $o- do O#ardian en6#anto o#tra m86#ina fa: #ma varred#ra com nma):
( tail *f ?+ar?lo-?-uardian.lo-

12 * +ode-se criar #m scri)t no nHve$ de e@ec#%&o )adr&o )ara o O#ardian ser iniciado a#tomaticamente no boot do sistema:
( +im ?etc?init.d?-uardian

(Q?bin?bas0 test *f ?sbin?-uardian.pl ,, exit 9 case ;N4; in start& -uardian.pl *c ?etc?-uardian.conf >> stop& Kill *5 N$p-rep -uardian.pl& >> 2& ec0o ;Opo in+alida. Fse start ou stop.; exit 6 >> esac exit 9

( c0mod R55 ?etc?init.d?-uardian ( update*rc.d -uardian defaults ( ?etc?init.d?-uardian ( ?etc?init.d?-uardian stop ( ?etc?init.d?-uardian start

1" * +ara testar1 e@ec#te #m nma) no 9ost onde encontra-se insta$ado o snort > -#ardian:

( nmap *s: 456.478.9.64

1 . 2odos de #ti$i:a%&o do Snort

1 .1 2odo Sniffer
Em modo de Sniffer o programa #9 todos os pacotes de uma rede e fa; o dump de cada pacote num modo descodificado e capa; de ser compreendido- para um dispositi'o de sa<da. +ara acti'ar o modo de sniffer- temos os seguintes op):es4 O'4 'er!ose mode Od4 dump pacMects pay#oads com os headers Oe4 disp#ay #inM$#ayer data O modo P$eQ disp#ay o #inM$#ayer data 7ue para o Ethernet 6 o header do pacote- no entanto o Snort suporta tam!6m os header do .oMen /ing e do BDDI. Com!inando todos os sCitches temos uma 'is*o muito deta#hada do tr@fego da rede. A#6m desta op)*o- a op)*o H$iL- tam!6m foi uti#i;ada- especificando a interface Heth3L- com a ser monitorada. Caso esta op)*o n*o se8a definida- o snort monitora a primeira interface do sistema.

Inicie o snort em modo sniffer- uti#i;ando as op):es acima4


( snort *+de *i et09

Iodo de utilizao do Snort como Sniffer

A sa<da do comando tam!6m poder@ se concatenada para um ar7ui'o$teAto- a fim de registrar o monitoramento.

+ara isso- use o comando tee- segui o nome do ar7ui'o 7ue dese8a arma;enar as sa<das do monitoramento4

( snort *+de *i et09 , tee arqui+o/monitoramento.txt

Ap=s o monitoramento- use um edito de teAto- para 'isua#i;ar os e'entos registrados

R3.1 Am modo de +acket .o--er

Neste modo o Snort registra todos os pacotes 7ue se encontram re#acionados com um ar7ui'o ou direct=rio. A op)*o 7ue permite ati'ar este modo 6 PO#Q- e 7uando ati'ado permite registar os pacotes do monitoramento- !em como os endere)os I+ dos hosts en'o#'idos- co#ocando$os em ar7ui'os por protoco#o e n>mero das portas. Os pacotes podem ser registados ou lo--ed no formato !in@rio se for especificado a op)*o P$!Q- podendo desta forma preser'ar os pacotes para 7ue uma ap#ica)*o capa; de manusear ficheiros em ra. .C+Dump. Op):es no modo +acMet Logger4 O# S#ogdirT4 Despe8a os pacotes no ficheiro S#ogdirT O!4 /egista os pacotes no formato !in@rio "tcpdump&

(snort *l ?+ar?lo-?snort? (snort *b *l ?+ar?lo-?snort?

A op)*o H$$iL- tam!6m poder@ ser uti#i;ada- para especifica)*o da inrterface

1 ." Am modo de NIDS


O modo NIDS foi apresentado nos cap<tu#os anteriores "insta#a)*o e configura)*o- pag.4 2&