Fortaleciendo la Seguridad de los Routers Cisco: Una Guía Exhaustiva

La seguridad de los dispositivos de red es un pilar fundamental en la arquitectura de cualquier infraestructura tecnológica moderna. En este contexto, los routers Cisco, al ser puntos neurálgicos de la conectividad, requieren una atención especial para mitigar eficazmente las amenazas de seguridad. Configurar estos dispositivos con funciones de fortalecimiento robustas no es solo una buena práctica, sino una necesidad imperativa para salvaguardar la integridad y confidencialidad de los datos.

La Imperativa Necesidad de una Configuración de Seguridad Robusta

Al instalar un nuevo sistema operativo en un dispositivo Cisco, la configuración de seguridad se establece en valores predeterminados. Sin embargo, es crucial entender que este nivel de seguridad es, en la mayoría de los casos, inadecuado para proteger contra el panorama de amenazas en constante evolución. Los dispositivos, a menudo almacenados durante períodos prolongados antes de su implementación, pueden carecer de las actualizaciones de software y parches de seguridad más recientes. Por lo tanto, antes de poner en marcha cualquier dispositivo de red, es esencial actualizar todo el software e instalar cualquier parche de seguridad disponible.

Existen pasos simples pero vitales que se aplican a la mayoría de los sistemas operativos de red:

  • Cambio Inmediato de Credenciales Predeterminadas: Los nombres de usuario y contraseñas predeterminados deben ser modificados de inmediato. Estas credenciales son ampliamente conocidas y representan un punto de entrada fácil para actores maliciosos.
  • Restricción de Acceso: El acceso a los recursos del sistema debe limitarse estrictamente a las personas autorizadas para utilizar dichos recursos. La implementación de principios de mínimo privilegio es fundamental.
  • Desactivación de Servicios Innecesarios: Todos los servicios y aplicaciones que no sean esenciales para la operación de la red deben ser desactivados y, si es posible, desinstalados. Cada servicio activo representa una superficie de ataque potencial que puede ser explotada.

Diagrama de red con un router Cisco central

La Base de la Seguridad: Contraseñas Fuertes y Su Gestión

Las contraseñas son la primera línea de defensa para proteger los dispositivos de red. La implementación de contraseñas seguras es primordial, y para ello se deben seguir pautas estándar:

  • Longitud Mínima: Utilice contraseñas de al menos ocho caracteres, siendo preferibles diez o más. Una contraseña más larga es intrínsecamente más segura.
  • Complejidad: Las contraseñas deben ser complejas, incluyendo una combinación de letras mayúsculas y minúsculas, números, símbolos y, si está permitido, espacios.
  • Evitar Patrones Obvios: Absténgase de utilizar contraseñas basadas en la repetición, palabras comunes del diccionario, secuencias de letras o números, nombres de usuario, nombres de familiares o mascotas, información biográfica fácilmente identificable (como fechas de nacimiento, números de identificación, nombres de antepasados) u otra información fácilmente deducible.
  • Ofuscación Deliberada: Una técnica útil es escribir deliberadamente mal una contraseña. Por ejemplo, "Smith" podría convertirse en "Smyth" o "5mYth", y "Security" en "5ecur1ty".
  • Cambio Frecuente: Las contraseñas deben cambiarse con regularidad. Un método eficaz para crear una contraseña segura es utilizar la barra espaciadora para formar una frase compuesta de muchas palabras, conocida como "frase de contraseña". Estas frases suelen ser más fáciles de recordar que las contraseñas simples, además de ser más largas y, por ende, más difíciles de adivinar.

Seguridad Adicional para Contraseñas

Las contraseñas seguras solo son efectivas si se mantienen en secreto. El comando de configuración global service password-encryption es crucial, ya que evita que personas no autorizadas visualicen contraseñas en texto plano dentro del archivo de configuración. Este comando cifra todas las contraseñas de texto sin formato. Por ejemplo, la contraseña "cisco" podría aparecer cifrada como "03095A0F034F".

Para asegurar que todas las contraseñas configuradas cumplan con una longitud mínima especificada, se utiliza el comando security passwords min-length <longitud> en el modo de configuración global. Por ejemplo, cualquier contraseña nueva configurada debería tener una longitud mínima de ocho caracteres.

