Documente Academic
Documente Profesional
Documente Cultură
br
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&
'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.
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.
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&.'
( 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.
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 quit
2 * Deta$9es de confi-#ra%&o:
. >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
m)sql1 status>
m)sql1 quit>
( ls *l
# 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&...
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;
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
" * 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
export GS4HLdebc0root:::M.MN L
( aptitude update
( ?etc?init.d?ss0 stop
( mount *a ( mount
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#.
2 * Insta$e o ;)ac9e2:
( aptitude install apac0e6
/ * '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
( +im securit)
Ser+erSi-nature Off
E * 'einicie o ;)ac9e2:
( ?etc?init.d?apac0e6 restart
< * 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
" * 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
5 * Am #m nave-ador1 acesse o conteJdo 6#e o a)ac9e est8 servindo1 com o teste do )9):
ou
( ls *l ?etc?apac0e6?mods*enabled
(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
( cd ?etc?apac0e6?ssl
= * ;-ora1 criar #m certificado com a$-oritmo )adr&o 6#e , aceito )e$a maioria dos browsers: +rimeiro a c9ave:
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
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
(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
12 * 'einicie o servi%o:
( ?etc?init.d?apac0e6 restart
1/ * Confira as )ortas 6#e foram abertas )ara o servidor web com 9tt)s:
( netstat *nltp , -rep apac0e6
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
+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
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
! * 'einicie o ;)ac9e2:
( ?etc?init.d?apac0e6 restart
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,.
" * 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
! * +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
( 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;
( ?etc?init.d?net.orKin- restart
( 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-
< * 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:
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.
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
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&