Seguridad en Switches Acceso Remoto y Puertos
Seguridad en Switches Acceso Remoto y Puertos

Seguridad en Switches: Acceso Remoto y Puertos

Seguridad de un Switch
  • Seguridad de Acceso Remoto - 10/10
    10/10
  • Seguridad de Puertos - 10/10
    10/10

Tomaremos en cuenta las medidas necesarias para asegurar un Switch. Vamos a configurar la seguridad del acceso remoto y los puertos.

¡Bienvenido a CCNA desde Cero!: Este tema forma parte del Capítulo 5 del curso de Cisco CCNA 2, para un mejor seguimiento del curso puede ir a la sección CCNA 2 para guiarse del índice.

1. Acceso Remoto Seguro

A continuación, vamos a configurar y verificar el SSH en un Switch.

1.1 Funcionamiento de SSH

Shell seguro (SSH) es un protocolo que proporciona una conexión de administración segura (cifrada) a un dispositivo remoto. SSH debe reemplazar a Telnet para las conexiones de administración. Telnet es un protocolo más antiguo que usa la transmisión no segura de texto no cifrado de la autenticación de inicio de sesión (nombre de usuario y contraseña) y de los datos transmitidos entre los dispositivos que se comunican. SSH proporciona seguridad para las conexiones remotas mediante el cifrado seguro cuando se autentica un dispositivo (nombre de usuario y contraseña) y también para los datos transmitidos entre los dispositivos que se comunican. SHH se asigna al puerto TCP 22. Telnet se asigna al puerto TCP 23.

Para habilitar SSH en un switch Catalyst 2960, el switch debe usar una versión del software IOS que incluya características y capacidades criptográficas (cifradas). Use el comando show version en el switch para ver qué IOS se ejecuta actualmente en el dispositivo. Un nombre de archivo de IOS que incluye la combinación “k9” admite características y capacidades criptográficas (cifradas).

S1> show version
Cisco IOS Software, C2960 Software (C2960-LANBASEK9-M),
Version 15.0(2)SE, RELEASE SOFTWARE (fc1)
<Se omitió el resultado>

1.2. Configuración de SSH

Antes de configurar SSH, el switch debe tener configurado, como mínimo, un nombre de host único y los parámetros correctos de conectividad de red.

S1# configure terminal
S1(config)# ip domain-name cisco.com
S1(config)# crypto key generate rsa
The name for the keys will be: S1.cisco.com
...
How many bits in the modulus [512]: 1024
...
S1(config)# username admin secret ccna 
S1(config-line)# line vty 0 15
S1(config-line)# transport input ssh
S1(config-line)# login local
S1(config-line)# exit
S1(config)# ip ssh version 2
S1(config)# exit 
S1#

1.3. Pasos para configurar SSH

  • Paso 1: Verificar la compatibilidad con SSH

Use el comando show ip ssh para verificar que el switch admita SSH. Si el switch no ejecuta un IOS que admita características criptográficas, este comando no se reconoce.

  • Paso 2: Configurar el dominio IP

Configure el nombre de dominio IP de la red mediante el comando ip domain-name nombre-de-dominio comando global configuration mode. En el esquema mostrado, el valor denombre-de-dominio es cisco.com.

  • Paso 3: Generar pares de claves RSA

No todas las versiones del IOS utilizan la versión 2 de SSH de manera predeterminada, y la versión 1 de SSH tiene fallas de seguridad conocidas. Para configurar la versión 2 de SSH, emita el comando ip ssh version 2 del modo de configuración global. La creación de un par de claves RSA habilita SSH automáticamente. Use el comando crypto key generate rsa del modo de configuración global para habilitar el servidor SSH en el switch y generar un par de claves RSA. Al crear claves RSA, se solicita al administrador que introduzca una longitud de módulo. La configuración de ejemplo en la figura 1 utiliza un tamaño de módulo de 1024 bits. Una longitud de módulo mayor es más segura, pero se tarda más en generarlo y utilizarlo.

Nota: para eliminar el par de claves RSA, use el comando crypto key zeroize rsa del modo de configuración global. Después de eliminarse el par de claves RSA, el servidor SSH se deshabilita automáticamente.

  • Paso 4: Configurar la autenticación de usuario

El servidor SSH puede autenticar a los usuarios localmente o con un servidor de autenticación. Para usar el método de autenticación local, cree un par de nombres de usuario y contraseñas con el comando username Nombre de usuario secret Contraseña comando global configuration mode. En el ejemplo, se asignó la contraseña ccna al usuario admin.

  • Paso 5: Configurar las líneas vty

