Mitigando ataques de DHCP Spoofing utilizando Snooping en Switches Cisco

Snooping

Como muchos de ustedes saben, una de las formas que tienen los administradores de red, de entregar direccionamiento ip es mediante un servidor DHCP. El servidor DHCP escucha los broadcast generados por los host e inicia un ciclo de conversación hasta que finalmente entrega la dirección ip. Hasta aquí todo bien. Quizás muchas de las personas que lean este artículo  les  habrá pasado que en la red local aparece un segundo DHCP causando estragos en nuestra red LAN. Esto se conoce como el DHCP SPOOFING, en palabras simples un servidor DHCP que suplanta o interfiere con el verdadero DHCP corporativo. Si nuestra red local no cuenta con la protección adecuada es bastante dificil contener este tipo de ataques, donde tendremos constantes caídas de la red local.

En los Switches Cisco se cuenta con una solución que se llama Snooping, que es una función del equipo que sirve para repeler este tipo de ataques. Es muy simple el funcionamiento. Sólo hay que declarar el puerto al cual está conectado el DHCP corporativo(Trust) y ya está funcionando.  Veamos como se hace:

Primero se activa Snooping en el Switch

Switch(config)#ip dhcp snooping

Luego se entra a la interfaz o interfaces(que es donde va estar nuestro DHCP corporativo) y se aplica el comando que declara el puerto como trust. Por defecto cuando se activa snooping todos los puertos pasan a ser puertos untrust.

Switch(config-if)#ip dhcp snooping trust

También hay que considerar si nuestro switch tiene VLANS asociadas a estos puertos, en ese caso se aplica:

Switch(config)#ip dhcp snooping vlan 10,20 ….etc. según necesitemos.

Con esto, nuestro Switch nos ayudará a contener el ataque o en caso que alguien levante un segundo servidor DHCP en nuestra red lan. Verán que este servidor DHCP Malicioso no afectará nuestra red.

Espero que les sea de mucha utilidad.

Saludos

Juan Carlos Spichiger

  • Jorge

    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 ??

  • Jorge

    Saludos

    quise implementar esta medida de seguridad en los switch de acceso de la empresa para evitar que algún usuario conecte un router inalambrico y nos dañe la red.

    lo malo es que al implementar la medida no reparte solicitudes dhcp en ningun puerto del switch configurado, pero aguas abajo si.

    entonces lo aplico en los sw de distribución y bien me aisla el problema pero persiste en le sw de acceso donde se conecte el router inalambrico.

    y si lo aplico a ese sw de acceso no me entrega la ip, de hecho las pc les aparece la ip 169.

    estoy configurando tal cual lo explican y como debe hacerse. coloco el puerto troncal como seguro. indico cual es la vlan permitida activo el servicios. no coloco nada en las interfaces de usuarios

    hice el laboratorio en el packet tracert de cisco coloco el servidor dhcp en un router, lo conecto a un sw core 1, luego este a un distribucion 1 y este a su vez a sw de acceso. en toda la ruta he colocado los puertos como trunk y snooping seguro. de los sw de acceso coloque 2 en uno no coloque ninguna configuracion snooping y entrega las solicitudes dhcp, pero si coloco un server pirata dhcp entrega direcciones pero solo en ese sw no pasa mas alla, en el otro sw de acceso si coloque el puerto troncal como snooping seguro, y tambien coloque un server pirata. este no entrega direcciones a nadie pero ningun puerto recibe direcciones del server autentico, ahora bien cada puerto de acceso si lo configuro como seguro recibe ip del server seguro, adicionalmente le coloque el limit rate 1 para que solo pidan una sola direccion y bien claro si desconecto y conecto el cable o pido nuevamente otra ip me bloquea el puerto por err-disable

    ahora bien veo que el snooping me aisla la red y solo en los puertos seguros es que se reciben ip, entoces es ideal para un sw de distribucion o core donde los equipos tendran ip fijas, pero en lo que llego a un sw de acceso, que es donde esta el peligro no logro que los equipos reciban la direcccion ip legitima. pero con el limit rate 1 en server pirata se bloquea el puerto donde lo coloque, esto ya es una ayuda por que evita el problema original pero ahora el problema de que los hots no reciban direccion legitima sin decirle al puerto que es seguro es lo que me desconcierta

    Saludos
    Ing. Jorge Rodriguez
    Puerto Ordaz – Venezuela

  • Pingback: Rogue/Spoofing DHCP | Mundo Perdido()

  • icebox

    Excelente amigo, justo lo que buscaba, anda perfecto

     

    Saludos.-