30 de julio de 2021

Introducción a Cisco TrustSec

En los últimos años las redes corporativas han comenzado a migrar hacia una arquitectura de red definida por software (SDN).
Cisco ha formulado, en este sentido, sus propuestas SD Access y SD WAN.
SD Access es una propuesta de arquitectura completa, definida por software, que integra un conjunto importante de tecnologías que permiten dinamizar y automatizar la operación de la red para dar lugar a una red que responda rápida y flexiblemente a los objetivos institucionales de las organizaciones.
Entre los múltiples aspectos que consideran estas implementaciones tiene un lugar sumamente importante la seguridad. En este sentido, la propuesta SD Access de Cisco integra TrustSec.
TrustSec es una solución de seguridad presentada por Cisco hace ya más de 15 años y que se ha ido desarrollando e integrando en los diferentes dispositivos de infraestructura que ofrece Cisco Systems.

TrustSec es un mecanismo diseñado por Cisco que permite segmentar dinámicamente el tráfico de la red organizando los dispositivos terminales en diferentes grupos lógicos.
La asignación de terminales a un grupo no se realiza tomando como base su direccionamiento IP o pertenencia a una VLAN en particular sino a partir de decisiones de gestión alineadas con los requerimientos del negocio y las políticas de seguridad definidas. Esto facilita la gestión de la seguridad y brinda una mayor flexibilidad independizando la implementación de políticas de la pertenencia o no a una determina sección de la infraestructura (subred o VLAN).
Cuando un usuario o dispositivo se conecta a la red, es esta (la red) la que le asigna un grupo de seguridad específico. Este mecanismo se denomina clasificación.
La idea básica ha sido balancear los requerimientos de seguridad y la agilidad en la gestión, al tiempo que se reduce drásticamente la cantidad de reglas necesarias para conseguir el mismo resultado.
Para este propósito se asiga a cada trama que circula dentro de la red una etiqueta (SGT - Security Group Tag) que identifica su correspondencia con un determinado grupo. Esta etiqueta se utiliza luego para permitir o bloquear ese tráfico en diferentes puntos de la red (con la condición que los dispositivos soporten TrustSec).

La etiqueta de grupo (SGT)
Denominamos etiqueta a un ID que es un número unico que representa la pertenencia del dispositivo a un grupo específico. Cada etiqueta tiene un nombre asociado (SG Name) y un valor.
Por ejemplo, un usuario que cumple el rol de empleado tiene asociada una etiqueta con un valor arbitrario (p.e. “100”) y un nombre (p.e. “empleado”). Cuando un dispositivo con soporte TrustSec recibe una trama con esa etiqueta (101), aplica las políticas de filtrado definidas para ella.
Estas etiquetas se insertan en el encabezado de la trama Ethernet entre la dirección MAC de origen y en campo Ethertype. Si se trata de tráfico 802.1Q, la etiqueta TrustSec se inserta entre la etiqueta 802.1Q y el campo Ethertype. 
Para esto se implementa un encabezado propietario denominado CMD (Cisco Meta Data). Este encabezado está compuesto por varios campos; un campo Ethertype con el valor 0x8909 y un campo valor SGT de 16 bits de longitud que representa el valor de la etiqueta.

Estas etiquetas pueden ser administradas de modo centralizado por un servidor ISE en una implementación 802.1X. En esta implementación los dispositivos de la red consultan periódicamente a ISE para tener información de las asignaciones de etiquetas y políticas SGT.
La etiqueta SGT es una representación de los privilegios que se asigna al tráfico generado por un determinado grupo de usuarios o dispositivos.

Para implementar TrustSec es necesario ejecutar 3 acciones: Clasificar el tráfico, propagar las etiquetas y forzar o aplicar las políticas.

