19 de diciembre de 2020

Mitos frecuentes en materia de seguridad

Contenido incluido
en el temario de
CCNA 200-301


En materia de la seguridad de las redes de datos, como en muchos otros ámbitos, hay una serie de afirmaciones o preconceptos que muchas veces llegan a la adopción de políticas erróneas o sub-óptimas.
En orden a tener una visión clara de la problemática, esta es una lista breve de las principales consideraciones que podemos encontrar en la actualidad:

“Nadie está interesado en nuestra red”
  • En algún momento en el pasado reciente esta afirmación pudo haber sido cierta en el caso de redes pequeñas, pero los atacantes actuales están interesados especialmente en objetivos pequeños pues son más fáciles de atacar.
    No hay red que no pueda ser considerada objetivo de una amenaza. Aún las redes hogareñas.
  • Un afirmación de este tipo genera una peligrosa sensación de confianza que puede resultar en que la red no sea tan segura como podría ser, lo que la hace muy atractiva para los atacantes, como pueden ser los administradores de botnets.
  • Incluso una red de dos computadoras que no contienen información relevante puede seguir siendo un objetivo por varias razones. No hay que descuidar que un atacante puede utilizar estas terminales para acceder a los sistemas remotos a los que acceden sus computadoras.
“El router o gateway implementa NAT”
  • NAT se ha creado para abordar el problema del agotamiento de direcciones IPv4 o con espacios de direccionamiento superpuestos, y permitir la traducción entre espacios de direcciones privados y públicos. 
  • NAT nunca ha sido un mecanismo de seguridad y, de hecho, existen muchas técnicas que permiten la comunicación bidireccional a través de NAT. 
  • Sin reglas, inspecciones u otros procedimientos de firewalls, los gateways NAT puros nunca deben considerarse parte de una arquitectura de seguridad de la red.
“La empresa nunca ha sido pirateada”
  • Salvo en el caso de administraciones en las que se supervise y analice regularmente la actividad en sus activos, es imposible asegurar que nunca ha sido pirateado, incluso que no está siendo atacado actualmente. 
  • Una supervisión y análisis efectivos requieren software para automatizar el análisis.
  • Sería más prudente afirmar que “no hemos podido detectar que la empresa haya sido pirateada”.
“El personal de TI es el responsable de implementar la seguridad”
  • Si bien el personal de TI puede tener un papel muy importante en la configuración, mantenimiento y monitoreo de los controles de seguridad, los usuarios finales son el actor principal en la implementación de la seguridad. 
  • En un entorno típico, los usuarios superan en gran medida al personal de TI. Los usuarios finales deben comprender la necesidad de las políticas de seguridad y su rol como usuarios en la aplicación de esas políticas.
“La red cuenta con un firewall; es seguro”
  • Durante un tiempo fue frecuente utilizar firewalls para asegurar el perímetro de la red y tener sistemas muy abiertos dentro del perímetro. Sin embargo, hoy comprendemos que los sistemas internos también deben estar asegurados.
  • Confiar en una sola tecnología de seguridad es riesgoso.
    Por ejemplo, los firewalls pueden estar mal configurados y los ataques del lado del cliente son muy difíciles de manejar para los firewalls. 
  • Centrarse en puntos de seguridad individuales y confiar en una sola tecnología de seguridad es insuficiente en los entornos de red actuales.

 


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.

12 de noviembre de 2020

Puertos e interfaces en un switch multilayer

Cuando abordamos el estudio de los switches, y particularmente los llamados switches multilayer, es conveniente organizar claramente los conceptos para tener una comprensión adecuada de las diferentes operaciones que se realizan en el dispositivo.
Es por esto que consideré conveniente dedicar atención a las diferentes interfaces y puertos que presentan estos dispositivos.

En primer lugar debemos tener presente que cada puerto tiene su correspondiente interfaz. Estas interfaces pueden ser interfaces capa 2 o interfaces capa 3 según participen de procesos de reenvíos de tramas (capa 2) o de paquetes (capa 3).

