9 de octubre de 2006

Implementación de port security en switches Cisco

Una dimensión sumamente importante en la seguridad de nuestras redes LAN es el control de quiénes pueden (y quiénes no) acceder a la red interna de la empresa.

Una situación muy frecuente a resolver, es la posibilidad de conectarse a la red utilizando cualquier conectar instalado en el edificio, ¿Puede alguien sencillamente ingresar en el edificio, conectar una laptop a una boca disponible o no, y acceder a la red empresaria? Un recurso importante es deshabilitar aquellas bocas que no tienen en el momento una terminal de trabajo conectada. Pero también puede ocurrir que alguien desconecte una terminal de escritorio y conecte a esa boca su propia laptop o un hub.

Esto no es poco frecuente. Siempre hay algún visitante que requiere una conexión que es proporcionada sin respetar las políticas de seguridad de la empresa; o un trabajador de la propia organización que trae su propia laptop y decide conectarla a nuestra red. Para esto el recurso más frecuente es desconectar una terminal conectada a la red y utilizar esa boca para ganar acceso a Internet.

Esto se puede evitar implementando port-security en los switches de acceso.

Los fundamentos
Port Security es un feature de los switches Cisco que les permite retener las direcciones MAC conectadas a cada puerto del dispositivo y permitir solamente a esas direcciones MAC comunicarse a través de esa boca del switch. Si un dispositivo con otra dirección MAC intenta comunicarse a través de esa boca, port-security deshabilitará el puerto. Incluso se puede implementar SNMP para recibir en el momento en el sistema de monitoreo la notificación correspondiente al bloqueo del puerto.

¿Cuál es el lado oscuro de esta implementación de seguridad? Bien, en este caso es necesario que el Administrador de la red desbloquee el puerto. Esto puede ser un inconveniente en algunos casos. Pero quizás un inconveniente menor si lo comparamos con los riesgos potenciales.

Configuración de port-security
El proceso de configuración requiere ingresar a la configuración de la interfaz en cuestión e ingresar el comando port-security. Un ejemplo:

Switch)#config t
Switch(config)#int fa0/1
Switch(config-if)#switchport port-security ?
..aging.........Port-security aging commands
..mac-address...Secure mac address
..maximum.......Max secure addresses
..violation.....Security violation mode

Switch(config-if)# switchport port-security

Si se ingresa solamente el comando básico, se asumen los valores por defecto: solo permite una dirección MAC en el puerto, que será la primera que se conecte al mismo, en caso de que otra dirección MAC intente conectarse utilizando esa misma boca, el puerto será desabilitado. Por supuesto que todos estos parámetros son modificables:

  • switchport port-security maximum [cant MAC permitidas]
    Esta opción permite definir el número de direcciones MAC que está permitido que se conecten a través de la interfaz del swtich. El número máximo de direcciones permitidas por puerto es 132.
    Es importante tener presente que este feature también limita la posibilidad de ataque de seguridad por inundación de la tabla CAM del switch.
  • switchport port-security violation [shutdown restrict protect]
    Este comando establece la acción que tomará el switch en caso de que se supere el número de direcciones MAC que se establece con el comando anterior. Las opciones son deshabilitar el puerto, alertar al Adminsitrador o permitir exclusivamente el tráfico de la MAC que se registró inicialmente.
  • switchport port-security mac-address [MAC address]
    Esta opción permite definir manualmente la dirección MAC que se permite conectar a través de ese puerto, o dejar que la aprenda dinámicamente.

¡Atención! Este comando no debe ser configurado en un puerto troncal o de backbone, ya que por estos puertos circulan tramas con múltiples direcciones MAC diferentes de origen. Esto resultaría en el bloqueo del puerto.

El monitoreo de este feature
Hay comandos específicos que permiten manitorear el estado de los puertos que tienen implementado port-security:

Switch# show port-security address
......Secure Mac Address Table
---------------------------------------------------------
Vlan..Mac Address....Type..........Ports..Remaining Age
..............................................(mins)
----..-----------....----..........-----..-------------
1....0004.00d5.285d..SecureDynamic Fa0/18.......-
----------------------------------------------------------
Total Addresses in System (excluding one mac per port).....:.0
Max Addresses limit in System (excluding one mac per port) : 1024

Switch# show port-security interface fa0/18
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...............: 0004.00d5.285d
Security Violation Count..........: 0

Switch#

Documentación en el sitio de Cisco.com sobre este tema

¿Tenés alguna información adicional para aportar en este tema....?
Perfecto!!!! agregá un comentario con el detalle.
Muchas gracias.
Oscar Gerometta