Clasificación
Cuando una trama ingresa a través de un dispositivo de acceso, a la red, se identifica como perteneciente a un grupo determinado. Esta asignación del tráfico como perteneciente a un grupo específico puede realizarse de 2 modos:
  • Dinámicamente
    La clasificación dinámica tiene lugar cuando se trata de un usuario o terminal que accede a la red auténticandose por IEEE 802.1X. Cisco ISE nos permite utilizar diferentes mecanismos de autenticación: 802.1X, MAB o web authentication.
    En este caso, cuando el dispositivo ingresa a la red, como consecuencia de la autenticación el servidor RADIUS lo identifica como perteneciente a un grupo específico y le asigna vía política de autorización la etiqueta SGT correspondiente que luego será aplicada al mismo switch o controlador inalámbrico de acceso.
    Esta etiqueta se descarga al dispositivo de acceso y queda asociada a la IP y MAC del usuario o dispositivo.
  • Estáticamente
    Se aplica en aquellos casos en los que no hay autenticación de usuario o dispositivo.
    En estos casos la etiqueta SGT se puede asignar a una VLAN, o a un puerto, o a una IP o perfil de puerto.
    En estos casos la etiqueta se aplica a cualquier dispositivo que esté conectado a ese puerto o asociado a esa VLAN.
    Esto permite asignar etiquetas a tráfico generado en dispositivos que no implementan 802.1X, como es el caso de servidores en un data center. 
Propagación
La red deben propagar las etiquetas que se asignan desde el punto en que se realizó la clasificación hasta los equipos que implementan las políticas (“enforcement“). Para esta propagación se utilizan 2 métodos:
  • Inline tagging
    El dispositivo mismo marca con la etiqueta al ingreso de la trama al puerto. En este caso SGT está integrado en el marco de Ethernet y requiere soporte de hardware.
    Los dispositivos que no están en capacidad de realizar etiquetado en línea utilizan SXP.
  • SXP (SGT eXchange Protocol)
    Los dispositivos intercambian entre sí la información de las etiquetas. Para esto se establecen relaciones Speaker-Listener entre pares para realizar el intercambio.
    La información que se intercambia es el mapeo IP-SGT; esto permite que la propagación de etiquetas se mantenga a lo largo de la ruta.
Aplicación
Cuando el tráfico marcado con etiqueta llega a un dispositivo de "enforcement" el tráfico de usuario puede ser permitido o bloqueado en función de la etiqueta que porta.
Para esto se compara la etiqueta de origen con la etiqueta que corresponde a la IP destino para determinar si el tráfico se debe permitir o bloquear.
Esta implementación de políticas se puede realizar en dispositivos (routers o switches) que soporten la implementación de SGACL (Security Group ACL) y firewalls que soporten la implementación de políticas de filtrado de tráfico (incluyendo inspección profunda) en base a SGT. 
De esta manera el tráfico se permite o bloquea en función de su pertenencia a un determinado grupo de seguridad y no en base a su dirección IP o pertenencia a VLAN.




Estás invitado a participar de nuestro grupo en Facebook:

https://www.facebook.com/groups/librosnetworking/

O si preferís redes sociales con mayor control de tu privacidad,
podés participar de nuestro grupo en VKontakte
https://vk.com/libros.networking

o seguir las principales novedades en el grupo de Telegram:
https://t.me/LibrosNetworking


Las abreviaturas y siglas utilizadas en este post puede encontrarlas desarrolladas en
que está disponible en la Librería en Línea de EduBooks.

6 de julio de 2021

Configuración avanzada de SSH en Cisco IOS


La gestión remota de dispositivos de red es una práctica extendida y necesaria en el ámbito de la administración de la infraestructura de red. 
La gestión remota implica un riesgo de seguridad: la información de configuración y monitoreo de los dispositivos circula en sesiones TCP atravesando diferentes secciones de red, muchas de las cuales no están bajo nuestro control y que por lo tanto han de ser consideradas inseguras. 
Sin embargo son muchos los que aún utilizan para esta tarea sesiones Telnet. Telnet es un protocolo adecuado para la gestión remota de dispositivos pero inseguro. Las sesiones Telnet viajan por la red sin autenticar y sin cifrar, y por lo tanto quien capture el tráfico de esas sesiones accederá no solo a la información de configuración sino también a las claves que ingresemos que estarán viajando por la red en texto plano. 

Es por esto necesario implementar para estas tareas SSH. 
Para poder implementar SSH se requieren que el sistema operativo del dispositivo al que deseamos acceder soporte el servicio SSH. Cisco IOS hoy soporta SSH en todas sus imágenes. 
La otra condición, es contar con un cliente SSH. Esto también es posible ya que no sólo clientes licenciados, sino también otros de acceso libre (p.e. Putty y Tera Term) soportan SSH. 