Habilite el protocolo SSH en las líneas vty mediante el comando transport input ssh del modo de configuración de línea. El switch Catalyst 2960 tiene líneas vty que van de 0 a 15. Esta configuración evita las conexiones que no son SSH (como Telnet) y limita al switch a que acepte solo las conexiones SSH. Use el comando line vty del modo de configuración global y, luego, el comando login local del modo de configuración de línea para requerir la autenticación local de las conexiones SSH mediante la base de datos de nombres de usuarios locales.

  • Paso 6: Habilitar la versión 2 de SSH

De manera predeterminada, SSH admite las versiones 1 y 2. Si se admiten ambas versiones, en el resultado de show ip ssh se muestra que se admite la versión 1.99. La versión 1 tiene vulnerabilidades conocidas. Por esta razón, se recomienda habilitar únicamente la versión 2. Habilite la versión de SSH mediante el comando de configuración global ip ssh version 2.

1.4. Verificación de SSH

En las computadoras se usa un cliente SSH, como PuTTY, para conectarse a un servidor SSH. Para un ejemplo práctico, se configuró lo siguiente:


  • Se habilitó SSH en el switch S1.
  • Interfaz VLAN 99 (SVI) con la dirección IP 172.17.99.11 en el switch S1.
  • PC1 con la dirección IPv4 172.17.99.21.

En la Imagen 1, la computadora inicia una conexión SSH a la dirección IPv4 de la VLAN SVI de S1.

Conexión SSH con Putty
Imagen 1: Conexión SSH

En la Imagen 2, se solicita al usuario que introduzca un nombre de usuario y una contraseña. Con la configuración del ejemplo anterior, se introduce el nombre de usuario admin y la contraseña ccna. Después de introducir la combinación correcta, el usuario se conecta a la CLI del switch Catalyst 2960 mediante SSH.

Conexión SSH para conexión remota
Imagen 2: Conexión SSH para conexión remota

Para mostrar los datos de la versión y de configuración de SSH en el dispositivo que configuró como servidor SSH, use el comando show ip ssh. En el ejemplo, se habilitó la versión 2 de SSH. Para revisar las conexiones SSH al dispositivo, use el comando show ssh:

S1# show ip ssh
SSH Enabled - version 2.0
Authentication timeout: 90 secs; Authentication retries: 2
Minimum expected Diffie Hellman key size : 1024 bits
IOS Keys in SECSH format(ssh-rsa, base64 encoded):
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCdLksVz2QlREsoZt2f2scJHbW3aMDM8
/8jg/srGFNL
i+f+qJWwxt26BWmy694+6ZIQ/j7wUfIVNlQhI8GUOVIuKNqVMOMtLg8Ud4qAiLbGJfAa
P3fyrKmViPpO
eOZof6tnKgKKvJz18Mz22XAf2u/7Jq2JnEFXycGMO88OUJQL3Q==
S1# show ssh
Connection Version Mode Encryption Hmac State Username
0 2.0 IN aes256-cbc hmac-sha1 Session started admin
0 2.0 OUT aes256-cbc hmac-sha1 Session started admin
%No SSHv1 server connections running.
S1#

2. Seguridad de Puertos de Switch

2.1. Asegurar los puertos sin utilizar

  • Deshabilitar puertos en desuso

Un método simple que muchos administradores usan para contribuir a la seguridad de la red ante accesos no autorizados es inhabilitar todos los puertos del switch que no se utilizan. Por ejemplo, si un switch Catalyst 2960 tiene 24 puertos y hay tres conexiones Fast Ethernet en uso, es aconsejable inhabilitar los 21 puertos que no se utilizan. Navegue hasta todos los puertos que no se utilizan y emita el comando shutdown de Cisco IOS. Si, más adelante, se debe reactivar un puerto, se puede habilitar con el comando no shutdown.

S1# show run
Building configuration...
…
version 15.0
hostname S1
…
interface FastEthernet0/4
 shutdown
!
interface FastEthernet0/5
 shutdown
!
…

Realizar cambios de configuración a varios puertos de un switch es sencillo. Si se debe configurar un rango de puertos, use el comando interface range.

Switch(config)# interface range escriba el módulo/primer-número – último-número

El proceso de habilitación e inhabilitación de puertos puede llevar mucho tiempo, pero mejora la seguridad de la red y vale la pena el esfuerzo.