Los actores de amenazas pueden emplear software para descifrar contraseñas y llevar a cabo ataques de fuerza bruta contra un dispositivo de red, intentando continuamente adivinar contraseñas válidas hasta encontrar una que funcione. Para disuadir este tipo de ataque, se utiliza el comando de configuración global login block-for <# intentos> within <# segundos>. Por ejemplo, este comando bloqueará los intentos de acceso VTY durante 120 segundos si se producen tres intentos fallidos en 60 segundos.

Los administradores de red, en ocasiones, pueden descuidar y dejar abierta una sesión de modo EXEC privilegiado en una terminal. Esto podría permitir que un actor de amenazas interno acceda al dispositivo para modificar o borrar su configuración. Por defecto, los routers Cisco cierran la sesión EXEC después de 10 minutos de inactividad. Sin embargo, este tiempo de espera puede reducirse utilizando el comando de configuración de línea exec-timeout <minutos> <segundos>. Este comando puede aplicarse a las líneas de consola, auxiliares y VTY. Por ejemplo, se puede configurar el dispositivo Cisco para desconectar automáticamente a un usuario inactivo en una línea VTY después de 5 minutos y 30 segundos de inactividad.

Habilitando SSH: El Protocolo Seguro para Acceso Remoto

Telnet simplifica el acceso a dispositivos remotos, pero su principal inconveniente es la falta de seguridad. Los datos transmitidos en un paquete Telnet viajan sin cifrar, lo que los hace vulnerables a la interceptación. Por esta razón, se recomienda encarecidamente habilitar Secure Shell (SSH) en los dispositivos para garantizar un acceso remoto seguro.

Configurar un dispositivo Cisco para admitir SSH implica seguir una serie de pasos:

  1. Configurar un Nombre de Host Único: Cada dispositivo debe tener un nombre de host único que no sea el predeterminado.
  2. Configurar el Nombre de Dominio IP: Se configura el nombre de dominio IP de la red mediante el comando ip domain-name <nombre-dominio> en el modo de configuración global.
  3. Generar una Clave para Cifrar Tráfico SSH: SSH cifra el tráfico entre el origen y el destino. Para ello, se debe generar una clave de autenticación única utilizando el comando crypto key generate rsa general-keys modulus <bits>. El valor de bits determina el tamaño de la clave y puede variar entre 360 y 2048 bits. Un valor de bits mayor proporciona una clave más segura, pero también aumenta el tiempo de cifrado y descifrado de la información. La longitud mínima recomendada del módulo es de 1024 bits.
  4. Verificar o Crear una Entrada en la Base de Datos Local: Se crea una entrada de nombre de usuario en la base de datos local utilizando el comando username <nombre-usuario> secret <contraseña> en el modo de configuración global. El parámetro secret se utiliza para que la contraseña se cifre con MD5.
  5. Autenticar contra la Base de Datos Local: Se utiliza el comando login local en el modo de configuración de línea para autenticar la línea VTY contra la base de datos local.
  6. Habilitar Sesiones VTY SSH Entrantes: Por defecto, no se permiten sesiones de entrada en las líneas VTY. Se pueden especificar múltiples protocolos de entrada, incluidos Telnet y SSH, utilizando el comando transport input [ssh | telnet].

Diagrama de flujo para la configuración de SSH en un router Cisco

Como se muestra en el ejemplo, el Router R1 está configurado en el dominio span.com. Esta información, junto con el valor de bits especificado en el comando crypto key generate rsa general-keys modulus, se utiliza para crear una clave de cifrado. A continuación, se crea una entrada en la base de datos local para un usuario llamado Bob.

R1(config)#

Desactivación de Servicios No Utilizados: Reduciendo la Superficie de Ataque

Los routers y switches de Cisco vienen con una lista de servicios activos que pueden o no ser necesarios en una red específica. Desactivar los servicios no utilizados es crucial para preservar los recursos del sistema, como los ciclos de CPU y la RAM, y para evitar que los actores de amenazas exploten estos servicios. El tipo de servicios activados por defecto varía según la versión del IOS. Por ejemplo, IOS-XE generalmente solo tendrá abiertos los puertos HTTPS y DHCP.