Configuración básica del servicio SSH
La configuración básica del servicio SSH para el acceso de gestión es un procedimiento ampliamente difundido y por lo tanto, se supone conocido.

Los dispositivos Cisco IOS por defecto tienen habilitado el servicio de Telnet para el acceso remoto a la gestión del dispositivo, no el servicio SSH. 
Por lo tanto, la utilización de SSH requiere de varios pasos de configuración: 

* Prerequisitos

Router(config)#hostname LAB 
Router(config)#ip domain-name ccnp.com 
Router(config)#crypto key generate rsa modulus 2048 
  • Genera un par de llaves de cifrado RSA (en este caso de 2048 bits de longitud), que luego utilizará SSH.
    Para que se genere el par de llaves de cifrado es necesario antes contar con hostname y nombre de dominio ya que son elementos utilizados para su generación. 
Router(config)#username admin privilege 15 secret Clave_4A 
  • Crea un usuario con privilegios de nivel 15 en la base de usuario locales, con su clave de acceso (Clave_4A), que será luego utilizado por SSH.
    Dado que la clave de usuario está definida como "secret", se guardará cifrada utilizando MD5 en el archivo de configuración, no en texto plano.
    Este usuario y clave puede tener diferentes usos en la operación del dispositivo; en este caso lo utilizaremos específicamente para autenticar el acceso a la gestión remota.
Router(config)#ip ssh version 2
  • Elige utilizar SSH versión 2 solamente para las conexiones remotas que se establezcan. 
    Por defecto IOS lo ejecuta en modo compatibilidad, es decir, admite conexiones SSHv1 y SSHv2.
* Activación de la autenticación en líneas virtuales con SSH

Router(config)#line vty 0 5 
Router(config-line)#transport input ssh 
  • Define que el único protocolo para el acceso remoto utilizando terminal virtual es SSH. 
Router(config-line)#login local 
  • Habilita la autenticación local utilizando las credenciales de usuario y clave que se definieron antes. 
Router(config-line)#exit

* Restringir el acceso exclusivamente desde un conjunto de direcciones IP específicas

Router(config)#ip access-list standard SSH 
Router(config-std-nacl)#permit 192.168.100.0 0.0.0.255 
Router(config-std-nacl)#deny any log 
Router(config-std-nacl)#exit 
  • Crea una lista de acceso estándar que sólo permite el paso de tráfico generado en la subred 192.168.100.0/24. El resto del tráfico está denegado, y se guardará registro de los intentos rechazados. 
Router(config)#line vty 0 5 
Router(config)#access-class SSH in 
  •  Aplica la ACL llamada SSH que se creó antes a los accesos por terminal virtual, limitando de esta manera a las direcciones IP de la red 192.168.100.0/24 el acceso por SSH al dispositivo.
Soporte SSH en IOS XE 17
  • Cualquier imagen de IOS con soporte de cifrado estándar es compatible con servicios y clientes SSH estándar.
  • IOS incluye tanto un cliente como un servicio SSH.
  • Tanto el cliente como el servidor soportan SSH versión 2.
  • La generación de claves RSA es requisito del lado del servidor SSH.
  • La longitud del par de claves RSA debe ser, como mínimo, igual o superior a 768 bits. La práctica recomendada de seguridad hoy es que sea de 2048 bits.
  • No se soporta reenvío de puertos ni compresión.
Algoritmos de SSH para la operación
El servicio SSH incluido en IOS XE admite varios algoritmos de cifrado que, en principio, negocia dinámicamente con el cliente en el momento de establecer la sesión. Los algoritmos de cifrado soportados son:
  • ESS128-CTR
  • AES192-CTR
  • AES256-CTR
  • AES128-CBC
  • 3DES-CBC
  • AES192-CBC
  • AES256-CBC
Para la autenticación el servicio de SSH de IOS admite:
  • HMAC-SHA1
  • HMAC-SHA1-96
Respecto a los algoritmos de manejo de llaves de cifrado, los soportados son:
  • X509v3-SSH-RSA
  • SSH-RSA
En la implementación por defecto los algoritmos se negocian dinámicamente entre cliente y servidor iniciando la negociación por los primeros que incluí en cada lista y luego avanzando en sentido descendente hasta alcanzar una coincidencia.