46 comentarios:

  1. Buenas noches:
    Para habilitar port security en switches cisco, y su posterior generación de traps via snmp en caso de violación hay mucha documentación, pero sería tan amable de indicarme si se puede hacer lo mismo sobre un etherswitch de un router, y que este etherswitch genere traps via snmp cuando se viole la seguridad MAC??

    Gracias y un saludo

    ResponderEliminar
  2. Buenas, quisiera saber si ya salio el libro para preparar ccna Version 4. envie mail pero no me contestaron

    Saludos

    ResponderEliminar
  3. Respecto del Etherswitch del router. Deberías ser más específico al respecto: ¿a qué te estás refiriendo? porque hay routers con switches como el caso de los Cisco 800, o módulos de switching para los Cisco 2800 / 1800.
    En el caso de los switches integrados en los routers 800 no tienen posibilidad de configuración de seguridad por puerto.

    Rsepecto de libros para la preparación del examen CCNA 640-802, está disponible Apunte Rápido v.4, y espero en un par de meses poder completar la Guía de Preparación correspondiente. Sugiero revises los post sobre los libros y CCNA para tener información actualizada sobre el tema.

    ResponderEliminar
  4. seria bueno q se especifique sobre el comando aging dento de esta opcion.

    ResponderEliminar
  5. Amigo.
    El objetivo de estos artículos es sencillamente introducir los líneamientos generales del tema y dar algunas pistas.
    Ciertamente la opción aging tiene aplicaciones interesantes. Por eso, para los que desean profundizar, está el enlace a la documentación completa en el sitio de Cisco.

    ResponderEliminar
  6. Muy útil la información, me perdí algunas clases de CCNA y esto me aclaró mucho como configurar.

    gracias!!

    ResponderEliminar
  7. tuve un problema port-segurity...
    me sale en todas las interfaces que es in puerto dinamico. Que debo hacer?

    ResponderEliminar
  8. Samuel.
    Lo que te indica el mensaje de IOS que mencionás es que port security es un feature para aplicar en puertos de acceso. Los puertos de los switches catalyst están en estado dynamic auto para la negociación de troncales.
    Antes de activar port security debés poner los puertos estáticamente como accesos utilizando el comando switchport mode access.

    ResponderEliminar
  9. Hola, buenas! Tengo un Switch 2960, luego de configurar los comandos:
    SW1(config)#int fa0/6
    SW1(config-if)#switchport port-security
    SW1(config-if)#switchport port-security maximun 1
    SW1(config-if)#switchport port-security mac-address sticky
    SW1(config-if)#switchport port-security violation shutdown
    SW1(config-if)#end
    Como en esa interfaz está asignada una mac-address estática de una PC1, al conectar la PC2 me bloquea, hasta ahi todo bien, pero cuando vuelvo a conectar la PC1 no vuelve a levantar la interfáz, y ya probé varias formas.
    Cual sería la solución a esto sin tener que hacer un "reload"?
    Desde ya muchas gracias por leer mi mensaje.

    ResponderEliminar
  10. Juan Pablo
    Lo que ocurre es que al declarar "violation shutdown" estás indicando que ante una violación de política el puerto sea colocado en estado de "error disabled".
    La forma más sencilla de recuperar la operatividad del puerto es ingresar a la interfaz y ejecutar "shutdown" y luego "no shutdown".

    ResponderEliminar
  11. Si no usas el comando switchport mode access, el puerto queda configurado de modo dinámico y la implementación dependerá de que el puerto negocie como puerto de acceso o puerto troncal.
    La recomendación de seguridad es evitar la negociación y forzar los puertos de acuerdo a lo que corresponda.

    ResponderEliminar
  12. Lado oscuro??? Esto no es star wars :D

    tips : podemos hacer que el estado err-disable se trate de recuperar automáticamente en el intervalo de tiempo que deseemos.

    sw(config)#errdisable recovery cause psecury-violation
    sw(config)#errdisable recovery interval [30](segundos)

    Quisiera también dejar más en claro que existen 3 tipos de acciones cuando ocurre una violación :

    Mode shutdown : la que se explica al inicio

    Mode restric : el puerto no pasa al estado err-disable aquí si hay lado oscuro ya que si se configura por ejemplo que aprenda un máximo de 1 mac-address cuando se conectas un pc2-pc3-pc4-etc el switch aprende toda las mac-address que se conecten, pero todo los packetes de las nuevas mac-address aprendidas los va a ignorar, también puede mandar un trap de SNMP y nos manda un mensaje de SYSLOG (mensajes que nos manda el switch a la consola.

    Mode protect : actúa de forma parecida con la diferencia que este modo no envía trap de SNMP y tampoco envía mensajes de SYSLOG


    Saludos y éxito

    ResponderEliminar
  13. que pasa cuando tengo un IPPHONE y me detecta 3 mac-address y al configurar port-security me quita IP y me deja sin conectividad.

    un ejemplo de mi conf. es:

    Switch#configure terminal
    Switch(config)#interface fastEthernet 0/3
    Switch(config-if)#switchport mode access
    Switch(config-if)#switchport access vlan 10
    Switch(config-if)#switchport voice vlan 101
    Switch(config-if)#switchport port-security
    Switch(config-if)#switchport port-security maximum 3
    Switch(config-if)#switchport port-security maximum 2 vlan access
    Switch(config-if)#switchport port-security maximum 1 vlan voice
    Switch(config-if)#switchport port-security violation shutdown vlan
    Switch(config-if)#switchport port-security mac-address 0000.0203.0405 vlan access
    Switch(config-if)#switchport port-security mac-address 0000.0304.0506 vlan voice
    Switch(config-if)#switchport port-security mac-address 0000.0304.0506 vlan access
    Switch(config-if)#end

    ResponderEliminar
  14. Estimado.
    Si tienes un IPphone conectado al puerto F0/3 y conectado a él una PC, entonces debieras tener 2 MAC vinculadas a ese puerto, no 3.
    Por otra parte, si el IPphone estaba operativo y con IP, no hay motivo por el cual al configurar port-security el teléfono pierda la IP. Hay algo más en esa implementación que está generando dificultades.

    ResponderEliminar
  15. ok, la dificultad es que al chechar las mac-address del puerto, me manda 3 un ejemplo:
    ejemplo#sh mac add int fa 0/25
    Mac Address Table
    -------------------------------------------

    Vlan Mac Address Type Ports
    ---- ----------- -------- -----
    15 001e.0bb4.c053 DYNAMIC Fa0/25
    15 001e.4af3.a0ae DYNAMIC Fa0/25
    10 001e.4af3.a06e DYNAMIC Fa0/25
    Total Mac Addresses for this criterion: 3

    asi es como me muestra las mac address conectadas al puerto. la vlan 10 de voz y la 15 de datos.

    cuando configuro port-security, todo funciona con normalidad, pero al reiniciar mi PC, no me entrega direccio IP, he ingreso al switch para checar que es lo que pasa y me muestra todas las mac-address como si fueran de la vlan de voz y no de datos como deberia de pasar.

    ya intente todo lo que ha estado a mi alcance, y sigue pasando lo mismo, ¿que crees que me este fallando? si he puesto una configuracion similar a la que puse arriba.

    ResponderEliminar
  16. Amigo.
    La primer pregunta es porqué tienes 3 MAC si solamente hay 2 dispositivos conectados al puerto. Hay algo más que no estás teniendo en cuenta.
    Saludos.

    ResponderEliminar
  17. bueen post me sirvio para una prueba:B en el colegio

    ResponderEliminar
  18. Buen articulo para las personas que se inician en la seguridad de redes empresariales

    ResponderEliminar
  19. Hola a todos,
    Favor confirmarme si con la implementación de port-security es imperativo implementar seguridad PEAP(802.1x) en los equipos y habilitarlo en las PC?
    Y la otra consulta es si hay que añadir las 2 MAC, la del IP Phone y la de la PC?
    Saludos desde Panama

    ResponderEliminar
  20. Port Security y 802.1x son dos herramientas de seguridad diferentes e independientes entre si. Si miras los ejemplos de configuración que hay arriba, no hay ninguna referencia a 802.1x.
    Tampoco es necesario añadir las MAC manualmente, eso se puede hacer o dejar que se aprendan dinámicamente. Lo que ti tienes que prever que si vas a conectar un teléfono y una PC, debes permitir al menos 2 MACs en el puerto.

    ResponderEliminar
  21. que puede estar ocacionando el error disable en el switch matriz

    ResponderEliminar
    Respuestas
    1. Una violación de seguridad.
      Si mirás los comentarios de más arriba hay una larga discusión sobre el tema.

      Eliminar
  22. Como puedo enterarme del bloqueo de puerto antes que el usuario, creo q es referente a implementar un servidor syslog? puedes ayudarme

    ResponderEliminar
    Respuestas
    1. El bloqueo del puerto es provocado por una acción del usuario, y por el tipo de feature de que se trata, si configuraste que el puerto salga de servicio, el usuario no podrá conectarse.
      La notificación el Administrador la tiene por Syslog, pero esto siempre será al mismo tiempo que el puerto se bloquea, no antes, ya que es la acción del usuario la que provoca el bloqueo.

      Eliminar
  23. Buenas mire tango esta situación: tengo un router 1751V y necesito hacer este filtro por mac pero no tengo ningún switch que me permita hacerlo, pues el que tengo no es configurable. La pregunta es: ¿puedo hacer hacer esto con una ACL pero que en lugar de filtrar las ip filtre las MAC?. Le agradecería un ejemplo del código a utizar

    ResponderEliminar
    Respuestas
    1. IOS permite configurar ACLs en cualquiera de los dispositivos (routers, switches, access-points, etc.), y es posible crear ACLs que filtren por MAC.
      En este enlace encontrarás una descripción completa de la operación de las ACLs, y te referenciará a otras páginas para ver los detalles de configuración: http://www.cisco.com/en/US/docs/ios/12_2/security/configuration/guide/scfacls.html

      Eliminar
  24. Oscar, tengo una red completamente cisco, pero con telefonía IP Arcatel.

    Cuando implemento port-security anda todo bien hasta que quiero mover el PC a otro punto de red, la puerta del switch no se baja y quedan las mac antiguas tomadas en la puerta

    Mi pregunta es: ¿hay alguna forma de que el switch cisco detecte la caída de la puerta switch del telefono IP no cisco?

    Gracias, José Calabrano

    ResponderEliminar
    Respuestas
    1. Daniel.
      Supongo que lo que estás queriendo decir es que la MAC de la PC inicial sigue asociada al puerto, aún cuando el puerto pasa a estar down. Porque el estado del puerto depende exclusivamente del estado eléctrico y no del tipo de dispositivo conectado.
      Si la dirección MAC de la PC sigue vinculada al puerto, esto depende la configuración, revisa si no se han configurado las MACs de modo estático en el puerto. De ser así, no hay otra solución que remover esas MACs. Una solución de configuración sería configurar en modo dinámico.

      Eliminar
    2. Oscar, lo que pasa es que en los teléfonos Cisco existe una opción que se llama TLV. Esta "opción" permite que el switch cisco detecte la caída de la puerta del teléfono IP (la del usuario "http://www.cisco.com/en/US/docs/switches/lan/catalyst6500/ios/12.2SX/configuration/guide/port_sec.html#wp1094921"). Mi problema es en los otros teléfonos, los que no son cisco.

      Es posible emular el TLV en otros teléfonos que no sean Cisco

      Un abrazo

      Eliminar
    3. Daniel.
      El feature que querés utilizar depende de un bloque de información que se envía utilizando CDP. CDP es un protocolo propietario de Cisco.
      Estos features automáticos de los switches Catalyst que se basan en el reconocimiento del IP phone conectado, dependen todos de CDP, y por lo tanto están disponibles con teléfonos Cisco. No conozco forma de "emular" esto en teléfonos no-Cisco.

      Eliminar
  25. De cuantas formas puedo restaurar de nueva cuenta la violacion de shutdown (port-security). Y anotar la sintaxis correspondiente

    ResponderEliminar
    Respuestas
    1. Hugo
      ¿a qué te refieres con restaurar la cuenta de violaciones?
      La política se implemente en cuánto registra una violación. No hay una cuenta de violaciones.

      Eliminar
  26. hola Oscar, de antemanao gracias por la respuesta:
    la consulta es por que aparece la MAC aprendida en tipo estatico, cuando se configura el ppuerto con port-security

    interface GigabitEthernet5/41
    switchport access vlan 907
    switchport mode access
    switchport port-security
    switchport port-security maximum 10
    switchport port-security violation restrict


    #sh mac address-table int gigabitEthernet 5/41
    Unicast Entries
    vlan mac address type protocols port
    -------+---------------+--------+---------------------+--------------------
    907 c464.1397.c220 static ip,ipx,assigned,other GigabitEthernet5/41

    ResponderEliminar
    Respuestas
    1. La entrada estática pareciera corresponder a una configuración explícita en la tabla MAC. ¿De qué switch se trata?

      Eliminar
  27. Buenas Oscar de antemano gracias por la respuesta,

    Puedo configurar los 3 tipos de seguridad (shutdown-restrict-protect )en un puerto especifico de un switch ejemplo fa0/1).
    Gracias

    ResponderEliminar
    Respuestas
    1. Son 3 alternativas, con efectos diferentes. Debes elegir una. ¿Cuál sería el objetivo de aplicar las 3? Protect, por ejemplo, es innecesaria cuando se activa un shutdown.

      Eliminar
  28. Buenas tardes, tengo configurado Port Security en casi toda la universidad. Pero hubo unos movimientos de equipos y no logramos idenficar en cual de los Switch está la mac-addres que estamos conectando en estos momentos, tengo que ir de swtich en switch para ver donde está la mac?

    ResponderEliminar
    Respuestas
    1. Estimado.
      Tu problema no es de port-security, sino de gestión de la red.
      Tienes 2 herramientas básicas para resolver tu problema.
      La primera, es la documentación de la red: simplemente debieras fijarte en qué boca de la red están conectando el dispositivo que quieres localizar y revisar en la documentación esa boca de red a qué switch está conectada esa boca.
      La segunda herramienta, es el sistema de gestión. Si estás utilizando una consola SNMP, dependiendo de qué consola sea, puedes realizar una búsqueda por MAC o pedir revisar la tabla MAC de los switches. De ese modo localizarás a qué switch está vinculada la MAC que buscas.

      Eliminar
  29. Buenos días, he visto que portsecurity tambien se puede configurar tambien en puertos trunk. Esto es correcto?. No se bloquearía el puerto ya que por un puerto trunk gestiona varias MAC

    ResponderEliminar
    Respuestas
    1. Así es, en algunos switches es posible implementar port-security en puertos troncales.
      Esta es una implementación utilizada en redes Metro Ethernet, y también en redes de acceso cuando a un puerto troncal se conectan dispositivos tales como servidores o teléfonos IP no-Cisco.
      Sí hay que tener presente que no se puede activar port-security en puertos que aplican detección dinámica con DTP (puertos dinámicos).

      Eliminar
    2. Muchas gracias por su respuesta, entonces en estos casos port-security gestionaría las mac de las interfaces?. Si se implementa port-security en todos los puertos de accesos para que serviría implementarlo tambíen en los troncales.
      Muy agradecido por su tiempo y su informacion!!! Aprovecho para comentarle que es muy recomendable su libro CCNA en 30 días; ahora estoy a la espera del CCNP Route version impresa.

      Saludos

      Eliminar
    3. Muchas veces tenemos puertos de acceso que son troncales: servidores accesibles a varias VLANs, o teléfonos IP no-Cisco. En estos punto port-security es claramente útil.
      En las redes de service-provider, permite limitar las direcciones MAC autorizadas a atravesar un vínculo específico.

      Eliminar
  30. ¿Se puede asignar una mac address a dos puertos diferentes?

    ResponderEliminar
    Respuestas
    1. La operación de la tabla de direcciones MAC del switch no permite que una dirección MAC esté simultáneamente asociada a 2 puertos. Si una dirección MAC ya está presente en la tabla CAM y se recibe por otro puerto una trama con esa MAC de origen, se borra de la entrada inicial y se agrega en el puerto actual.

      Eliminar
  31. hola..una consulta..
    tengo configurado un puerto en modo
    #switchport port-security mac-address sticky con un maximo permita de 5 MAC y
    #switchport port-security violation restric, para que cuando llegue a mas de 6 MAC no me baje la interfaz del puerto,cosa que me resulta un poco in practico en mi sitio laboral,sino simplemente no deja pasar ese paquete
    Bueno supongamos que esos 5 equipos estan por medio de un switch o hub al puerto del cisco en un piso x
    la consulta..1-que sucede si esos equipos se mudan de lugar fisico otro piso..?
    tengo que borrar toda la configuracion de ese puerto y vuelvo a configurarlo en el nuevo?
    tengo entendido que no debe de a ver 2 MAC iguales en el mimso dispositivo de comunicion
    Gracias..y espero que alla sido clara mi pregunta
    Saludos!!

    ResponderEliminar
    Respuestas
    1. Derlis.
      En tu pregunta hay varias cosas.
      En primer lugar, la afirmación referida a "2 MAC iguales", interpreto que te estás refiriendo a que una misma MAC no se asocia a 2 puertos diferentes al mismo tiempo. Esto es así pero solo genera conflicto cuando hay entradas estáticas en la tabla de direcciones MAC, y port-security no genera entradas estáticas a la tabla de direcciones MAC sino que impone una restricción respecto a las direcciones MAC que se pueden aprender como asociadas a un puerto.
      Una implementación como la que describes, no impediría que conectes esos 5 equipos en otros puertos, pero sí impedirá la conexión de otras terminales a los puertos que ya tienen configurados como skicky, ya que ese comando genera asociaciones estáticas de port-security.
      Consecuencia, en configuraciones de ese tipo, si cambias la conexión de terminales a puertos debes cambiar también la configuración de port-security.

      Eliminar

Gracias por tu comentario.
En este blog los comentarios están moderados, por lo que su publicación está pendiente hasta la revisión del mismo.