Sniffando pacotes em Firewalls Cisco PIX, ASA e FWSM
Uma ferramenta extremamente necessária para fazer um troubleshooting em uma rede é um sniffer. Vejo muitas pessoas reclamando da falta de opções de se fazer isso em firewalls Cisco, uma coisa que não é verdade. Até mesmo porque utilizo
diariamente em meu trabalho.
Tentarei explicar então como você pode sniffar pacotes dentro de Firewalls da Cisco.
Ex: Cisco Pix, Cisco ASA e FWSM. Gostaria de lembrar que o capture nao funciona corretamente em Firewalls FWSM versões inferiores a 3. Pelo que pude perceber ele so faz sniffer de trafego direcionado a interface do próprio Firewall.
Criando ACL's
a Primeira coisa que deve ser feita é a criação da access-list para o trafego desejado. Basicamente a idéia é restrigir o sniffer a apenas o trafego que você realmente quer ver. Eu não recomendo utilizar "any" em roteadores com grande Tráfego de dados.
PIX# config t
PIX(config)# access-list webcap line 1 extended permit tcp any host 192.168.1.1 eq 80
PIX(config)# access-list webcap line 2 extended permit tcp host 192.168.1.1 eq 80 any
PIX(config)# exit
No exemplo acima foi criado uma access-list chamada webcap e nela estou restringindo tudo que entra para o ip 192.168.1.1 na porta 80. E tudo sai da porta 80 do 192.168.1.1.
Listando sua Access-List
PIX# show access-list webcap
access-list webcap; 2 elements
access-list webcap line 1 extended permit tcp any host 192.168.1.1 eq www (hitcnt=0)
access-list webcap line 2 extended permit tcp host 192.168.1.1 eq www any (hitcnt=0)
Como podem ver o hitcount da access-list é 0 e vai continuar assim pq essa access-list nao será aplicada na interface será usada apenas para o capture.
Criando o Capture para ver o trafego
PIX# capture webcapinside access-list webcap interface inside
PIX# capture webcapoutside access-list webcap interface outside
No exemplo acima eu criei 2 captures para serem vistos, 1 para interface inside e outro para interface outside.
Ou seja se o trafego que voce quer ver só passa pela interface inside não vejo necessidade de criar um capture para sua interface outside. Lembrando que inside e outside é o nome que você deu para interface ou seja isso pode ser qualquer nome.
Listando Captures
PIX# show capture
capture webcapinside type raw-data access-list webcap interface inside
capture webcapoutside type raw-data access-list webcap interface outside
No exemplo acima estou listando os captures existentes no firewall assim você poderá escolher qual capture deseja ver.
Vendo o Trafego sniffado pelos captures criados
PIX# show capture webcapoutside
17 packets captured
1: 09:03:02.244906 192.168.2.2.2536 > 192.168.1.1.80: S 39829922:39829922(0) win 65535
2: 09:03:02.275620 192.168.1.1.80 > 192.168.2.2.2536: S 1295066193:1295066193(0) ack 39829923 win 5840
3: 09:03:02.275940 192.168.2.2.2536 > 192.168.1.1.80: . ack 1295066194 win 65535
4: 09:03:02.282303 192.168.2.2.2536 > 192.168.1.1.80: P 39829923:39830620(697) ack 1295066194 win 65535
5: 09:03:02.314864 192.168.1.1.80 > 192.168.2.2.2536: . ack 39830620 win 6970
6: 09:03:05.029722 192.168.1.1.80 > 192.168.2.2.2536: . 1295066194:1295067454(1260) ack 39830620 win 6970
7: 09:03:05.030805 192.168.1.1.80 > 192.168.2.2.2536: . 1295067454:1295068714(1260) ack 39830620 win 6970
8: 09:03:05.031309 192.168.2.2.2536 > 192.168.1.1.80: . ack 1295068714 win 65535
9: 09:03:05.064129 192.168.1.1.80 > 192.168.2.2.2536: . 1295068714:1295069974(1260) ack 39830620 win 6970
10: 09:03:05.065182 192.168.1.1.80 > 192.168.2.2.2536: . 1295069974:1295071234(1260) ack 39830620 win 6970
11: 09:03:05.065700 192.168.2.2.2536 > 192.168.1.1.80: . ack 1295071234 win 65535
12: 09:03:05.066296 192.168.1.1.80 > 192.168.2.2.2536: . 1295071234:1295072494(1260) ack 39830620 win 6970
13: 09:03:05.098597 192.168.1.1.80 > 192.168.2.2.2536: . 1295072494:1295073754(1260) ack 39830620 win 6970
14: 09:03:05.099146 192.168.2.2.2536 > 192.168.1.1.80: . ack 1295073754 win 65535
15: 09:03:05.099588 192.168.1.1.80 > 192.168.2.2.2536: . 1295073754:1295075014(1260) ack 39830620 win 6970
16: 09:03:05.100168 192.168.1.1.80 > 192.168.2.2.2536: P 1295075014:1295075958(944) ack 39830620 win 6970
17: 09:03:05.100595 192.168.2.2.2536 > 192.168.1.1.80: . ack 1295075958 win 65535
17 packets shown
No exemplo acima estou mostrando o trafego capturado pelo capture webcapoutside que foi aplicado na interface outside.
Para ver mais detalhes do que esta sendo capturado voce pode utilizar o parametro detail.
Exemplo:
PIX# show capture webcapoutside detail
Removendo o capture
PIX# no capture webcapinside type raw-data access-list webcap interface inside.
PIX# no capture webcapoutside type raw-data access-list webcap interface outside
Removendo a access-list
PIX# config t
PIX(config)# no access-list webcap line 1 extended permit tcp any host 192.168.1.1 eq 80
PIX(config)# no access-list webcap line 2 extended permit tcp host 192.168.1.1 eq 80 any
PIX(config)# exit
PIX#
Importante
Em algumas versões de firewall da cisco existe um BUG que quando se remove a access-list antes de ser removido o capture. Ele passa a sniffar todo o trafego enviado a device e em firewalls de grande quantidade de trafego isso pode fazer com que o firewall trave completamente.
Referencia
Usei como exemplo os comandos usados no site
http://www.computernetworkinghelp.com/content/view/40/1/
Informações
Caso tenham alguma duvida terei prazer em responde-las para tal utilize os comentários deste artigo.
Comentários
+ Enviar Comentário