Interfaces capa 2
Se trata de interfaces que participan del reenvío de tramas a partir de la dirección MAC de destino de cada trama y tomando en consideración la tabla de direcciones MAC del switch.
Estas interfaces, por ser capa 2, no admiten la configuración de direccionamiento capa 3.
Hay diferentes interfaces capa 2:
  • Puertos de acceso.
    Se trata de puertos asociados a una VLAN que está definida como VLAN del puerto.
    Los puertos de acceso pueden participar de una única VLAN y ocasionalmente (cuando el diseño lo requiere) de una VLAN auxiliar o VLAN de voz.
    Su encapsulación es Ethernet.
    Un ejemplo de configuración:

    Switch(config)#interface GigabitEthernet 1/0/1
    Switch(config-if)#switchport mode access
    Switch(config-if)#switchport nonegotiate
    Switch(config-if)#swtichport access vlan 10

  • Puertos troncales.
    Son puertos en capacidad de transportar tráfico de múltiples VLANs manteniendo su pertenencia a cada VLAN.
    Para mantener identificada esa pertenencia a cada VLAN de cada trama se utiliza un protocolo de etiquetado de tramas: IEEE 802.1Q.
    Todo puerto troncal que implementa 802.1Q incluye una VLAN que no es etiquetada y que recibe el nombre de VLAN nativa. En el caso de los switches Catalyst la VLAN nativa por defecto es la VLAN 1; esto puede cambiarse por configuración.

    Estos puertos, por defecto, transportan todas las VLANs definidas en el switch y es posible por configuración limitar cuáles son las VLANs transportadas.
    Un ejemplo de configuración:

    Switch(config)#interface GigabitEthernet 1/0/10
    Switch(config-if)#switchport mode trunk
    Switch(config-if)#switchport trunk encapsulation dot.1q
    Switch(config-if)#switchport trunk allowed vlan 10, 20
    Switch(config-if)#swtichport trunk native vlan 999
Una VLAN no es una interfaz.
Una VLAN es una red lógica o virtual cuyo tráfico circula de modo independiente (a nivel de capa 2) del de otras VLANs que operan sobre la misma red física.
Las VLANs no tienen necesariamente asociada una interfaz VLAN.

Interfaces capa 3
Son interfaces que participan del reenvío de paquetes IP a partir de la dirección IP de destino de cada paquete y tomando en cuenta las rutas que se encuentran definidas en la tabla de enrutamiento IP.
Estas interfaces por ser capa 3 requieren la configuración de direccionamiento IP, sea IPv4 y/o IPv6.
No admiten la configuración de VLANs de acceso o troncales ya que se trata de interfaces de capa 3, y estos features son features de capa 2.
En los switches multilayer a 2 tipos de interfaces capa 3:
  • Interfaces VLAN.
    Se trata de interfaces lógicas que operan como gateway del segmento IP que se identifica que con una VLAN determinada.
    El ID de la interfaz VLAN corresponde al mismo ID de la VLAN.
    Requieren la configuración de una dirección IP que operará como default gateway de las terminales conectadas a los puertos de la misma VLAN.
    Estas interfaces, por ser interfaces lógicas, no requieren que se las habilite administrativamente ya que se encuentran habilitadas por defecto.
    Un ejemplo de configuración:

    Switch(config)#ip routing
    Switch(config)#interface vlan 10
    Switch(config-if)#ip address 10.10.10.1 255.255.255.0


  • Interfaces o puertos ruteados.
    Se trata de puertos cuya interfaz se habilita para operar como interfaz de capa 3. Los puertos de los switches Catalyst (independientemente de que sean switches multilayer) tienen asociadas interfaces de capa 2 por defecto, por est
    Estos puertos no pueden ser parte de troncales, participar de VLANs o integrar un link aggregation de capa 2.
    No admiten la configuración de subinterfaces.
    Un ejemplo de configuración:

    Switch(config)#ip routing
    Switch(config)#interface GigabitEthernet 1/0/20
    Switch(config-if)#no switchport
    Switch(config-if)#ip address 10.10.10.1 255.255.255.0


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.

 

 

 

3 de noviembre de 2020

Gestión de la configuración

Contenido incluido
en el temario de
CCNA 200-301

Se da esta denominación a la práctica de definir el rendimiento, los atributos funcionales y físicos de un producto y luego garantizar la coherencia de la "configuración" del sistema a lo largo de su trayectoria. 
Con este propósito se pueden implementar herramientas de gestión de la configuración (CMT). Estas herramientas se han utilizado tradicionalmente en el ámbito de los sistemas para la implementación de servidores y aplicaciones; ahora se utilizan también como herramientas de automatización de la gestión de la configuración de los dispositivos para mejorar las operaciones de red. Estas herramientas no son nuevas. Lo novedoso es cómo su uso en redes está cambiando la forma en que se gestionan las infraestructuras.
Las herramientas de gestión de la configuración ofrecen algunos beneficios:
  • Se automatiza el aprovisionamiento y la implementación de aplicaciones e infraestructura.
  • No requieren conocimientos de programación: hay herramientas que implementan un modelo declarativo (intención). No requieren conocimientos de scripting.
  • Aprovechan las prácticas comunes en el desarrollo de software para realizar implementaciones, incluyendo las prácticas de control y las pruebas de versiones
  • Las herramientas más comunes son: Puppet, Ansible y Chef.