udp *:67 0.0.0.0:0 387/[IOS]DHCPD Receive

Las versiones de IOS anteriores a IOS-XE utilizan el comando show control-plane host open-ports. Este comando puede ser útil para identificar servicios activos en dispositivos más antiguos. Es importante tener en cuenta que un router antiguo podría tener un servidor HTTP inseguro y Telnet en ejecución, ambos servicios que deben ser deshabilitados. Para deshabilitar HTTP, por ejemplo, se utiliza el comando de configuración global no ip http server.

Router(config-line)# transport input ssh

Comandos Esenciales y Modos de Configuración en Cisco IOS

La interfaz de línea de comandos (CLI) de Cisco IOS es una herramienta poderosa para la configuración y gestión de dispositivos. Dominar la CLI es esencial para realizar tareas de configuración complejas de manera eficiente. A continuación, se detallan algunos de los modos de configuración y comandos más importantes:

ModoComando
Modo EXEC UsuarioCiscoRouter>
Modo EXEC PrivilegiadoCiscoRouter#
Modo Configuración GlobalCiscoRouter(config)#
Modo Configuración InterfazCiscoRouter(config-if)#
Modo Configuración LíneaCiscoRouter(config-line)#
Modo Config-VLANCiscoRouter(config-vlan)#
Modo Configuración VLANCiscoRouter(vlan)#

Resumen de Modos y Transiciones

  • Modo EXEC Usuario: El primer nivel de acceso. Para acceder al modo EXEC privilegiado, se utiliza el comando enable.
    • CiscoRouter> enable
    • Password:
    • CiscoRouter#
    • Para salir al modo EXEC usuario, se usa disable.
  • Modo Configuración Global: Se accede desde el modo EXEC privilegiado con el comando configure. Los comandos aquí afectan a todo el dispositivo.
    • CiscoRouter# configure
    • CiscoRouter(config)#
    • Para salir al modo EXEC privilegiado, se usa exit o end (o Ctrl+Z).
  • Modo Configuración de Interfaz: Se accede desde el modo de configuración global especificando una interfaz con el comando interface <identificador-interfaz>.
    • CiscoRouter(config)# interface GigabitEthernet0/1
    • CiscoRouter(config-if)#
    • Para salir al modo EXEC privilegiado, se usa end (o Ctrl+Z). Para salir al modo de configuración global, se usa exit.
  • Modo Configuración de Línea: Se accede desde el modo de configuración global especificando una línea con el comando line <tipo> <número>.
    • CiscoRouter(config)# line vty 0 5
    • CiscoRouter(config-line)#
    • Para salir al modo de configuración global, se usa exit. Para salir al modo EXEC privilegiado, se usa end (o Ctrl+Z).
  • Modo Config-VLAN: Se accede desde el modo de configuración global con el comando vlan <id-vlan>.
    • CiscoRouter(config)# vlan 3500
    • CiscoRouter(config-vlan)#
    • Para salir al modo de configuración global, se usa exit. Para salir al modo EXEC privilegiado, se usa end (o Ctrl+Z).
  • Modo Configuración VLAN: Se accede desde el modo EXEC privilegiado con el comando vlan database.
    • CiscoRouter# vlan database
    • CiscoRouter(vlan)#
    • Para salir al modo EXEC privilegiado, se usa exit.

PAR - Cisco CLI - Parte 1 - Introducción

Proceso de Configuración Básica Paso a Paso

Paso 1: Crear Cuentas Locales y Establecer Contraseñas

La seguridad es el primer y más importante paso en la configuración de un router Cisco. Añadir contraseñas protege el acceso al router.

A. Configurar una Cuenta Local con Nombre de Usuario y Contraseña:Para añadir un nivel de seguridad, se pueden crear cuentas de usuario locales. Estas cuentas solicitan el nombre de usuario y la contraseña establecidos al intentar acceder a la CLI.

  1. Crear cuentas locales:CiscoRouter(config)# username admin secret StrongPassword!
  2. Aplicar el tipo de autenticación "local" a las líneas:CiscoRouter(config)# line vty 0 4CiscoRouter(config-line)# login localCiscoRouter(config-line)# exitCiscoRouter(config)# line console 0CiscoRouter(config-line)# login localCiscoRouter(config-line)# exitCiscoRouter(config)# line aux 0CiscoRouter(config-line)# login localCiscoRouter(config-line)# exit
  3. Guardar la configuración:CiscoRouter(config)# wrSolo al configurar las líneas con login local se solicitará la contraseña al iniciar sesión en el router.