2.2. Funcionamiento

Se deben proteger todos los puertos (interfaces) del switch antes de implementar el dispositivo para la producción. Una forma de proteger los puertos es mediante la implementación de una característica denominada “seguridad de puertos“. La seguridad de puerto limita la cantidad de direcciones MAC válidas permitidas en el puerto. Se permite el acceso a las direcciones MAC de los dispositivos legítimos, mientras que otras direcciones MAC se rechazan.

La seguridad de puertos se puede configurar para permitir una o más direcciones MAC. Si la cantidad de direcciones MAC permitidas en el puerto se limita a una, solo el dispositivo con esa dirección MAC específica puede conectarse correctamente al puerto.

Si se configura un puerto como seguro y se alcanza la cantidad máxima de direcciones MAC, cualquier intento adicional de conexión de las direcciones MAC desconocidas genera una violación de seguridad.

2.2.1. Tipos de direcciones MAC seguras

Existen varias maneras de configurar la seguridad de puerto. El tipo de dirección segura se basa en la configuración e incluye lo siguiente:

  • Direcciones MAC seguras estáticas: son direcciones MAC que se configuran manualmente en un puerto mediante el comando switchport port-security mac-address dirección-mac (comando del modo de configuración de interfaz) Las direcciones MAC configuradas de esta forma se almacenan en la tabla de direcciones y se agregan a la configuración en ejecución del switch.
  • Direcciones MAC seguras dinámicas: son direcciones MAC detectadas dinámicamente y se almacenan solamente en la tabla de direcciones. Las direcciones MAC configuradas de esta manera se eliminan cuando el switch se reinicia.
  • Direcciones MAC seguras persistentes:son direcciones MAC que pueden detectarse de forma dinámica o configurarse de forma manual, y que después se almacenan en la tabla de direcciones y se agregan a la configuración en ejecución.

2.2.2. Direcciones MAC seguras persistentes

Para configurar una interfaz a fin de convertir las direcciones MAC detectadas dinámicamente en direcciones MAC seguras persistentes y agregarlas a la configuración en ejecución, debe habilitar el aprendizaje por persistencia. El aprendizaje por persistencia se habilita en una interfaz mediante el comando switchport port-security mac-address stickydel modo de configuración de interfaz.

Cuando se introduce este comando, el switch convierte todas las direcciones MAC detectadas dinámicamente en direcciones MAC seguras persistentes, incluso las que se detectaron dinámicamente antes de que se habilitara el aprendizaje por persistencia. Todas las direcciones MAC seguras persistentes se agregan a la tabla de direcciones y a la configuración en ejecución.

Las direcciones MAC seguras persistentes también se pueden definir manualmente. Cuando se configuran las direcciones MAC seguras persistentes con el comando de configuración de interfaz switchport port-security mac-address sticky dirección-mac todas las direcciones especificadas se agregan a la tabla de direcciones y a la configuración en ejecución.

Si se guardan las direcciones MAC seguras persistentes en el archivo de configuración de inicio, cuando el switch se reinicia o la interfaz se desactiva, la interfaz no necesita volver a aprender las direcciones. Si no se guardan las direcciones seguras persistentes, estas se pierden.

Si se inhabilita el aprendizaje por persistencia mediante el comando no switchport port-security mac-address sticky del modo de configuración de interfaz, las direcciones MAC seguras persistentes siguen formando parte de la tabla de direcciones, pero se eliminan de la configuración en ejecución.

En la siguiente tabla, se muestran las características de las direcciones MAC seguras persistentes.

Tabla de Direcciones MAC seguras persistentes
Características
Las direcciones MAC seguras persistentes descubiertas de forma dinámica se almacenan en el archivo running-config.
Se eliminan del archivo running-config si se inhabilita la seguridad de puertos.
Se pierden cuando se reinicia el switch (se apaga y se enciende).
Si se guardan las direcciones MAC seguras persistentes en el archivo startup-config, se vuelven permanentes, y el switch las conserva después de un reinicio.
Si se inhabilita el aprendizaje por persistencia, las direcciones MAC persistentes se convierten en direcciones dinámicas seguras y se las elimina del archivo running-config.

Nota: La característica de seguridad de puertos no funciona hasta que se habilita la seguridad de puertos en la interfaz mediante el comando switchport port-security.

2.3. Modos de Violación de Seguridad

