Friday, November 29, 2013

Aplicando Filtro e Monitorando pacotes em Juniper.


 Tenho estudado Juniper nos últimos dias e estou realmente impressionado.  Juniper surpreende em muitos aspectos. Umas das funcionalidades que mais me chamou a impressão, logo de cara, foi a possibilidade de ter um "tcpdump" a nível de Junos com o comando 'monitor traffic interface'. Para quem realiza constantes troubleshooting em equipamentos de redes, essa funcionalidade é realmente uma mão na roda.

root@sre-sc-a> monitor traffic interface em0 detail
Address resolution is ON. Use <no-resolve> to avoid any reverse lookup delay.
Address resolution timeout is 4s.
Listening on em0, capture size 1514 bytes

Reverse lookup for 172.16.1.1 failed (check DNS reachability).
Other reverse lookup failures will not be reported.
Use <no-resolve> to avoid reverse lookups on IP addresses.

20:57:50.855750  In IP (tos 0x0, ttl  64, id 8762, offset 0, flags [none], proto: ICMP (1), length: 84) 172.16.1.2 > 172.16.1.1: ICMP echo request, id 774, seq 0, length 64
20:57:50.855996 Out IP (tos 0x0, ttl 255, id 6372, offset 0, flags [DF], proto: ICMP (1), length: 56) 172.16.1.1 > 172.16.1.2: ICMP host 172.16.1.1 unreachable - admin prohibited filter, length 36
        IP (tos 0x0, ttl  64, id 8762, offset 0, flags [none], proto: ICMP (1), length: 84) 172.16.1.2 > 172.16.1.1: ICMP echo request, id 774, seq 0, length 64
20:57:51.890619  In IP (tos 0xc0, ttl   1, id 8763, offset 0, flags [none], proto: OSPF (89), length: 80) 172.16.1.2 > 224.0.0.5: OSPFv2, Hello, length 60 [len 48]
       

 A saída do comando acima é um  exemplo da funcionalidade. Vejam que a saída é parecida com o tcpdump. Nesse caso, um dos fluxos registrado foi um ping vindo do IP 172.16.1.2 e veja que interessante:
ICMP host 172.16.1.1 unreachable - admin prohibited filter

 O equipamento está avisando que houve um bloqueio devido a uma ACL, ou, Filtro, como é referido pela Juniper. Agora vejamos onde o ping foi originado:

64 bytes from 172.16.1.1: icmp_seq=11 ttl=64 time=29.344 ms
64 bytes from 172.16.1.1: icmp_seq=12 ttl=64 time=9.431 ms
36 bytes from 172.16.1.1: Communication prohibited by filter
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 0054 216b   0 0000  40  01 ff1a 172.16.1.2  172.16.1.1

36 bytes from 172.16.1.1: Communication prohibited by filter
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 0054 216c   0 0000  40  01 ff19 172.16.1.2  172.16.1.1

36 bytes from 172.16.1.1: Communication prohibited by filter
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 0054 216e   0 0000  40  01 ff17 172.16.1.2  172.16.1.1

 Podemos ver que o ping está acontecendo com sucesso até que um filtro foi aplicado no destino. Imediatamente a origem passou a ser avisada que a comunicação foi proibida devido a uma ACL.

 Como é inevitável  a comparação, isso não se vê em equipamentos Cisco.
Existem muitas situações em que nos vemos obrigados a provar que não há bloqueio em Firewall. Com Juniper, isso não se faz necessário.

 Vamos ver agora como criar um Filtro e como aplicar esse filtro.



edit firewall filter sample-filter term block-bad-subnet from

 Essa primeira linha cria um filtro chamado sample-filter. Ao inves de linhas, como  o IOS, o Junos usa 'term' para diferenciar as váras entradas em um filtro. Em nosso exemplo, usamos o term block-bad-subner


set source-address 172.16.1.2/32





 Com essa linha, definimos o trafico que queremos permitir ou bloquear. Reparem que, até aqui, ainda não definimos qual vai ser a política.

edit firewall filter sample-filter term block-bad-subnet then reject



Nessa linha,então, definimos que nossa política é reject.

edit interfaces em0 unit 0 family inet filter
set input sample-filter


Por último, nós aplicamos o filtro a uma das interfaces.


64 bytes from 172.16.1.1: icmp_seq=10 ttl=64 time=1.393 ms
64 bytes from 172.16.1.1: icmp_seq=11 ttl=64 time=29.344 ms
64 bytes from 172.16.1.1: icmp_seq=12 ttl=64 time=9.431 ms
36 bytes from 172.16.1.1: Communication prohibited by filter
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 0054 216b   0 0000  40  01 ff1a 172.16.1.2  172.16.1.1

36 bytes from 172.16.1.1: Communication prohibited by filter
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 0054 216c   0 0000  40  01 ff19 172.16.1.2  172.16.1.1


 E aqui podemos ver o ping informando que está sendo barrado por um filtro.


Desta forma concluímos nosso primeiro post técnico sobre Juniper. Como disse acima, Juniper é surpreendente.





No comments:

Post a Comment