B. Configurar la Contraseña para Acceder al Modo EXEC Privilegiado:Para un nivel adicional de seguridad, se puede añadir una contraseña para acceder al modo EXEC privilegiado desde el modo EXEC usuario.

  1. Cambiar al modo de configuración global:CiscoRouter# configureCiscoRouter(config)#
  2. Habilitar o añadir una contraseña:CiscoRouter(config)# enable secret networkdoctor46
  3. Configurar contraseñas para Telnet (acceso más seguro a través de la red):CiscoRouter(config)# line vty 0 4CiscoRouter(config-line)# password TelnetnetworkpassCiscoRouter(config-line)# login

Paso 2: Añadir un Nombre de Host para el Router

El nombre de host distingue al router de otros dispositivos en la red.

CiscoRouter(config)# hostname Router7997Router7997(config)#

Paso 3: Configurar las Direcciones IP para las Interfaces del Router

Las direcciones IP son esenciales para que el dispositivo reenvíe paquetes.

Router7997(config)# interface GigabitEthernet 0/0Router7997(config-if)# ip address 192.168.0.0 255.255.255.252Router7997(config-if)# no shutdownRouter7997(config-if)# exitRouter7997(config)# interface GigabitEthernet 0/1Router7997(config-if)# ip address 192.168.0.1 255.255.255.0Router7997(config-if)# no shutdownRouter7997(config-if)# exit

Paso 4: Configurar el Enrutamiento

Una función principal de un router es reenviar paquetes por la mejor ruta posible.

  • Enrutamiento Estático: Las decisiones de enrutamiento se basan en rutas preconfiguradas que solo pueden ser modificadas manualmente. Es útil en situaciones con opciones de selección de rutas limitadas o una única ruta predeterminada.Router7997(config)# ip route [red destino] [máscara subred] [gateway]Router7997(config)# ip route 200.200.200.0 255.255.255.0 100.100.100.2Para una ruta estática predeterminada:Router7997(config)# ip route 0.0.0.0 0.0.0.0 100.100.100.2
  • Enrutamiento Dinámico: Actualiza continuamente su tabla de enrutamiento con las rutas y su métrica, tomando decisiones de enrutamiento óptimas en función de los cambios en el entorno de red.

Paso 5: Guardar su Configuración

La configuración debe guardarse para su uso posterior, especialmente durante tiempos de inactividad. Las configuraciones se guardan en la NVRAM.

Router7997(config)# exitRouter7997# copy running-config startup-config

Para mostrar la configuración actual guardada:

Router7997# show running-config

Paso 6 (Opcional): Configurar NAT

Este paso es necesario si el router actúa como puerta de enlace a Internet.

Paso 7 (Opcional): Configurar DHCP

Este paso se utiliza para asignar dinámicamente direcciones IP a los hosts internos.

Control de Acceso y Listas de Control de Acceso (ACLs)

Las ACLs son conjuntos de reglas que permiten o niegan tráfico en dispositivos de red. Las "wildcards" funcionan de manera inversa a una máscara de subred tradicional. En una máscara de subred, un '1' indica un bit que debe coincidir exactamente, y un '0' indica un bit que puede variar. Las wildcards ofrecen una gran flexibilidad para especificar rangos de direcciones IP en las reglas de las ACLs.

Ejemplo de configuración de una ACL en Cisco IOS

Las ACLs en dispositivos Cisco no se pueden editar directamente en la configuración actual; se debe eliminar la regla a modificar y reescribir la versión corregida. El comando show access-lists permite visualizar las listas y sus reglas.

Cisco AutoSecure: Auditoría y Fortalecimiento de la Seguridad