Desde la perspectiva de la gestión de la red es habitual implementar cambios manualmente. Estos cambios tienen diferente gravedad e impacto, puede ser tanto la creación de una nueva VLAN en un centro de datos o campus, como la implementación de cambios diarios en las políticas de firewall para cada una de las nuevas aplicaciones que se implementan. Cuando en la organización se ha definido un flujo de trabajo manual para realizar un conjunto de tareas, se deben usar las herramientas adecuadas para automatizar ese flujo de tareas. No tiene sentido pasar una hora realizando un cambio que puede ejecutarse en solo unos minutos y con menor probabilidad de errores si se utiliza una herramienta diseñada correctamente. Este proceso o flujo de tareas es donde las herramientas de código abierto como Puppet, Chef y Ansible pueden reducir drásticamente la cantidad de interacciones manuales con la red.
  • Puppet: https://puppet.com/
  • Chef: https://www.chef.io/products/chef-infra
  • Ansible: https://www.ansible.com/

Con herramientas para la gestión de la configuración se pueden definir y aplicar configuraciones relacionadas con operaciones a nivel del sistema (por ejemplo, autenticación, registro, imagen), configuración a nivel de interfaz (por ejemplo, VLANs, QoS, seguridad), configuraciones de enrutamiento (por ejemplo, especificaciones OSPF o BGP) y más.
Estas herramientas a menudo se denominan herramientas DevOps. Son más específicamente herramientas de automatización y administración de la configuración y son utilizadas por aquellas organizaciones que han implementado alguna forma de prácticas de DevOps como el control y las pruebas de versiones. Permiten automatizar aplicaciones, infraestructura y redes en alto grado sin la necesidad de realizar programación manual utilizando un lenguaje de programación como Python. No solo reducen el tiempo necesario para realizar determinadas tareas, también ofrecen una mayor previsibilidad.
Una arquitectura habitual de los sistemas CMT consiste en un servidor central, donde se define un estado requerido o previsto del sistema, al que se asocia  una serie de dispositivos de red sobre los que se aplica ese estado y debe hacerse cumplir.

Implementaciones con o sin agente
Para la gestión automatizada de la configuración de los dispositivos hay dos modelos posibles.

1- Modelo basado en la intención

En un servidor central se define el estado requerido o deseado de los sistemas y los agentes implementados en cada sistema o dispositivo se ocupan de plasmar ese estado deseado.
Su despliegue requiere la implementación de un agente en cada dispositivo de la red.
Es el modelo implementado por Puppet y Chef.
La arquitectura es uniforme para todos los dispositivos de destino que admitan el agente:
  • Un software de control (Puppet Master o Chef Server) define el objetivo a conseguir en los dispositivos destino.
  • En cada dispositivo un agente de software monitorea el estado de la configuración real del dispositivo.
    El agente interactúa con el servidor para informar el estado real y recibir el estado deseado. Si hay diferencia entre ambos estados el agente ejecuta lo necesario para hacer cumplir el objetivo.

2-
Modelo basado en CLI y SSH.

Se basa en las técnicas tradicionales a partir de plantillas y grupos de comandos reutilizables para lograr escalabilidad.
No requiere de la instalación de ningún agente o cliente en cada dispositivo de la red.
La operación se realiza a través de un shell remoto al que accede un servidor de gestión o máster que utiliza un modelo push para entregar a través de la red la información a implementar en forma de script.
Es el modelo implementado por Ansible.
En este caso el estado de configuración objetivo se define en los playbooks de Ansible.
Los playbooks son archivos de configuración basados en texto que definen cómo se deben usar los módulos de Ansible. Ansible interpreta el contenido de los playbooks y utiliza los módulos para aprovisionar los dispositivos de destino. Para los dispositivos de Cisco estos comandos se ejecutan a través de CLI.
Su ventaja principal es que no requiere la instalación de un agente; pero es crítica la configuración de seguridad del dispositivo ya que puede limitar la posibilidad de acceder al mismo.