Respecto del cliente SSH incluido en IOS, los algoritmos de cifrado soportados son los siguientes, en orden descendente de preferencia.
  • ESS128-CTR
  • AES192-CTR
  • AES256-CTR
  • AES128-CBC
  • 3DES-CBC
  • AES192-CBC
  • AES256-CBC
Los algoritmos de autenticación soportados por el cliente SSH, en orden de preferencia decreciente, son:
  • HMAC-SHA1
  • HMAC-SHA1-96
El cliente SSH de IOS soporta solamente un algorimo de llaves de cifrado que es SSH-RSA.

Selección de algoritmos criptográficos por configuración
Por defecto IOS negocia dinámicamente entre cliente y servidor los algoritmos criptográficos a utilizar.
Sin embargo, este comportamiento puede ser modificado por configuración de manera tal de especificar un algoritmo de cifrado específico.

Para fijar el algoritmo de cifrado soportado por el servicio SSH, la configuración es la siguiente:

Router#configure terminal
Router(config)#ip ssh server algorithm encryption aes128-ctr 3des-cbc
  • Establece un grupo específico de algoritmos de cifrado soportados para la conexión con el servidor SSH y un orden de preferencia. En este ejemplo se intenta en primer lugar utilizar AES128-CTR y, si el cliente no lo soporta, entonces 3DES-CBC.
    Si se incluye un único algoritmo, entonces no hay negociación y solo se puede utilizar ese algoritmo en el cliente.
    Se debe especificar al menos un algoritmo.
Para definir los algoritmos de cifrado que se utilizarán en el cliente SSH de IOS, la configuración es la siguiente:

Router#configure terminal
Router(config)#ip ssh client algorithm encryption aes128-ctr 3des-cbc
  • Establece un grupo específico de algoritmos de cifrado soportados para conexión iniciadas con el cliente SSH de IOS y el orden de preferencia. En este ejemplo se intenta en primer lugar utilizar AES128-CTR y, si el cliente no lo soporta, entonces 3DES-CBC.
    Si se incluye un único algoritmo, entonces no hay negociación y solo se pueden establecer conexiones con servidores SSH que soporten ese algoritmo.
    Se debe especificar al menos un algoritmo.
Para fijar el algoritmo utilizado para el intercambio de claves de autenticación, en el servidor, el comando es el siguiente:

Router#configure terminal
Router(config)#ip ssh server algorithm mac hmac-sha1
  • Establece en el servicio SSH HMAC-SHA1 como algoritmo para la negociación de claves. Si se especifica más de uno, el orden indica el orden de preferencia de los mismos.
    Se debe indicar al menos un algoritmo.
Si se desea fijar el algoritmo utilizado en la autenticación por el cliente SSH de IOS, el comando es el siguiente:

Router#configure terminal
Router(config)#ip ssh client algorithm mac hmac-sha1
  • Establece HMAC-SHA1 como algoritmo para la negociación de claves en el cliente SSH de IOS. Si se especifica más de uno, el orden indica el orden de preferencia de los mismos.
    Se debe indicar al menos un algoritmo.
Si lo que se desea es fijar el algoritmo de cifrado que se utiliza en la generación de llaves de cifrado en el servicio SSH (el cliente SSH de IOS solamente soporta llaves SSH-RSA, por lo que no hay posibilidad de modificar esa opción) el comando a utilizar es:

Router#configure terminal
Router(config)#ip ssh server algorithm hostkey x509v3-ssh-rsa
  • Establece en el servicio SSH X509v3-SSH-RSA como algoritmo para la generación de llaves de cifrado a utilizar en la sesión SSH. Si se especifica más de uno, el orden indica el orden de preferencia de los mismos.
    Se debe indicar al menos un algoritmo.


Estás invitado a participar de nuestro grupo en Facebook:

https://www.facebook.com/groups/librosnetworking/

O si preferís redes sociales con mayor control de tu privacidad,
podés participar de nuestro grupo en VKontakte
https://vk.com/libros.networking

o seguir las principales novedades en el grupo de Telegram:
https://t.me/LibrosNetworking


Las abreviaturas y siglas utilizadas en este post puede encontrarlas desarrolladas en
que está disponible en la Librería en Línea de EduBooks.