La funcionalidad Cisco AutoSecure permite auditar la configuración de un router para detectar posibles vulnerabilidades de seguridad. Existen dos modos:

  • Modo Interactivo: Solicita información y hace propuestas que el administrador aprueba o no.
  • Modo No Interactivo: Aplica automáticamente las mejores prácticas (no recomendado sin supervisión).

En versiones recientes de IOS, existe una función de restauración que permite volver a la configuración del router antes de ejecutar AutoSecure, guardando una copia de seguridad en el flash.

Uso del comando:auto secure [management | forwarding] [no-interact | full] [ntp | login | ssh | firewall | tcp-intercept]

Este comando afecta solo al plano de gestión/reenvío y puede ejecutarse en modo interactivo o no, especificando la configuración de NTP, login, SSH, firewall o TCP-intercept.

Verificaciones y Monitoreo de Seguridad

Syslog y NTP

  • Gestión Syslog: Para configurar un servidor syslog externo: logging <IP_del_servidor_syslog>.
  • Prioridad de Mensajes: Configurar la prioridad (de 0 a 7) de los mensajes de registro: logging trap <nivel>.
  • Instalación (Servicio): Configurar la instalación (servicio) (valores de local0 a local7): logging facility <facility-type>.
  • Marcas de Tiempo: Agregar marcas de tiempo en los mensajes de registro: service timestamps log datetime msec.
  • Sincronización de Reloj: Para que los equipos tengan la hora sincronizada y se puedan aprovechar los registros, se recomienda utilizar NTP (Network Time Protocol).

AAA: Authentication, Authorization, and Accounting

AAA es un mecanismo de seguridad que autentica a un usuario, le asigna derechos y audita sus acciones, controlando así el acceso a la red.

  • Modos de Acceso:
    • Modo de caracteres: Para las líneas (VTY, CON), define los derechos EXEC.
    • Modo de paquetes: Para las interfaces, define los derechos de red.
  • Protocolos:
    • RADIUS: Protocolo AAA estandarizado por la IETF (RFC 2865), utiliza UDP/1812 y 1813.radius-server key <secretkey>
    • TACACS+: Protocolo propietario de Cisco, utiliza TCP/49.tacacs-server key <secretkey>

Para crear un método de autenticación predeterminado:

aaa authentication login default group tacacs+ local

Esto utilizará primero el servidor TACACS+; si no responde, intentará en la base local.

Verificaciones de Seguridad

  • show login [failure]: Muestra información sobre intentos de inicio de sesión.
  • show secure bootset: Verifica la configuración de arranque seguro.

Mejores Prácticas Adicionales

  • Deshabilitar Acceso a ROMMON: Desactivar la recuperación de contraseña a través de la consola (no service password-recovery) no se recomienda, ya que deshabilita el procedimiento de recuperación de contraseña.
  • Retraso de Inicio de Sesión: Imponer un tiempo de espera entre cada intento de inicio de sesión: login delay 10.
  • Tasa de Fallos de Autenticación: Modificar el umbral de intentos fallidos y generar un mensaje en el syslog: security authentication failure rate 5 log.
  • Bloqueo de Intentos de Inicio de Sesión: Para evitar ataques de fuerza bruta, se pueden bloquear los inicios de sesión después de un cierto umbral de fallos por segundo: login block-for 100 attempts 3 within 10.
  • Vistas: Las vistas permiten ampliar las posibilidades de los privilegios y suplir sus limitaciones.
  • Configuración Resistente (Resilient Configuration): Funcionalidad de IOS que permite conservar una versión "segura" de la imagen IOS y/o de la running-config para contrarrestar el compromiso del router. copy slot0:rescue running-config.

Asegurar un router Cisco implica deshabilitar servicios innecesarios, configurar políticas de seguridad robustas, implementar mecanismos de gestión y monitoreo (Syslog, NTP, SNMP), y aprovechar las características de seguridad integradas como AutoSecure y la configuración resiliente. Siguiendo estas recomendaciones, se puede fortalecer significativamente la postura de seguridad del router Cisco y reducir los riesgos de compromiso.


Este artículo se basa en información técnica y guías de configuración para dispositivos Cisco, proporcionando una visión general de las prácticas de seguridad esenciales.

tags: #seguridad #router #cisco