Ambas implementaciones coinciden en la capacidad de utilizar un único conjunto de herramientas para configurar todos los dispositivos de la infraestructura. Esto implica que todo el ciclo de vida de la implementación de una aplicación se puede definir y gestionar desde un solo punto, con una misma herramienta.
Unificar la configuración de todos los elementos de la infraestructura en un único conjunto de herramientas aumenta la eficiencia y la agilidad, al tiempo que reduce los costos.



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.

24 de octubre de 2020

Modelos de datos


Contenido incluido
en el temario de
CCNA 200-301

Los modelos de datos describen un conjunto limitado de datos en forma de un esquema de lenguaje.
  • Utilizan parámetros bien definidos para estandarizar la representación de datos de un dispositivo de red de modo tal que la salida de plataformas diferentes sea la misma.
  • No se utiliza para enviar información a los dispositivos y depende de protocolos como NETCONF y RESTCONF para enviar documentos codificados en JSON y XML que simplemente adhieren a un modelo determinado.
  • La configuración de los dispositivos se puede validar contra un modelo de datos para verificar si los cambios son válidos para el dispositivo antes de confirmar los cambios.
Los modelos de datos se utilizan para describir la sintaxis y la semántica utilizadas para trabajar con objetos de datos específicos. Pueden definir atributos y respuestas.
El modelo de gestión basado en CLI tradicional no tiene un marco de referencia o modelo; la gestión basada en programabilidad, en cambio, genera información modelizada. Un dispositivo que tiene una representación JSON o XML de su configuración completa puede gestionarse completamente desde un modelo de datos como YANG.
Los modelos de datos proporcionan una jerarquía bien definida de los datos operativos y de configuración de un dispositivo y las acciones que se pueden realizar mediante un protocolo como NETCONF.
Consideran diferentes categorías de datos:
  • Datos de configuración: 
    Conjunto de datos que pueden guardarse y que se requieren para transformar un sistema en su estado inicial (predeterminado) a su estado actual.
    Por ejemplo, configurar las entradas de las tablas de enrutamiento IP, configurar la MTU de una interfaz, configurar una velocidad determinada en una interfaz Ethernet, etc.
  • Datos de estado operativo: 
    Conjunto de datos que obtiene el sistema en ejecución y que influyen en el comportamiento del sistema de forma similar a los datos de configuración.
    A diferencia de los datos de configuración, los datos del estado operativo son transitorios, responden a un momento específico.
    Los datos se modifican a partir de interacciones con componentes internos o con otros sistemas que utilizan protocolos especializados.
    Por ejemplo, las entradas obtenidas por protocolos de enrutamiento como, atributos de las interfaces de red, etc.
  • Acciones: 
    Conjunto de acciones que admiten transacciones de configuración robustas en la red.
    Cuando se intenta un cambio que afecta a varios dispositivos las acciones simplifican la administración de escenarios de diagnóstico de fallos, lo que resulta en la capacidad de tener transacciones sobre un grupo de dispositivos de manera confiable.

Modelo YANG
YANG se ha convertido en un lenguaje de modelado de datos de hecho. Es un lenguaje basado en estándares que se utiliza para crear solicitudes de configuración de dispositivos o solicitudes de datos operativos (como pueden ser los comandos show). Tiene un formato estructurado similar a un programa de computadora que es legible por humanos. Hay varias aplicaciones disponibles que se pueden ejecutar en una plataforma de administración centralizada para crear estas solicitudes de configuración y datos operativos.
  • Lenguaje de modelado definido en el RFC 6020.
  • Desarrollado en 2010 inicialmente para NETCONF, ahora también se lo utiliza con RESTCONF y gRPC
  • Configuración de modelos y datos de estado operativo
  • Proporciona sintaxis y semántica.
    Proporciona una sintaxis y semántica rica que ofrece restricciones y estructuras reutilizables que pueden ser aplicadas dentro y entre modelos YANG.
  • Utiliza estructuras de datos reutilizables.
  • Existen modelos de datos YANG estándar que se aplican a todos los proveedores y otros que están asociados con las características propietarias de un fabricante específico.
NOTA.
YANG es la forma dominante de modelar la configuración y la información de estado de los dispositivos de la red pero, no es el único método. 
Algunas plataformas de Cisco (por ejemplo, la familia Nexus 9000, Cisco Unified Computing System) no utilizan YANG sino que están totalmente controladas por un modelo propietario



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.