2 de julio de 2021

Alta disponibilidad en switches Cisco

Los switches modulares implementan una variedad de módulos entre los que destacan 2 tipos principales: los módulos supervisores y los módulos de interfaces. Los módulos supervisores son el corazón del funcionamiento de los dispositivos ya que son los encargados de mantiener el procesamiento central de los mismos y sin ellos los dispositivos estarían fuera de línea.
Es por esto, de suma importancia la implementación no solo de redundancia, sino también de alta disponibilidad a nivel de estos módulos. No solo es importante contar con un respaldo para poder mantener la operación, sino también asegurar que ese respaldo se encuentre en línea y cuente con toda la información necesaria para asumir la tarea inmediatamente de modo tal de evitar cortes de servicios.
En este aspecto, los módulos supervisores redundantes pueden configurarse en diferentes modos para asegurar la alta disponibilidad. 
El modo de redundancia adoptado afecta la forma en que las placas supervisoras se comunican y sincronizan entre sí.
  • Lo módulos supervisores se pueden configurar en varios modos diferentes.
  • El modo de redundancia define el estado de preparación del módulo de respaldo para asumir la operación.
  • SSO es el mecanismo para sostener el reenvío ininterrumpido de Cisco.

  • RPR
    El módulo supervisor de respaldo se inicia solo parcialmente.
    Cuando el módulo activo falla el módulo de respaldo debe recargar los demás módulos del switch y a continuación inicializar todas las funciones del supervisor.
  • RPR +
    El módulo supervisor de respaldo se inicializa con lo que también se inicializan el supervisor y el motor de enrutamiento. No se inician funciones de capa 2 y capa 3.
    Cuando el módulo activo falla se completa la inicialización sin recargar otros módulos. Los puertos del switch conservan su estado.
  • SSO
    El módulo de respaldo se inicia completamente.
    Tanto el contenido de la configuración inicial como la configuración activa se sincronizan entre los módulos supervisores. La información de capa 2 se mantiene en ambos supervisores para que la conmutación de hardware pueda continuar durante el reemplazo de módulo de supervisión.
    El estado de las interfaces del switch se mantiene para que los enlaces no flapeen durante la conmutación.
Cisco Non Stop Forwarding
En switches Cisco es posible implementa NSF junto con SSO.
NSF es un método interactivo que reconstruye rápidamente la tabla de enrutamiento (RIB) en el momento de cambio de placa supervisora. La tabla de enrutamiento (RIB) es la base para generar la FIB (tabla de reenvío de CEF); esta última tabla se descarga a cada uno de los módulos que están operando con CEF. En consecuencia, es posible mantener la FIB operativa mientras se reconstruye la RIB de mdo tal que el dispositivo puede seguir reenviando tráfico sin interrupción.

NSF con SSO en switches Catalyst 9400
En estos dispositivos, al implementar NSF con SSO:
  • Es el modo de redundancia de supervisora por defecto.
  • La información de estado se sincroniza inmediatamente del supervisor activo al de respaldo.
  • El tiempo de conmutación activo/standby es menor a los 150 milisegundos.
    La interrupción de conmutación de tráfico está por debajo de los 200 milisegundos.
  • Los puertos de los demás módulos se mantienen activos, con sus LEDs encendidos.
  • Los puertos de uplink de las supervisoras se mantienen activos.
  • El reenvío de paquetes no se interrumpe.
  • La información de las sesiones de usuario se mantiene.
  • No hay pérdida de sesiones.
Al margen de la reducción de los tiempos de conmutación activo/standby de las placas controladoras, hay que tener presente que el proceso de arranque en un switch Catalyst 9400 con supervisora simple o doble y tarjetas de puertos mixtas requiere aproximadamente 9 minutos.



Estás invitado a participar de nuestro grupo en Facebook:

https://www.facebook.com/groups/librosnetworking/

O si preferís redes sociales con mayor control de tu privacidad,
podés participar de nuestro grupo en VKontakte
https://vk.com/libros.networking

o seguir las principales novedades en el grupo de Telegram:
https://t.me/LibrosNetworking


Las abreviaturas y siglas utilizadas en este post puede encontrarlas desarrolladas en
que está disponible en la Librería en Línea de EduBooks.