Port Security

Seguridad de puertos que deniega el acceso a un dispositivo con una dirección MAC desconocida

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.

Ejemplo de un cliente que se conecta a una interfaz de red sin seguridad de puertos activada

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.

Cisco Port Security bloquea un dispositivo no autorizado con MAC DDDD.EEEE.FFFF en la interfaz G0/1, impidiendo el acceso al servidor a través de SW1.

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.

Seguridad de puertos que deniega el acceso a un dispositivo con una dirección MAC desconocida

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.
Ejemplo de aprendizaje dinámico de seguridad de puertos que muestra PC1 conectado al switch SW1 en la interfaz G0/1 con una dirección MAC permitida y tráfico permitido al servidor

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.

Ejemplo de configuración de seguridad de puertos Cisco con dirección MAC estática en la interfaz g0/1

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.

Configuración de seguridad de puertos Cisco que permite dos direcciones MAC en la interfaz g0/1 con PC y teléfono IP

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.

Seguridad de puertos Configuración Cisco por defecto con PC conectado al switch 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:

Seguridad de puertos Cisco aprendiendo dinámicamente la dirección MAC de PC1 en la interfaz g0/1

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.

Seguridad de puerto Cisco bloqueando dispositivo no autorizado con diferente dirección MAC en la interfaz g0/1

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:

  1. Recuperación manual: requiere la intervención del administrador
  2. 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

  1. 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ísticaRecuperación manualRecuperación Err-Disable
Necesita acción administrativa✅ Sí❌ No
Comando requeridoshutdown + no shutdownerrdisable 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.

Ejemplo de un cliente que se conecta a una interfaz de red sin seguridad de puertos activada

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.