18 de octubre de 2020

Modelo para programabilidad de la red

Contenido incluido
en el temario de
CCNA 200-301

Inicialmente la implementación y gestión de las redes de datos se realizó de modo completamente manual y principalmente utilizando la interfaz de línea de comandos (CLI). Se trataba de una red con una cantidad y variedad de dispositivos mucho menor y con servicios de mucho menos complejidad que las redes que operamos en la actualidad.

En la medida en que evolucionaban estas redes tanto la operación utilizando CLI como la apelación a SNMP fueron adecuadas y suficientes para los requerimientos de la gestión. De hecho, estos mecanismos siguen siendo al día de hoy en muchos casos los principales recursos.
Sin embargo, la sintaxis de la CLI y las opciones configurables de los diferentes protocolos que están asociadas a este mecanismo de gestión varían ampliamente entre diferentes fabricantes, plataformas e incluso versiones de un mismo software. Esta situación, combinada con las restricciones propias de la CLI se ha constituido en una limitación para el uso de la CLI en la gestión de redes a escala; la sola configuración y operación de una función o protocolo específicos puede requerir de muchas variantes de la CLI haciendo su uso complejo y pasible de errores. En estos casos la automatización con scripts es una opción, pero se torna cada vez más compleja.
Por su parte, SNMP ha sido desde hace tiempo la forma más utilizada para el monitoreo de las redes. Es una muy buena opción cuando las redes son medianas o pequeñas y el sondeo de cada dispositivo se realiza por intervalos de 15 a 30 minutos. Sin embargo, SNMP a menudo genera complicaciones operativas al sondear dispositivos con demasiada frecuencia debido al incremento en el uso de la capacidad de transporte de la red. Si bien SNMP ha servido a la industria razonablemente bien; desde la perspectiva de la capacidad de programación de la red SNMP carece de bibliotecas para varios lenguajes de programación.
Una de las limitaciones que presenta el modelo tradicional de gestión es la carencia de una forma adecuada de comunicación máquina a máquina con la red que permita la interacción de los dispositivos terminales con la configuración de la infraestructura de la red de modo automático. 

Este es el lugar para las redes programables. Redes en la que la automatización es posible a partir de la implementación de un conjunto de herramientas de programación adecuadas para gestionar la configuración y la operación de la red.
La programabilidad de las redes ha introducido una serie de protocolos y herramientas cuyo nombre es cada vez más familiar: NETCONF, YANG, XML, etc.
Pero, ¿cuál es el lugar o la función que cumple cada uno de estos elementos nuevos?
Para comprender mejor la operación y flexibilizar su implementación y desarrollo es necesario contar con un modelo teórico que nos permite poner cada uno de estos elementos en un lugar específico. Este es el modelo de redes programables.

Este modelo de programabilidad puede representarse así:
  • Aplicación cliente
    Gestiona las configuraciones y monitorea los dispositivos de la infraestructura.
    La aplicación cliente se puede escribir en diferentes lenguajes de programación (p.e. Python) y los SDK se utilizan a menudo para simplificar la implementación de aplicaciones para la automatización de redes
  • SDK
    Conjunto de herramientas y bibliotecas de software que permiten al usuario final crear sus propias aplicaciones personalizadas para diversos fines incluida la gestión de plataformas de hardware.
  • Protocolo
    Las APIS basadas en modelos admiten múltiples protocolos. Los más utilizados en este momento son NETCONF, RESTCONF y gPRC.
    Los modelos de datos utilizados se basan en estos protocolos.
    La elección del protocolo depende de las herramientas disponibles, la experiencia en redes, programación y automatización.
  • Codificación
    Los datos pueden ser codificados en formatos como JSON, XML o GPB.
    En algunos casos el protocolo está vinculado a codificaciones específicas (como es NETCONF con XML). Esto está relacionado con el protocolo que puede o no admitir diferentes formatos de codificación.
  • Transporte
    Cada API soporta uno o más protocolos de transporte para establecer la comunicación con el dispositivo de red.
  • Modelo de datos
    Es la base de la API.
    Definen la sintaxis y la semántica de los datos, incluidas las limitaciones de esa API.
    Se utilizan parámetros bien definidos para estandarizar la representación de los datos de modo que la salida de diferentes plataformas sea la misma.

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.