Bloqueo de servidores DHCP falsos

Seguro que ya os ha pasado en alguna ocasión. De repente, la gente empieza a decir que ha perdido la conexión en la red local, miras tu icono en la barra de tareas y parece que está todo levantado. Luego ejecutas ipconfig/ifconfig y observas que tienes una IP que no es la que sueles tener. "Ya está, algún listillo ha conectado a la red un Linksys u otro cacharro con un servidor DHCP..."
 Aunque parezca mentira, esta situación hoy en día es bastante frecuente en cualquier empresa y es que los administradores muchas veces insisten en no poner las medidas necesarias para evitar este tipo de situaciones. Lo malo es que no siempre se trata de un incauto consultor que conecta sin querer algo que no sabe exactamente lo que hace e impiden que los demás puedan funcionar correctamente. Algunas veces un atacante puede instalar un falso DHCP (rogue DHCP) para, por ejemplo, falsificar el gateway y/o los servidores DNS de los confiados clientes de la red, de tal forma que podría esnifar su tráfico (MiTM) o redirigirlos a sitios falsos con no muy buenas intenciones...

La solución siempre pasa por configurar la electrónica de red para evitarlo. En este caso hablaremos de Cisco por ser lo más ampliamente utilizado, pero otros fabricantes como HP, Juniper u otros tienen medidas similares (si es tu caso, te invitamos a compartir con nosotros tu experiencia ;)).

Una forma sería utilizar ACLs para bloquear UDP 68, que es el puerto destino que utiliza un servidor DHCP para hablar con el cliente (RFC 1531). Así que simplemente si quieres que un servidor DHCP no envíe paquetes offer o acks puedes crear una lista de acceso y aplicarla en los interfaces correspondientes:

ip access-list 100 deny udp any any eq 68
ip access-list 100 permit ip any any
int [interface facing the would-be rogue]
ip access-group 100 in


Esto no sería necesario si tenemos configurado el ip helper-address y el switch está actuando como un reenviador de broadcasts hacia el servidor DHCP adecuado. También podríamos bloquear el acceso al puerto 68 si queremos detener un DHCP falso detrás de una pasarela o firewall.

La otra forma de luchar contra un DHCP rogue y la más adecuada es utilizar DHCP Snooping. Básicamente, se basa en definir en el switch los puertos sobre los que el tráfico del DHCP server confiable puede transitar. Es decir, definimos como “trust” los puertos donde tenemos servidores dhcp, relays dhcp y los trunks entre los switches.

Configuramos a nivel global en el switch y lo activamos:

ip dhcp snooping vlan 100,101
no ip dhcp snooping information option
ip dhcp snooping


Autorizamos los puertos del servidor dhcp y los trunks:

interface FastEthernet0/3
 description SERVER DHCP
 switchport mode access
 switchport access vlan 100
 switchport nonegotiate
 spanning-tree portfast
 ip dhcp snooping trust

interface GigabitEthernet0/1
 description FIREWALL
 switchport mode trunk
 spanning-tree portfast
 ip dhcp snooping trust

interface GigabitEthernet0/2
 description UPLINK A SWITCH
 switchport mode trunk
 ip dhcp snooping trust


El comando “no ip dhcp snooping information option” lo añadiremos si no queremos la opción 82, es decir, no queremos que el switch añada información adicional para que el servidor DHCP destino pueda identificar el origen del cliente en entornos distribuidos (campo “giaddr”) y asignarle una IP dentro del pool o rango correspondiente.

Por último, si queremos verificar la configuración del DHCP snooping:

switch#show ip dhcp snooping
Switch DHCP snooping is enabled
DHCP snooping is configured on following VLANs:
100,101
DHCP snooping is configured on the following Interfaces:

Insertion of option 82 is disabled
circuit-id format: vlan-mod-port
remote-id format: MAC
Option 82 on untrusted port is not allowed
Interface Trusted Rate limit (pps)
———————— ——- —————-
FastEthernet0/3 yes unlimited
GigabitEthernet0/1 yes unlimited
GigabitEthernet0/2 yes unlimited

switch#show ip dhcp snooping binding
MacAddress IpAddress Lease(sec) Type VLAN Interface
—————— ————— ———- ————- —- ——————–
00:0C:AA:CC:AA:BB 10.66.0.113 64701 dhcp-snooping 100 FastEthernet0/16
00:0C:BB:CC:AA:AA 10.1.0.110 65827 dhcp-snooping 101 FastEthernet0/4
84:2B:AA:AA:AA:AA 10.1.0.104 50058 dhcp-snooping 101 FastEthernet0/6


Si deseamos desactivarlo temporalmente no hay que reconfigurarlo todo:

no ip dhcp snooping
Fuentes:
Understanding and Configuring DHCP Snooping
dhcp snooping – prevención de ataques DHCP
Blocking rogue DHCP servers
How to Block Rogue DHCP Server's on Cisco Equipment Using ACL's?

Comentarios

  1. lol...no te imaginas la de ciscos que he visto sin el anti-snooping configurao....buena info!!!

    ResponderEliminar
  2. eso me lo van a preguntar mañana en un examen de administración de redes. Muchas gracias por explicarlo tan bien :-)

    ResponderEliminar
  3. parte de la configuracion del sw de acceso

    S2#show run
    Building configuration...

    Current configuration : 2966 bytes
    !
    version 12.2
    service timestamps log datetime msec
    service timestamps debug datetime msec
    no service password-encryption
    !
    hostname S2
    !
    enable secret 5 $1$mERr$9cTjUIEqNGurQiFU.ZeCi1
    !
    !
    !
    no ip domain-lookup
    !
    ip dhcp snooping vlan 10,99
    ip dhcp snooping
    !
    spanning-tree mode pvst
    !
    interface FastEthernet0/1
    switchport access vlan 10
    ip dhcp snooping trust
    ip dhcp snooping limit rate 1
    switchport mode access
    !
    interface FastEthernet0/2
    switchport access vlan 10
    ip dhcp snooping trust
    switchport mode access
    !
    interface FastEthernet0/3
    switchport access vlan 10
    ip dhcp snooping limit rate 1
    switchport mode access
    !
    interface FastEthernet0/4
    switchport access vlan 10
    ip dhcp snooping limit rate 1
    switchport mode access
    !
    interface FastEthernet0/24
    switchport access vlan 10
    switchport mode access
    !
    interface GigabitEthernet0/1
    switchport trunk native vlan 99
    switchport trunk allowed vlan 10,99
    ip dhcp snooping trust
    switchport mode trunk
    !
    interface GigabitEthernet0/2
    switchport trunk native vlan 99
    switchport trunk allowed vlan 10,99
    ip dhcp snooping trust
    switchport mode trunk
    !

    entonces lo puertos troncale son seguros
    los puertos de acceso que son seguros reciben direccion ip
    los puertos que no son declarados seguros no reciben ip
    puertos 3 y 4 no son seguros y tienen la limitante de 1 sola solicitud, si se conecta un server pirata dhcp ahi el puerto se bloquea.
    pero si lo conecto a un puerto seguro reparte direcciones como si nada.
    por lo que no se deben declarar los puertos de acceso como seguros por que no estariamos haciendo nada.

    mi pregunta entonces es este servicio esta pensado para segmentar la red a nivel de capa de distribucion pero no de acceso.

    se deberia entonces implementar otra medida de seguridad como el switchport port-security mac-address sticky para que solo se aprenda la mac del primer equipo que se conecte y al desconectar y conectar se bloquee el puerto.

    o me falta hacer algo para aprovechar la ventaja del dhcp snooping ??

    ResponderEliminar

Publicar un comentario