Port Security

Course Contents
1. Introducción a la Port Security
Por defecto, todas las interfaces de switch de un dispositivo Cisco están habilitadas.
Esto significa que cualquier dispositivo conectado físicamente puede acceder instantáneamente a la red.

Este comportamiento puede parecer cómodo, pero expone la red a riesgos.
En oficinas compartidas, espacios públicos o entornos no controlados, cualquiera podría conectar un dispositivo fraudulento y obtener acceso.
Sin restricciones, el conmutador aceptaría la conexión, permitiendo tráfico no autorizado o incluso actividades maliciosas.
Para evitarlo, utilizamos Port Security.
Esta función permite controlar qué direcciones MAC pueden enviar tráfico por cada puerto.

Cómo funciona la protección portuaria
La seguridad de puertos es una función de capa 2.
Verifica la dirección MAC de origen de cada trama entrante y comprueba si coincide con una dirección permitida para ese puerto.

Con Port Security, los administradores pueden:
- Elegir qué ocurre cuando se produce una infracción
- Definir qué dispositivos están permitidos en qué puertos
- Limitar el número de direcciones MAC por puerto
2. Configuración de la Port Security
Al configurar la seguridad de puertos, puede decidir cómo reconocerá el switch los dispositivos de confianza.
Cisco admite tres métodos clave:
- Aprendizaje dinámico (automático)
- Asignación estática (manual)
- Varias direcciones MAC por puerto (para puerto compartido)
Exploremos cada opción con ejemplos sencillos.
Aprendizaje dinámico (por defecto)
El método por defecto se denomina Aprendizaje Dinámico.
- Activamos Port Security en la interfaz.
- El dispositivo legítimo se conecta y envía tráfico a través del puerto.
- El switch aprende dinámicamente la dirección MAC y la considera de confianza.

Por defecto, sólo se permite una dirección MAC por puerto. Cualquier dispositivo adicional causará una violación.
Configuración estática
En entornos donde se necesita un control estricto, puede asignar manualmente la dirección MAC permitida en un puerto.
Por ejemplo, si tenemos un dispositivo con dirección MAC AAAA.BBBB.CCCC, podemos configurar estáticamente el puerto del switch para que sólo acepte tramas de esta dirección MAC.

Esto significa que sólo se aceptará el dispositivo con MAC AAAA.BBBB.CCCC.
Este método es muy estricto, pero requiere más esfuerzo manual, sobre todo cuando se gestionan muchas interfaces.
Número de direcciones MAC permitidas
Por defecto, sólo se permite 1 dirección MAC por puerto.
Sin embargo, en los casos en los que varios dispositivos comparten un puerto (PC y un teléfono IP conectados a un switch), podemos modificar el número máximo de direcciones MAC permitidas.

En este ejemplo, el switch está configurado para aprender dinámicamente y permitir 2 direcciones MAC en el mismo puerto.
3. Comportamiento predeterminado de la Port Security
Ahora que ya ha configurado la Port Security, examinemos cómo reacciona el conmutador con la configuración predeterminada y qué ocurre cuando se conecta un dispositivo no autorizado.
Paso 1 – Entender el comportamiento por defecto
Imagine que PC1 está conectado a SW1 en la interfaz g0/1.

Cuando la seguridad de puertos está activada con la configuración predeterminada:
✅ Se aprende y se confía en la primera dirección MAC que envía tráfico.
🚫 Cualquier otra dirección MAC en el mismo puerto provoca una violación de seguridad.
Paso 2 – Activar la seguridad de los puertos
Intentemos activar la Seguridad Portuaria:
SW1(config)# int g0/1
SW1(config-if)# switchport port-security
Command rejected: GigabitEthernet0/1 is a dynamic port.
Es posible que aparezca este error:
Esto ocurre porque Port Security no puede habilitarse en un puerto en modo dinámico automático.
Paso 3 – Fijar el modo de interfaz
Para que la interfaz sea compatible con Port Security, debe estar configurada en modo de acces o trunk.
Primero, verifica el modo actual:
SW1# show interfaces g0/1 switchport Name: Gi0/1 Switchport: Enabled Administrative Mode: dynamic auto Operational Mode: static access !!! Output omitted !!!
Ahora vuelve a configurar la interfaz:
SW1(config)# int g0/1 SW1(config-if)# switchport mode access
Podemos activar la Seguridad Portuaria:
SW1(config-if)# switchport port-security
Paso 4 – Verificación de la seguridad de los puertos
Para comprobar la configuración actual:
SW1# show port-security interface g0/1 Port Security : Enabled Port Status : Secure-up Violation Mode : Shutdown Aging Time : 0 mins Aging Type : Absolute SecureStatic Address Aging : Disabled Maximum MAC Addresses : 1 Total MAC Addresses : 0 Configured MAC Addresses : 0 Sticky MAC Addresses : 0 Last Source Address:Vlan : 0000.0000.0000:0 Security Violation Count : 0
En esta etapa:
- El puerto está activo.
- Aún no se ha aprendido ninguna dirección MAC.
- El puerto está esperando tráfico para identificar el primer dispositivo.
Paso 5 – Cuando se detecta tráfico
En cuanto PC1 envía una trama, el switch aprende su dirección MAC:

Comprueba el estado actualizado:
SW1# show port-security interface g0/1 Port Security : Enabled Port Status : Secure-up Violation Mode : Shutdown Aging Time : 0 mins Aging Type : Absolute SecureStatic Address Aging : Disabled Maximum MAC Addresses : 1 Total MAC Addresses : 1 Configured MAC Addresses : 0 Sticky MAC Addresses : 0 Last Source Address:Vlan : AAAA.BBBB.CCCC:1 Security Violation Count : 0
✅ La dirección MAC AAAA.BBBB.CCCC es ahora de confianza.
🚫 Cualquier otra dirección MAC provocará una infracción.
Paso 6 – ¿Qué ocurre si se conecta un dispositivo no autorizado?
Supongamos que alguien conecta un segundo dispositivo utilizando la MAC DDDD.EEEE.FFFF.

Como esta dirección MAC difiere de la de confianza, el conmutador activa una violación de seguridad y cierra el puerto.
*Jan 21 11:21:46.891: %PM-4-ERR_DISABLE: psecure-violation error detected o
n Gi0/1, putting Gi0/1 in err-disable state
*Jan 21 11:21:46.894: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violatio
n occurred, caused by MAC address DDDD.EEEE.FFFF on port GigabitEthernet0/1
*Jan 21 11:21:48.893: %LINK-3-UPDOWN: Interface GigabitEthernet0/1, changed
state to down
La interfaz está ahora en estado deshabilitado por error. No pasará tráfico por este puerto hasta que se recupere.
Paso 7 – Comprobación de la interfaz tras la infracción
Para investigar la violación de seguridad, comience por comprobar el estado de seguridad del puerto de la interfaz:
SW1#show port-security interface g0/1
Port Security : Enabled
Port Status : Secure-shutdown
Violation Mode : Shutdown
Aging Time : 0 mins
Aging Type : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses : 1
Total MAC Addresses : 0
Configured MAC Addresses : 0
Sticky MAC Addresses : 0
Last Source Address:Vlan : DDDD.EEEE.FFFF:1
Security Violation Count : 1
Esto es lo que observamos:
- El estado del puerto es Apagado seguro → El conmutador ha apagado el puerto en respuesta a una infracción.
- Última dirección de origen muestra la dirección MAC no autorizada (DDDD.EEEE.FFFF).
- El recuento de violaciones de seguridad es 1, lo que significa que se ha detectado un dispositivo no autorizado.
Para confirmar que la interfaz está desactivada, compruebe su estado operativo con:
SW1# show interfaces status
Port Name Status Vlan Duplex Speed Type
Gi0/0 connected 1 auto auto RJ45
Gi0/1 err-disabled 1 auto auto RJ45
La interfaz GIO/1 está ahora en estado de error deshabilitado.
No se permitirá el tráfico a través de este puerto hasta que se borre la violación y la interfaz se recupere manual o automáticamente.
4. Volver a habilitar la interfaz
Cuando se produce una violación de seguridad, la interfaz entra en el estado err-disabled, apagando completamente el puerto. No pasará tráfico hasta que se tomen medidas.
Hay dos formas de volver a poner en línea la interfaz:
- Recuperación manual: requiere la intervención del administrador
- Recuperación automática – activada a través de errdisable recovery
Desglosemos ambos métodos.
Recuperación manual
La recuperación manual es la forma más directa de recuperar una interfaz, pero requiere intervención humana.
Esto se hace emitiendo un shutdown seguido de un no shutdown en la interfaz afectada.
Paso a paso: Reiniciar la interfaz
- Accede al modo de configuración de la interfaz:
SW1(config)# int g0/1
2. Cierra el puerto:
SW1(config-if)# shutdown
3. Reactivar el puerto:
SW1(config-if)# no shutdown
⚠️ Requisito importante
Antes de reactivar la interfaz, debe desconectar físicamente el dispositivo no autorizado.
Si la misma dirección MAC sigue conectada cuando el puerto se vuelva a activar, la violación se producirá inmediatamente de nuevo poniendo el puerto de nuevo en el estado de error-desactivado.
Ahora, verifique el estado de seguridad del puerto:
SW1# show port-security interface g0/1 Port Security : Enabled Port Status : Secure-up Violation Mode : Shutdown Aging Time : 0 mins Aging Type : Absolute SecureStatic Address Aging : Disabled Maximum MAC Addresses : 1 Total MAC Addresses : 0 Configured MAC Addresses : 0 Sticky MAC Addresses : 0 Last Source Address:Vlan : 0000.0000.0000:0 Security Violation Count : 0£
En este punto:
- El puerto se vuelve a habilitar y vuelve al estado Secure-up.
- Se ha borrado la dirección MAC que provocó la violación.
- El recuento de violaciones de seguridad se restablece a 0.
Aunque este método funciona bien, requiere una intervención manual cada vez que se produce una violación. En redes grandes, esto puede resultar poco práctico. Ahí es donde entra en juego la recuperación automática.
Recuperación Err-Disable
Aunque la recuperación manual funciona bien, requiere la intervención humana cada vez que se produce una violación.
En redes a gran escala, esto puede resultar tedioso e ineficaz.
Ahí es donde entra en juego Err-Disable Recovery.
Esta función permite al conmutador volver a habilitar automáticamente una interfaz que se cerró debido a una violación de seguridad después de un tiempo de espera configurable.
Comprobación de la configuración actual de recuperación de Err-Disable
Por defecto, Err-Disable Recovery está desactivado para todas las causas, incluidas las violaciones de seguridad de puertos (psecure-violation).
Para comprobar qué causas se están supervisando actualmente:
SW1# show errdisable recovery ErrDisable Reason Timer Status ----------------- -------------- arp-inspection Disabled bpduguard Disabled channel-misconfig (STP) Disabled dhcp-rate-limit Disabled dtp-flap Disabled gbic-invalid Disabled inline-power Disabled l2ptguard Disabled link-flap Disabled mac-limit Disabled link-monitor-failure Disabled loopback Disabled oam-remote-failure Disabled pagp-flap Disabled port-mode-failure Disabled pppoe-ia-rate-limit Disabled psecure-violation Disabled security-violation Disabled sfp-config-mismatch Disabled storm-control Disabled udld Disabled unicast-flood Disabled vmps Disabled psp Disabled dual-active-recovery Disabled evc-lite input mapping fa Disabled Recovery command: "clear Disabled Timer interval: 300 seconds Interfaces that will be enabled at the next timeout:
Principales observaciones
- La recuperación para psecure-violation está desactivada
- El temporizador de recuperación por defecto es de 300 segundos (5 minutos)
- No hay interfaces programadas para recuperación automática
Activación de la recuperación Err-Disable
Para activar la recuperación automática en caso de violación de la seguridad de los puertos:
SW1(config)# errdisable recovery cause psecure-violation
Para reducir el tiempo de espera (por ejemplo, a 60 segundos):
SW1(config)# errdisable recovery interval 60
Esto ajusta el temporizador de recuperación a 60 segundos.
Verificación de la recuperación de Err-Disable
Vuelva a ejecutar el mismo comando:
SW1# show errdisable recovery ErrDisable Reason Timer Status ----------------- -------------- !!! Output omitted !!! psecure-violation Enabled !!! Output omitted !!! Timer interval: 60 seconds Interfaces that will be enabled at the next timeout: Interface Errdisable reason Time left(sec) --------- ----------------- -------------- Gi0/1 psecure-violation 48
- ✅ La recuperación psecure-violation está ahora activada.
- ✅ El temporizador de recuperación está ajustado a 60 segundos.
- ✅ La interfaz GIO/1 se recuperará automáticamente en 48 segundos.
Recuperación automática en acción
Una vez que expira el temporizador, el conmutador intenta restablecer la interfaz. Verás registros como:
*Jan 21 11:22:46.892: %PM-4-ERR_RECOVER: Attempting to recover from psecure-violation err-disable state on Gi0/1 *Jan 21 11:22:48.918: %LINK-3-UPDOWN: Interface GigabitEthernet0/1, changed state to up *Jan 21 11:22:49.918: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/1, changed state to up
El puerto vuelve a estar activo sin ninguna acción manual.
Recordatorio importante: ¡Desconecte los dispositivos no autorizados!
Aunque la recuperación Err-Disable es conveniente, debe desconectar el dispositivo no autorizado antes de que expire el temporizador. He aquí por qué:
1. Si se configura una MAC segura estática, el puerto volverá inmediatamente a err-disabled en cuanto la misma MAC envíe tráfico.
2. Si la dirección MAC segura se aprendió dinámicamente, se borra cuando la interfaz entra en modo deshabilitado por error.
- Si el dispositivo no autorizado sigue conectado cuando el puerto se recupera, su dirección MAC puede ser aprendida como la nueva MAC segura, lo que compromete la seguridad de la red.
Recapitulemos
Característica | Recuperación manual | Recuperación Err-Disable |
---|---|---|
Necesita acción administrativa | ✅ Sí | ❌ No |
Comando requerido | shutdown + no shutdown | errdisable recovery comandos |
Tiempo de espera configurable | ❌ No (restablecimiento manual instantáneo) | ✅ Sí |
Escala para redes grandes | ❌ No es ideal | ✅ Recomendado |
Aún es necesario retirar el dispositivo | ✅ Sí | ✅ Sí |
5. Sticky Secure MAC Address
A veces se desea proteger los puertos automáticamente, sin tener que teclear manualmente las direcciones MAC. Eso es exactamente para lo que sirve Sticky Secure MAC Address.
Esta función permite a un switch aprender dinámicamente direcciones MAC y añadirlas automáticamente a la configuración en ejecución como direcciones seguras.
¿Por qué utilizar Sticky MAC?
Es perfecto cuando:
- Quiere automatización, pero necesita control.
- Así evitará tener que escribir cada MAC a mano.
- Desea «bloquear» el dispositivo actual en el puerto una vez detectado el tráfico.
Una vez guardada la configuración, las direcciones sticky pasan a ser tan sólidas como las estáticas.
Activar el aprendizaje MAC permanente
A continuación se explica cómo activarlo en una interfaz:
SW1(config)# int g0/1 SW1(config-if)# switchport port-security SW1(config-if)# switchport port-security mac-address sticky
Tan pronto como se reciba tráfico en este puerto, el conmutador lo hará:
- Guárdelo en la running configuration.
- Aprende la dirección MAC.
- Asegúralo.
Verificación del aprendizaje permanente
Antes de que el puerto reciba ningún tráfico, observará que el recuento de direcciones MAC pegajosas es 0:
SW1# show port-security interface g0/1 Port Security : Enabled Port Status : Secure-up Violation Mode : Shutdown Aging Time : 0 mins Aging Type : Absolute SecureStatic Address Aging : Disabled Maximum MAC Addresses : 1 Total MAC Addresses : 0 Configured MAC Addresses : 0 Sticky MAC Addresses : 0 Last Source Address:Vlan : 0000.0000.0000:0 Security Violation Count : 0
Ahora, digamos que PC1 envía tráfico a través del conmutador.

