Desviando tráfico entre redes directamente conectadas

Fecha: agosto del 2018

 

Escenario

 

Este escenario se realiza a partir de la necesidad de evitar o analizar el tráfico entre dos redes directamente conectadas.

El tráfico podría evitarse con una simple ACL, desviarse tráfico entre segmentos que están directamente conectados

necesita algún otro tipo de truco, aquí vamos con uno bien simple, que como siempre, podemos complicarlo todo lo que

querramos. Todo depende de la necesidad y la curiosidad.

 

En este ejemplo dejamos pasar el tráfico TCP e intervenimos y analizamos/dropeamos el tráfico ICMP. A trabajar !

 

 

 

 

1.- Verificación inicial:

 

Cisco-PBR#sh ip route

Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP

       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

       E1 - OSPF external type 1, E2 - OSPF external type 2

       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

       ia - IS-IS inter area, * - candidate default, U - per-user static route

       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP

       + - replicated route, % - next hop override

 

Gateway of last resort is not set

 

      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks

C        192.168.1.0/24 is directly connected, Vlan1

L        192.168.1.1/32 is directly connected, Vlan1

      192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks

C        192.168.2.0/24 is directly connected, Vlan2

L        192.168.2.1/32 is directly connected, Vlan2

      192.168.3.0/24 is variably subnetted, 2 subnets, 2 masks

C        192.168.3.0/24 is directly connected, Vlan3

L        192.168.3.1/32 is directly connected, Vlan3

Cisco-PBR#

 

C:\>ping 192.168.3.10

 

Haciendo ping a 192.168.3.10 con 32 bytes de datos:

Respuesta desde 192.168.3.10: bytes=32 tiempo<1m TTL=63

Respuesta desde 192.168.3.10: bytes=32 tiempo<1m TTL=63

Respuesta desde 192.168.3.10: bytes=32 tiempo<1m TTL=63

 

2.- Implementación del PBR (Policy Based Routing):

 

Esta función se “saltea” la tabla de enrutamiento y reenvía a (en este caso a ciegas) un próximo salto.

 

2.1- Creamos una ACL con tráfico interesante:

 

ip access-list extended ACL-PBR-Vlan2

 permit icmp host 192.168.2.100 192.168.3.0 0.0.0.255

 exit

 

2.2.- Creamos una política para desviar el tráfico interesante:

 

route-map PBR-Vlan2 permit 10

 match ip address ACL-PBR-Vlan2

 set ip next-hop 192.168.1.10 (este sería por ejemplo el IPS)

 exit

 

Anteriormente mencionaba el reenvío a ciegas ya que pueden implementarse mecanismos de sensado del

próximo salto y en caso de no responder, omitirlo y seguir con otra política o ir a la tabla de enrutamiento.

 

2.3.- Aplicamos la política PBR al gateway de la red a analizar:

 

interface Vlan2

 ip policy route-map PBR-Vlan2

 

3.- Verificación ICMP:

 

En este ejemplo el IPS bloquearía el tráfico ICMP para evitar un ataque de reconocimiento.

 

C:\>ping 192.168.3.10

 

Haciendo ping a 192.168.3.10 con 32 bytes de datos:

Tiempo de espera agotado para esta solicitud.

Tiempo de espera agotado para esta solicitud.

Tiempo de espera agotado para esta solicitud.

Tiempo de espera agotado para esta solicitud.

 

4.- Verificación TCP:

 

C:\>tcping 192.168.3.10

 

Probing 192.168.3.10:80/tcp - Port is open - time=16.118ms

Probing 192.168.3.10:80/tcp - Port is open - time=12.176ms

Probing 192.168.3.10:80/tcp - Port is open - time=10.969ms

Probing 192.168.3.10:80/tcp - Port is open - time=12.915ms

 

5.- Verificación en el router:

 

Cisco-PBR#sh access-lists

Extended IP access list ACL-PBR-Vlan2

    10 permit icmp host 192.168.2.100 192.168.3.0 0.0.0.255 (16 matches)

Cisco-PBR#sh route-map PBR-Vlan2

route-map PBR-Vlan2, permit, sequence 10

  Match clauses:

    ip address (access-lists): ACL-PBR-Vlan2

  Set clauses:

    ip next-hop 192.168.1.10

  Policy routing matches: 16 packets, 1184 bytes

Cisco-PBR#

 

6.- Verificamos en el IPS:

 

Para esto utilizamos un router Mikrotik, que es lo que tenía a mano.

 

 

7.- Modificamos las políticas del IPS para permitir el tráfico ICMP y ver que sucede:

 

 

 

