Seguridad de Capa 2
El switch es el primer punto de contacto con la red. Si un puerto queda abierto sin controles, cualquiera que lo conecte puede inundar la tabla MAC, levantar un servidor DHCP falso o hacerse pasar por otro host en la LAN. Ninguno de estos ataques cruza un router — todos ocurren dentro del mismo segmento de capa 2 — así que la defensa también tiene que vivir ahí, en el switch.
| Ataque | Qué hace |
|---|---|
| MAC flooding | Inunda la tabla MAC con direcciones falsas hasta que el switch, sin espacio, empieza a repetir todo el tráfico por todos los puertos |
| DHCP starvation / rogue | Agota el pool DHCP legítimo y luego ofrece direcciones desde un servidor falso |
| ARP spoofing | Responde ARP con su propia MAC para interceptar tráfico ajeno (man-in-the-middle) |
| VLAN hopping | Aprovecha DTP o un trunk mal restringido para alcanzar VLANs que no le corresponden |
| Switch no autorizado | Conecta un switch extra a un puerto libre para ganar acceso al backbone |
Port Security
Section titled “Port Security”El MAC flooding: es una herramienta que genera MACs falsas para desbordar la tabla del switch, que ante la falta de espacio deja de aprender direcciones nuevas y empieza a inundar (flood) todo el tráfico por todos los puertos, exactamente lo que un atacante necesita para esnifar tráfico ajeno.
Port Security cierra esta puerta limitando cuántas direcciones MAC puede aprender un puerto y qué hacer si aparece una de más:
SW1(config)# int f0/1SW1(config-if)# switchport mode accessSW1(config-if)# switchport port-securitySW1(config-if)# switchport port-security maximum 2SW1(config-if)# switchport port-security mac-address stickySW1(config-if)# switchport port-security violation restrict| Comando | Función |
|---|---|
switchport port-security |
Activa Port Security en el puerto |
switchport port-security maximum <n> |
Máximo de MACs permitidas (por defecto 1) |
switchport port-security mac-address sticky |
Aprende la MAC del host conectado y la guarda |
switchport port-security violation <modo> |
Acción ante una violación |
El modo de violación decide qué tan agresiva es la respuesta:
| Modo | Qué ocurre al exceder el máximo |
|---|---|
protect |
Descarta tramas de MACs no permitidas, sin registrar nada |
restrict |
Descarta tramas y además genera un log/SNMP con el evento |
shutdown |
Deja el puerto en errdisable, completamente apagado |
SW1# show port-security interface GigabitEthernet0/1Security Port MaxSecurityAddr CurrentAddr SecurityViolation Security Action (Macs) (Macs) (Count) (Mode)----------------------------------------------------------------------- Gi0/1 2 1 0 RestrictCon maximum 2 y modo restrict, en cuanto aparece una tercera MAC en ese
puerto, el switch descarta su tráfico y lo registra — el flooding deja de
tener efecto porque nunca hay espacio real para las MACs falsas. Si en su
lugar se hubiera usado shutdown, el puerto pasaría a errdisable, y para
recuperarlo hace falta shutdown + no shutdown, o dejarlo automatizado con
errdisable recovery cause psecure-violation.
DHCP Snooping
Section titled “DHCP Snooping”Semanas después, en otro piso, varios usuarios reportan que no pueden salir a internet y que su IP no corresponde a ningún rango conocido de la empresa. Un compañero conectó un router doméstico a un puerto de pared para tener su propio Wi-Fi, sin saber que ese router también reparte direcciones IP por DHCP. Ocurre cuando se conecta otro router con su propio DHCP activo, respondiendo en la misma VLAN, y algunas computadoras terminan tomando la configuración del router falso — con su propio gateway, que no lleva a ningún lado real.
DHCP Snooping resuelve esto tratando los puertos de forma asimétrica:
- Los puertos trusted pueden enviar respuestas DHCP (oferta, ACK) — se marcan así solo los que van hacia el servidor DHCP legítimo o hacia otro switch por trunk.
- Los puertos untrusted (el resto, hacia los clientes) solo pueden enviar discover/request; cualquier oferta o ACK que llegue desde uno de ellos se descarta de inmediato, sin importar de dónde venga.
SW1(config)# ip dhcp snoopingSW1(config)# ip dhcp snooping vlan 10,20SW1(config)# interface GigabitEthernet0/1SW1(config-if)# ip dhcp snooping trustSW1(config)# interface range f0/1 - 24SW1(config-if-range)# ip dhcp snooping limit rate 10| Comando | Función |
|---|---|
ip dhcp snooping |
Activa DHCP Snooping globalmente |
ip dhcp snooping vlan <lista> |
Aplica el filtrado a esas VLANs |
ip dhcp snooping trust |
Marca un puerto como confiable (servidor/trunk) |
ip dhcp snooping limit rate <n> |
Limita paquetes DHCP/seg por puerto (evita starvation) |
Con esto, el puerto donde está el router doméstico queda untrusted por defecto: sus ofertas DHCP se descartan y los clientes vuelven a recibir dirección solo del servidor legítimo, conectado al puerto Gi0/24 marcado como trusted.
Dynamic ARP Inspection (DAI)
Section titled “Dynamic ARP Inspection (DAI)”DHCP Snooping, además de bloquear servidores falsos, va guardando una tabla
de bindings — qué IP le corresponde a qué MAC y en qué puerto, según lo que
realmente entregó el servidor DHCP legítimo. Esa tabla es la base para
resolver otro problema: un usuario reporta que, de vez en cuando, su tráfico
tarda más de lo normal y al ejecutar arp -a o ip neigh en su equipo muestra que la MAC del gateway
cambió sin motivo. Es ARP spoofing: otro host en la misma VLAN está
respondiendo con su propia MAC cuando alguien pregunta por la IP del gateway,
para interceptar el tráfico antes de reenviarlo (man-in-the-middle).
DAI usa la tabla de bindings de DHCP Snooping para validar cada mensaje ARP que llega por un puerto untrusted: si la IP y la MAC del mensaje no coinciden con lo que el binding dice que debería ser, lo descarta.
SW1(config)# ip arp inspection vlan 10,20SW1(config)# int g0/1SW1(config-if)# ip arp inspection trustLos puertos trusted (servidores, enlaces entre switches) no se validan; el resto sí, contra el binding DHCP. Sin DHCP Snooping activo no hay tabla que consultar, así que DAI depende de tenerlo configurado primero — o, en su defecto, de ARP ACLs manuales para las IPs estáticas que DHCP Snooping no puede ver.
IP Source Guard (IPSG)
Section titled “IP Source Guard (IPSG)”IP Source Guard es una función de seguridad de capa 2 que actúa como un guardia de tránsito para el tráfico IP. Su objetivo principal es evitar que un usuario malintencionado en la red robe o utilice una dirección IP que no le pertenece (lo que se conoce como IP spoofing o suplantación de IP).
A diferencia de DAI (que revisa las tramas ARP), IP Source Guard inspecciona el tráfico IP real que sale de un puerto de usuario.
- Reutiliza la tabla de DHCP Snooping: Al igual que DAI, IPSG consulta la base de datos de bindings (la relación entre la MAC, la IP y el número de puerto que se otorgó legítimamente).
- Inspección en el puerto untrusted: Cuando activas
ip verify sourceen una interfaz con el comando:
SW1(config)# int range f0/1 - 24SW1(config-if-range)# ip verify sourceEl switch analiza cada paquete IP que sale de ese puerto.
- Bloqueo preventivo: Si un usuario decide cambiar manualmente la IP de su PC (por ejemplo, poniéndose la IP de un servidor importante o de otro compañero) para saltarse reglas de seguridad o ACLs, el switch detecta que esa IP no coincide con la registrada en la tabla de DHCP Snooping para ese puerto específico y descarta el paquete de inmediato.
Endurecimiento adicional del switch
Section titled “Endurecimiento adicional del switch”El resto de controles no depende de un ataque específico detectado, sino de reducir la superficie disponible antes de que algo pase:
SW1(config)# interface range f0/10 - 24SW1(config-if-range)# shutdown
SW1(config)# interface g0/1SW1(config-if)# switchport mode trunkSW1(config-if)# switchport nonegotiate
SW1(config)# interface range f0/1 - 9SW1(config-if-range)# storm-control broadcast level 20- Puertos sin usar, apagados (
shutdown): un puerto libre en una sala de juntas o un pasillo es la forma más simple de conectar un switch o un laptop no autorizado. switchport nonegotiateen puertos de acceso: desactiva DTP para que un host no pueda negociar un trunk consigo mismo y alcanzar VLANs ajenas (VLAN hopping).- Trunks configurados a mano, sin
dynamic auto/desirable, y conswitchport trunk allowed vlanrestringido a lo estrictamente necesario. - BPDU guard y PortFast en puertos de host, para que no puedan participar en STP (ver STP).
- Storm control, para limitar el tráfico broadcast/multicast/unicast por puerto y contener el impacto de un flooding que logre pasar los demás controles.
Verificación
Section titled “Verificación”SW1# show ip dhcp snoopingSwitch DHCP snooping is enabledDHCP snooping is configured on following VLANs:10,20
SW1# show ip dhcp snooping bindingMacAddress IpAddress Lease(sec) Type VLAN Interface00:1A:2B:3C:4D:5E 10.0.10.15 86400 dhcp-snoop 10 GigabitEthernet0/3
SW1# show ip arp inspection vlan 10show ip dhcp snooping binding es el punto de partida para diagnosticar
tanto DAI como IP Source Guard, porque ambos dependen de esa tabla: si un
binding no aparece ahí, ese host va a fallar la validación aunque su tráfico
sea legítimo.
Resumen
Section titled “Resumen”- Port Security contiene el MAC flooding limitando cuántas MACs puede
aprender un puerto (
protect/restrict/shutdown). - DHCP Snooping bloquea servidores DHCP falsos distinguiendo puertos trusted (hacia el servidor real) de untrusted (hacia los clientes), y construye la tabla de bindings IP-MAC-puerto.
- DAI reutiliza esa tabla para descartar ARP spoofing en puertos untrusted.
- IP Source Guard reutiliza la misma tabla para impedir que un host falsifique su propia IP de origen.
- El resto — puertos sin usar apagados,
nonegotiate, trunks manuales, BPDU guard/PortFast y storm control — reduce la superficie de ataque antes de que cualquiera de los anteriores tenga que entrar en acción.