En switches Cisco existe la posibilidad de restringir a partir de la dirección MAC quien se puede conectar a un determinado puerto del switch, permitiendo crear una política de seguridad en capa 2 para evitar conexiones no deseadas a los puertos y ejecutar una acción cuando esto ocurra (security violation).
Veamos un ejemplo con el siguiente esquema:
Para nuestra demo trabajamos con Packet tracer 6.3, y el siguiente modelo de switch:
Switch#show version Cisco IOS Software, C2960 Software (C2960-LANBASE-M), Version 12.2(25)FX, RELEASE SOFTWARE
La activación de Port Security la realizamos a nivel de interfaz, vamos a trabajar con la interfaz FastEthernet 0/1. Lo primero es acceder al modo de configuración y después a la interfaz:
Switch# config terminal Switch(config)# interface fastEthernet 0/1 Switch(config-if)#
Algo importante: para poder configurar Port Security en la interfaz tiene que estar en modo acceso (access mode) o trunk mode. En el ejemplo no hay tagging de VLAN ni enlaces trunks así que modo acceso será suficiente:
Switch(config-if)# switchport mode access
Port Security por defecto está desactivado, así que lo activamos:
Switch(config-if)#switchport port-security
¿Cuantas direcciones MAC vamos a permitir acceder al puerto? Por defecto es 1, para que veáis como es indicamos que podrán acceder una sola MAC, no haría falta porque es el valor por defecto:
Switch(config-if)#switchport port-security maximum 1
Indicamos que acción tomar cuando se detecte una violación de la seguridad del puerto, es decir, que se conecte a la interfaz una MAC distinta a las permitidas:
Las acciones pueden ser tres protect, restrict y shutdown:
- Protect: sólo se permite tráfico de las MAC permitidas en la configuración descartando el tráfico del resto, no se notifica sobre la intrusión.
- Restrict: se envía una notificación SNMP al administrador y el tráfico del puerto se permite únicamente a las MAC especificadas, del resto se descarta.
- Shutdown: el puerto se deshabilita.
Vamos a elegir shutdown por seguridad. El puerto quedará disable hasta que lo cambiemos de estado.
Switch(config-if)# switchport port-security violation shutdown
Por supuesto en algún momento tendremos que especificar las MAC permitidas, lo hacemos con el siguiente comando:
Switch(config-if)# switchport port-security mac-address 0002.16B7.7DB5
Podemos ver la configuración con el siguiente comando:
Switch#show port-security interface fastEthernet 0/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 : 1 Configured MAC Addresses : 1 Sticky MAC Addresses : 0 Last Source Address:Vlan : 0000.0000.0000:0 Security Violation Count : 0
Switch#show port-security address Secure Mac Address Table ------------------------------------------------------------------------------- Vlan Mac Address Type Ports Remaining Age(mins) ---- ----------- ---- ----- ------------- 1 0002.16B7.7DB5 SecureConfigured FastEthernet0/1 - ------------------------------------------------------------------------------ Total Addresses in System (excluding one mac per port) : 0 Max Addresses limit in System (excluding one mac per port) : 1024
Veamos un simple ping entre los dos PC’s:
PC>ipconfig /all
FastEthernet0 Connection:(default port)
Connection-specific DNS Suffix..:
Physical Address................: 0002.16B7.7DB5
Link-local IPv6 Address.........: FE80::202:16FF:FEB7:1111
IP Address......................: 192.168.1.10
Subnet Mask.....................: 255.255.255.0
Default Gateway.................: 0.0.0.0
DNS Servers.....................: 0.0.0.0
DHCP Servers....................: 0.0.0.0
DHCPv6 Client DUID..............: 00-01-00-01-20-3B-8A-9B-00-02-16-B7-7D-B5
PC>ping 192.168.1.11
Pinging 192.168.1.11 with 32 bytes of data:
Reply from 192.168.1.11: bytes=32 time=6ms TTL=128
Reply from 192.168.1.11: bytes=32 time=0ms TTL=128
Reply from 192.168.1.11: bytes=32 time=0ms TTL=128
Reply from 192.168.1.11: bytes=32 time=25ms TTL=128
Ping statistics for 192.168.1.11:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 25ms, Average = 7ms
Ahora veamos que sucede si colocamos otro PC con una MAC diferente, en este caso 0001.43EB.D526
Vemos claramente que no tenemos conectividad. Si vemos que ha pasado veremos que el puerto esta shutdown
Switch#show port-security interface fastEthernet 0/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 : 1
Configured MAC Addresses : 1
Sticky MAC Addresses : 0
Last Source Address:Vlan : 0001.43EB.D526:1
Security Violation Count : 1
Para poder «levantar el puerto» tendremos que desconectar el PC no autorizado y conectar el que si tiene autorización ( o no conectar nada) . Luego deberemos realizar las siguientes operaciones:
Switch(config)#interface fastEthernet 0/1 Switch(config-if)#shutdown %LINK-5-CHANGED: Interface FastEthernet0/1, changed state to administratively down Switch(config-if)#no shutdown Switch(config-if)# %LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up
Resumen comandos
Switch> enable Switch# config terminal Switch(config)# interface FastEthernet 0/1 Switch(config-if)# switchport mode access Switch(config-if)#switchport port-security Switch(config-if)#switchport port-security maximum 1 Switch(config-if)# switchport port-security violation shutdown Switch(config-if)# switchport port-security mac-address 0002.16B7.7DB5 Switch(config-if)# end
Llegados a este punto pensaréis que sería tedioso configurar Port Security en una red de Switches amplia, o incluso en un único switch de 48 puertos por ejemplo. Para eso utilizaremos la auto-detección de la MAC usamos el sticky, que aprende la MAC conectada a las interfaces y la configura como MAC permitida para el puerto.
Lo aprenderemos en siguientes capítulos.
4 comments
Hola, buen tutorial mi pregunta es, si yo quiero cambiar la mac asignada a un puerto (estatica) solamente, cual es el procedimiento? para borrar la mac de ese puerto en especifico y poder poner otra?
Hola,
perdona retraso, revisando spam.. tenía algunos correos dentro. Sorry. Basta con introducir la nueva y debería sobreescribir al antigua. Si no te sales me lo dices y te doy las órdenes exactas.
Saludos.
Hola, gracias por la informacion, tengo unas dudas y agradeceria me pudieran orientar, ¿Como saber cuando un puerto cae en violacion protect o restrict? ya que al hacer un interface status o un show port-security no los identifico a simple vista y tambien quisiera saber si me pueden ayudar a como interpretar el comando show port-security address. Muchas gracias. Saludos.
Buenos días Jesus,
en primer lugar te pido disculpas, pero se me pasó tu comentario.
Si estoy a tiempo te explico: la única diferencia entre Protect y Restrict es que en el caso del segundo queda registro en el syslog y se envía aviso mediante snmp, cosa que con Protect simplemente descarta el tráfico de MAC’s que no conozca cuando llega al límite establecido.
Tienes en el siguiente enlace un documento profesional y extenso sobre muchas cosas, entre ellas tema de seguridad en puertos.
https://www.ccn-cert.cni.es/series-ccn-stic/guias-de-acceso-publico-ccn-stic/2524-ccn-stic-648-seguridad-en-conmutadores-netgear-prosafe/file.html