8.- Verificamos con ICMP:

 

C:\>ping 192.168.3.10

 

Haciendo ping a 192.168.3.10 con 32 bytes de datos:

Respuesta desde 192.168.3.10: bytes=32 tiempo<1m TTL=63

Respuesta desde 192.168.3.10: bytes=32 tiempo<1m TTL=63

Respuesta desde 192.168.3.10: bytes=32 tiempo<1m TTL=63

 

9.- Verificamos traza:

 

El TTL 63 de la prueba anterior nos indica que existe un solo salto (64-1=63), pero realmente

existen 3 saltos desde 2.100 a 3.10, el tema es que el retorno no se desvía, sino que llega con

un único salto pasando directamente por el router.

Recordemos que el camino de ida es echo-request y el de vuelta es echo-reply, o sea un paquete

ICMP totalmente nuevo, por lo tanto con TTL 64.

 

Utilizamos una versión casera del tracert o traceroute, donde en Windows –i es el TTL.

 

C:\>ping 192.168.3.10 -i 1 (primer salto)

 

Haciendo ping a 192.168.3.10 con 32 bytes de datos:

Respuesta desde 192.168.2.1: TTL expirado en tránsito.

Respuesta desde 192.168.2.1: TTL expirado en tránsito.

Respuesta desde 192.168.2.1: TTL expirado en tránsito.

Respuesta desde 192.168.2.1: TTL expirado en tránsito.

 

C:\>ping 192.168.3.10 -i 2 (segundo salto)

 

Haciendo ping a 192.168.3.10 con 32 bytes de datos:

Tiempo de espera agotado para esta solicitud.

Respuesta desde 192.168.1.10: TTL expirado en tránsito.

Respuesta desde 192.168.1.10: TTL expirado en tránsito.

Respuesta desde 192.168.1.10: TTL expirado en tránsito.

 

C:\>ping 192.168.3.10 -i 3 (tercer salto)

 

Haciendo ping a 192.168.3.10 con 32 bytes de datos:

Respuesta desde 192.168.1.1: TTL expirado en tránsito.

Respuesta desde 192.168.1.1: TTL expirado en tránsito.

Respuesta desde 192.168.1.1: TTL expirado en tránsito.

Respuesta desde 192.168.1.1: TTL expirado en tránsito.

 

C:\>ping 192.168.3.10 -i 4 (cuarto y último salto)

 

Haciendo ping a 192.168.3.10 con 32 bytes de datos:

Respuesta desde 192.168.3.10: bytes=32 tiempo<1m TTL=63

Respuesta desde 192.168.3.10: bytes=32 tiempo<1m TTL=63

Respuesta desde 192.168.3.10: bytes=32 tiempo<1m TTL=63

Respuesta desde 192.168.3.10: bytes=32 tiempo<1m TTL=63

 

Detalle de la traza: los saltos están marcados en rojo.

 

 

10.- Configuración afectada:

 

Cisco-PBR#sh runn (sólo lo relevante)

Building configuration...

 

Current configuration : 1689 bytes

!

! Last configuration change at 16:46:32 UTC Fri Aug 2 2018

version 15.1

no service pad

service timestamps debug datetime msec

service timestamps log datetime msec

no service password-encryption

!

hostname Cisco-PBR

!

ip dhcp excluded-address 192.168.2.1 192.168.2.99

!

ip dhcp pool Vlan2

 network 192.168.2.0 255.255.255.0

 default-router 192.168.2.1

!

interface FastEthernet1 (por default en VLAN 1)

 no ip address

 spanning-tree portfast

!

interface FastEthernet2

 switchport access vlan 2

 no ip address

 spanning-tree portfast

!

interface FastEthernet3

 switchport access vlan 3

 no ip address

 spanning-tree portfast

!

interface FastEthernet4

 no ip address

 shutdown

 duplex auto

 speed auto

!

interface Vlan1

 ip address 192.168.1.1 255.255.255.0

!

interface Vlan2

 ip address 192.168.2.1 255.255.255.0

 ip policy route-map PBR-Vlan2

!

interface Vlan3

 ip address 192.168.3.1 255.255.255.0

!

ip access-list extended ACL-PBR-Vlan2

 permit icmp host 192.168.2.100 192.168.3.0 0.0.0.255

!

route-map PBR-Vlan2 permit 10

 match ip address ACL-PBR-Vlan2

 set ip next-hop 192.168.1.10

!

line con 0

line aux 0

line vty 0 4

 login

!

end

 

Cisco-PBR#

 

(2018) The long road of networker

Rosario, Argentina