Se puede configurar una interfaz para uno de tres modos de violación, con la acción específica que se debe realizar si se produce una violación. La Imagen 3 muestra los tipos de tráficos de datos que se envían cuando se configura en el puerto uno de los siguientes modos de violación de seguridad.

Modos de Violación de Seguridad de Puertos
Imagen 3: Modos de Violación de Seguridad de Puertos
  • Protect (Proteger): cuando la cantidad de direcciones MAC seguras alcanza el límite permitido para el puerto, los paquetes con direcciones de origen desconocidas se descartan hasta que se elimine una cantidad suficiente de direcciones MAC seguras o se aumente la cantidad máxima de direcciones permitidas. No hay ninguna notificación de que se produjo una violación de seguridad.
  • Restrict (Restringir): cuando la cantidad de direcciones MAC seguras alcanza el límite permitido para el puerto, los paquetes con direcciones de origen desconocidas se descartan hasta que se elimine una cantidad suficiente de direcciones MAC seguras o se aumente la cantidad máxima de direcciones permitidas. En este modo, hay una notificación de que se produjo una violación de seguridad.
  • Shutdown (Desactivar): en este modo (predeterminado), una violación de seguridad de puerto produce que la interfaz se inhabilite de inmediato por errores y que se apague el LED del puerto. Aumenta el contador de violaciones. Cuando un puerto seguro está en el estado inhabilitado por errores, se lo puede sacar de este estado si se introduce el comando de modo de configuración de interfaz shutdownseguido por el comando no shutdown.

Para cambiar el modo de violación en un puerto de switch, use el comando del modo de configuración de interfaz switchport port-security violation {protect | restrict | shutdown}.

2.4. Configurar la Seguridad de Puertos

En la siguiente tabla, se resume la configuración predeterminada de seguridad de puerto en un switch Cisco Catalyst.

Tabla de Opciones predeterminadas de seguridad de puerto.
Características Configuración Predeterminada
Seguridad del puerto Inhabilitada en un puerto.
Número máximo de direcciones MAC seguras 1
Modo de violación Shutdown. El puerto se desactiva cuando se supera la cantidad máxima de direcciones MAC seguras.
Aprendizaje de direcciones sin modificación Deshabilitado

En la Imagen 4, se muestran los comandos de CLI de Cisco IOS necesarios para configurar la seguridad de puertos en el puerto Fast Ethernet F0/18 del switch S1. Observe que el ejemplo no especifica un modo de violación. En este ejemplo, el modo de violación es shutdown, el modo predeterminado.

Configurar Seguridad de los Puertos Dinámicos
Imagen 4: Configurar Seguridad de los Puertos Dinámicos

A continuación, se muestra cómo habilitar las direcciones MAC seguras persistentes para la seguridad de puertos en el puerto Fast Ethernet 0/19 del switch S1. Como se mencionó anteriormente, la cantidad máxima de direcciones MAC seguras se puede configurar de forma manual. En este ejemplo, la sintaxis del comando de Cisco IOS se utiliza para establecer en 10 la cantidad máxima de direcciones MAC para el puerto 0/19. De manera predeterminada, el modo de violación se establece en shutdown.

Tabla Comandos de CLI de Cisco IOS.
Descripción Comando
Especifica la interfaz que se debe configurar para la seguridad de puertos. S1(config)# interface fastethernet 0/19
Establece la interfaz en modo de acceso. S1(config-if)# switchport mode access
Establece la seguridad de puerto en la interfaz. S1(config-if)# switchport port-security
Establece la cantidad máxima de direcciones seguras permitidas en el puerto. S1(config-if)# switchport port-security maximum 10
Habilita el aprendizaje por persistencia. S1(config-if)# switchport port-security mac-address sticky

2.5. Verificar la Seguridad de Puertos

Después de configurar la seguridad de puertos en un switch, revise cada interfaz para verificar que la seguridad de puertos y las direcciones MAC estáticas se configuraron correctamente.

2.5.1. Verificar los parámetros de seguridad de puerto

Para mostrar la configuración de seguridad de puertos para el switch o la interfaz especificada, use el comando show port-security interface [id-interfaz]. El resultado de la configuración de la seguridad del puerto dinámico se muestra a continuación. De manera predeterminada, se permite una dirección MAC en este puerto.

S1# show port-security interface fastethernet 0/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:Vlan : 0025.83e6.4b01:1
Security Violation Count : 0

El resultado siguiente muestra los valores de la configuración de seguridad del puerto persistente. La cantidad máxima de direcciones se estableció en 10, como se configuró.