El switch aprenderá dinámicamente su dirección MAC, y usted podrá verificarlo:
SW1# show port-security interface g0/1
Port Security : Enabled
Port Status : Secure-up
Violation Mode : Shutdown
Aging Time : 0 mins
Aging Type : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses : 1
Total MAC Addresses : 1
Configured MAC Addresses : 0
Sticky MAC Addresses : 1
Last Source Address:Vlan : AAAA.BBBB.CCCC:1
Security Violation Count : 0
¿Lo veis? La dirección MAC AAAA.BBBB.CCCC de PC1 está ahora aprendida y asegurada.
Comprobación de la configuración en ejecución
También verás que la dirección MAC sticky se añade automáticamente a la running configuration:
SW1# show run int g0/1
interface GigabitEthernet0/1
switchport mode access
switchport port-security mac-address sticky
switchport port-security mac-address sticky AAAA.BBBB.CCCC
switchport port-security
Las direcciones MAC pegajosas sólo se guardan en la running configuration. Si reinicia el conmutador sin guardarlas, se perderá la configuración. Asegúrese de guardar la configuración utilizando:
SW1# copy running-config startup-config
6. Conclusión
Recapitulemos rápidamente lo que ha aprendido sobre la protección portuaria:
¿Qué es la protección portuaria?
Una función de seguridad que restringe el acceso a las interfaces del conmutador en función de las direcciones MAC de origen. Impide que dispositivos no autorizados se conecten a la red.
Aprendizaje de direcciones MAC
- Aprendizaje dinámico: el switch aprende las direcciones MAC automáticamente.
- Configuración estática: se definen manualmente las direcciones MAC.
- Aprendizaje permanente: las direcciones aprendidas dinámicamente se añaden a la configuración en ejecución.
Número de dispositivos permitidos
Puede limitar cuántas direcciones MAC se aceptan por puerto, dependiendo de su caso de uso (ejemplo: PC + teléfono IP).
Recuperación de interfaces
- Recuperación manual: use shutdown / no shutdown.
- Recuperación automática: activa la recuperación errdisable para que el puerto vuelva a funcionar después de un tiempo de espera.
Direcciones MAC pegajosas
Sticky learning asegura las direcciones MAC automáticamente.
No te olvides de guardar la configuración con:
copy running-config startup-config
Para más información sobre protección portuaria
Próximos pasos
Ahora que entiende cómo Port Security controla el acceso y cómo recuperarse de las violaciones, pasemos a los modos de violación y cómo cada uno afecta al comportamiento del switch.