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