S1# show port-security interface fastethernet 0/19
Port Security : Enabled
Port Status : Secure-up
Violation Mode : Shutdown
Aging Time : 0 mins
Aging Type : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses : 10
Total MAC Addresses : 1
Configured MAC Addresses : 0
Sticky MAC Addresses : 1
Last Source Address:Vlan : 0025.83e6.4b02:1
Security Violation Count : 0

Nota: la dirección MAC se identifica como sticky MAC (MAC persistente).

Las direcciones MAC persistentes se agregan a la tabla de direcciones MAC y a la configuración en ejecución. Como se muestra a continuación, la dirección MAC persistente de la PC2 se agregó a la configuración en ejecución para S1.

S1# show run | begin FastEthernet 0/19
interface FastEthernet0/19
 switchport mode access
 switchport port-security maximum 10
 switchport port-security
 switchport port-security mac-address sticky
 switchport port-security mac-address sticky 0025.83e6.4b02

2.5.2. Verificar las direcciones MAC seguras

Para mostrar todas las direcciones MAC seguras configuradas en todas las interfaces del switch o en una interfaz especificada con la información de vencimiento para cada una, use el comando show port-security address. Como se muestra en el siguiente resultado, las direcciones MAC seguras se indican junto con los tipos.

S1# show port-security address
Secure Mac Address Table
-----------------------------------------------------------
Vlan   Mac Address      Type        Ports    Remaining Age
                                                (mins)
----   -----------    ----          -----    -------------
1      0025.83e6.4b01 SecureDynamic Fa0/18    -
1      0025.83e6.4b02 SecureSticky  Fa0/19    -
-----------------------------------------------------------

2.6. Puertos en estado de inhabilitación por errores

Cuando se configura un puerto con seguridad de puertos, una violación puede provocar que el puerto se inhabilite por errores. Cuando un puerto se inhabilita por errores, se desactiva eficazmente, y no se envía ni se recibe tráfico en ese puerto. En la consola (ver resultado abajo), se muestra una serie de mensajes relacionados con la seguridad del puerto.

Sep 20 06:44:54.966: %PM-4-ERR_DISABLE: psecure-violation
error detected on Fa0/18, putting Fa0/18 in err-disable state
Sep 20 06:44:54.966: %PORT_SECURITY-2-PSECURE_VIOLATION:
Security violation occurred, caused by MAC address
000c.292b.4c75 on port FastEthernet0/18.
Sep 20 06:44:55.973: %LINEPROTO-5-PPDOWN: Line protocol on
Interface
FastEthernet0/18, changed state to down
Sep 20 06:44:56.971: %LINK-3-UPDOWN: Interface
FastEthernet0/18, changed state to down

Nota: el estado del enlace y del protocolo del puerto cambia a down (inactivo).

El LED del puerto se apagará. El comando show interfaces identifica el estado del puerto como err-disabled (ver resultado abajo). El resultado del comando show port-security interface ahora muestra el estado del puerto como secure-shutdown. Debido a que el modo de violación de seguridad de puertos está establecido en shutdown, el puerto que experimenta la violación de seguridad pasa al estado de inhabilitación por errores.

S1# show interface fa0/18 status
Port Name Status Vlan Duplex Speed Type
Fa0/18 err-disabled 1 auto auto 10/100BaseTX

S1# show port-security interface fastethernet 0/18
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   : 000c.292b.4c75:1
Security Violation Count   : 1

El administrador debe determinar la causa de la violación de seguridad antes de volver a habilitar el puerto. Si hay un dispositivo no autorizado conectado a un puerto seguro, el puerto no se debe volver a habilitar hasta que se elimine la amenaza de seguridad. Para volver a habilitar el puerto, use el comando shutdown del modo de configuración de interfaz (ver resultado abajo). Luego, use el comando no shutdown del modo de configuración de interfaz para que el puerto funcione.

S1(config)# interface FastEthernet 0/18
S1(config-if)# shutdown
Sep 20 06:57:28.532: %LINK-5-CHANGED: Interface
FastEthernet0/18, changed state to administratively down
S1(config-if)# <b>no shutdown</b>
Sep 20 06:57:48.186: %LINK-3-UPDOWN: Interface
FastEthernet0/18, changed state to up
Sep 20 06:57:49.193: %LINEPROTO-5-UPDOWN: Line protocol on
Interface
FastEthernet0/18, changed state to up