Arquitectura y Diseño de Seguridad de Red Perimetral

Actualmente los Firewalls son elementos fundamentales como herramienta para la protección de redes locales de las organizaciones.

Un Firewall es un dispositivo que protege a una red de computadoras o a un equipo individual (firewall persona) de intrusiones hostiles, las cuales pueden poner en peligro la confidencialidad y la integridad de la información y la propía disponibilidad de equipos y servicios.

Los Firewall pueden ser dispositivos de hardware o software implementados sobre un computador convencional y que se caracterizan por tener al menos 2 tarjetas de red: una utilizada para conectarse a la red no protegida o de libre acceso (Internet) y la otra para conectarse a la red protegida o red local (Red Interna).

La función de un firewall es interceptar y controlar el tráfico que pasa a través de él, sus características principales son:

  • Un verdadero cortafuegos es una combinación de hardware y/o software que intercepta los datos entre una red y otra.
  • Es el equivalente TCP/IP a una verja de seguridad en la entrada de un sistema. Todo el tráfico de datos debe atravesarlo, y el cortafuegos solo permite el acceso a los datos autorizados.
  • Monitorizan y controlan los datos que pasan por ellos
  • Centralizan el acceso y salida a través de un único punto controlado.

Es necesario sin embargo tener en cuenta que:

     

  • Un firewall no protege de virus.

  • No puede decidir por que páginas web navegan los usuarios de su red.

  • No puede manejar el ancho de banda que utilizan los computadores de su red.

Las funciones anteriores son consideradas complementarias, las cuales, en la mayoría de los casos, utilizan al firewall como el elemento de redirección hacia otro dispositivo que es el encargado de realizarlas.

Los Firewalls han evolucionado con el paso del tiempo, convirtiéndose en una herramienta capaz de filtrar la información que llega o sale de una red local, de llevar el registro de todo el tráfico que pasa por él, conectar a sitios remotos a través de VPN (Virtual Private Network), incluso con la capacidad de identificar y bloquear algunos de los ataques empleados por los intrusos informáticos.

Características de Check Point como firewall/VPN/Log/IDS

Debido a que los Firewalls son la primera línea de defensa contra ataques, se le debe prestar especial atención a su configuración, así como a la vigencia de su software interno («firmware»), dependiendo del tipo de Firewall.

Todas las organizaciones o entidades que habiliten accesos de entrada y/o salida a través de Internet deben de contar con un cortafuegos adecuado a sus necesidades y que cumpla rigurosamente con una política de seguridad previamente estudiada.

Los usuarios particulares, sobre todo aquellos que cuentan con acceso permanente a Internet a través de ADSL o cable deberían también de considerar esta necesidad.

Un Cortafuegos debería de ser por tanto la primera línea de defensa de cualquier organización, !pero no la única! y por ello la seguridad interna y la continúa puesta al día de actualizaciones de seguridad para corregir las vulnerabilidades emergentes no deben de olvidarse como objetivos prioritarios.

Se delimitan tres grandes grupos de Firewall de acuerdo a sus funcionalidades:

     

  • Filtrado de paquetes (ACL): funcionan en el nivel 3 del modelo OSI.
  • Inspección Estado: combina las tecnologías anteriores.
  • Gateway de aplicación (Proxy): funcionan en el nivel 7 del modelo OSI.

Las principales necesidades que podemos encontrarnos y que debemos de tener en cuenta a la hora de elegir un cortafuegos son:

  • Filtrado de paquetes e inspección de determinados protocolos.
  • Inspección del estado de las conexiones.
  • Operaciones y servicios de Proxy para aplicaciones y protocolos específicos.
  • Auditoría del tráfico, tanto del aceptado como del rechazado, por el cortafuegos.
  • Proporcionar autenticación de usuarios en base a métodos que no requieren la reutilización de contraseñas que puedan ser «escuchadas» por sniffers.

Cuando además de inspeccionar las cabeceras del paquete (para establecer las reglas de filtrado en función del origen, destino, o puerto específico) es necesario controlar el contenido del paquete es necesario utilizar un firewall de aplicación (en general con funciones de proxy) conocedor de un protocolo concreto (HTTP, FTP, …) inspeccionando el tráfico y detectando paquetes malformados o modificados y que pueden representar u n intento de ataque al sistema a través de una vulnerabilidad en la aplicación o protocolo.

Exiten 3 configuraciones básicas para la ubicación de un firewall como defensa de la red perimetral:

Firewall de dos zonas: formado por un equipo equipado con dos tarjetas de red que separa la zona «segura» (LAN o Local Area Network) de la «insegura» (INTERNET).
Todo el tráfico desde una zona a la otra es inspeccionado y filtrado por el equipo que en función de las reglas de acceso (conocidas normalmente como ACL).
La configuración por defecto más simple incluiría dos reglas como:

  • Impedir el tráfico iniciado desde Internet (zona insegura) con destino a la red local (zona segura).
  • Permitir todo el tráfico iniciado desde la red local a Internet

Firewall con 3 zonas: Se definen tres zonas diferenciadas, LAN, Internet y DMZ (Zona de nadie o Zona Desmilitarizada) conectadas a través de sus 3 tarjetas de red.
Las dos primeras zonas delimitan la zona «insegura» (Internet) de la zona «segura» (Red Local) mientras que la 3 zona DMZ es utilizada para conectar en ella los equipos que ofrecen los entre otros:

  • Servidores Web
  • Servidores FTP
  • Servidores de correo

Zona DMZ entre dos firewall: En este diseño el primer firewall controla el acceso desde el exterior (Internet) a la zona DMZ en la que se ubicarán los servidores con los servicios públicos.
El segundo firewall controla el acceso ya sea tanto desde el exterior (Internet) como desde la DMZ hacia la red local.
En este diseño un atacante desde el exterior deberá de conseguir «romper» una doble barrera. Si estos dos firewall son de fabricantes o tecnología diferente será más difícil de saltar la seguridad en el caso de encontrarse por ejemplo una vulnerabilidad en el software de un único firewall.

Incluido en el Kernel de sistemas Linux a partir de la versión 2.4, funciona como firewall de filtrado de paquetes e inspección de estado.
Las reglas de filtrado se realizan desde la tabla FILTER, y para la traducción de direcciones se utiliza la tabla NAT.Dentro de la tabla FILTER se incluye las cadenas:

INPUT, paquetes cuyo destino es el propio firewall, (por ejemplo un intento de conexión Telnet al firewall).
OUTPUT, paquetes cuyo origen es el propio firewall, (por ejemplo un paquete PING con destino a otra máquina desde el firewall).
FORWARD, paquetes que deben atravesar el firewall (por ej desde el exterior a la red interna o viceversa).

Las acciones principales para las reglas son:

ACCEPT: aceptar el paquete.
DROP: descartar el paquete sin informar al origen.
REJECT: rechazar el paquete e informar al origen.

Configuración de reglas de filtrado con IPTABLES

  • Definir política por defecto en DROP para las 3 cadenas.
  • #iptables INPUT DROP; iptables -F INPUT
    #iptables OUTPUT DROP; iptables -F OUTPUT
    #iptables FORWARD DROP; iptables -F FORWARD

  • Deshabilitar broadcast
  • #echo «1» > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

  • Deshabilitar la redirección del ping
  • #echo «0» > /proc/sys/net/ipv4/conf/all/accept_redirects

  • Registrar accesos extraños, paquetes falseados, etc
  • #echo «1» > /proc/sys/net/ipv4/conf/all/log_martians

    Reglas de filtrado para intentos de conexión desde o hacia el firewall


  • Permitir conexión SSH al firewall desde la red interna.
  • #iptables -A INPUT -p tcp –dport 22 -s 10.0.0.0/24 -j ACCEPT
    #iptables -A OUTPUT -p tcp –sport 22 -d 10.0.0.0/24 -j ACCEPT

  • Permitir envio paquetes ICMP desde el equipo firewall
  • #iptables -A OUTPUT -p icmp –icmp-type echo-request -j ACCEPT
    #iptables -A INPUT -p ICMP –icmp-type echo-reply -j ACCEPT

  • Permitir conexión TELNET desde el firewall a un equipo concreto
  • #iptables -A OUTPUT -p tcp –dport 23 -d 192.168.100.1 -m state –state NEW,ESTABLISHED.RELATED -j ACCEPT
    #iptables -A INPUT -p tcp –sport 23 -s 192.168.100.1 -m state –state ESTABLISHED.RELATED -j ACCEPT

    Ejemplo de reglas de filtrado para enrutado

  • Habilitar el reenvio de paquetes.
  • #echo «1» > /proc/sys/net/ipv4/ip_forward

  • Permitir conexión http desde la LAN sin enmascarado de la IP (enrutado)
  • #iptables -A FORWARD -s 10.0.0.0/24 -p tcp –dport 80 -j ACCEPT
    #iptables -A FORWARD -d 10.0.0.0/24 -p tcp –sport 80 -j ACCEPT

  • Enmascarando la IP de los equipos de la red interna (enrutado+NAT)

  • #Iptables -t NAT POSTROUTING -o eth1 -s 10.0.0.0/24 -j MASQUERADE
    #iptables -A FORWARD -p tcp -m state -state NEW, ESTABLISHED, RELATED –dport 80 -j ACCEPT
    #iptables -A FORWARD -p tcp -m state ESTABLISHED, RELATED –sport 80 -j ACCEPT

    Acceso a un equipo interno desde la red externa ocultando la IP
    #iptables -t NAT PREROUTING -i eth1 -p tcp –dport 80 -j DNAT –to-destination 10.0.0.1:80
    #iptables -A FORWARD -p tcp -m state NEW, ESTABLISHED, RELATED –dport 80 -i eth1 -o eth0 -j ACCEPT
    #iptables -A FORWARD -p tcp -m state ESTABLISHED, RELATED –sport 80 -i eth0 -o eth1 -j ACCEPT

    En el siguiente documento puedes ver más ejemplos de reglas de filtrado con IPTABLES.

    Filtrado con IPTABLES

    Te recomendamos también este completo manual sobre IPTABLES con numerosos ejemplos y escenarios de utilización del filtrado con IPTABLES

    Manual Iptables

    Los gateways de nivel de aplicación implementan firewalls en la capa 7 de la pila OSI. Esto significa que para cada servicio que se necesite proteger, ha de haber un proxy específico que le de soporte.
    Es una mejora en la seguridad, porque cada paquete que pasa por él, es inspeccionado a nivel de aplicación. De esta forma, realmente no hay una única comunicación cliente servidor, sino que la comunicación se realiza en dos pasos:

    • Desde el cliente al gateway o firewall
    • Desde el Firewall hasta el servidor

    Ventajas de los proxies

    • Mayor seguridad, control sobre el «contenido»
    • Ventajas de los proxies
    • Mayor seguridad, control sobre el «contenido»
    • Soporte más completo de los protocolos de aplicación.

    Desventajas de los proxies

    • La mayoría de ellos no son transparentes
    • Cada servicio requiere su propio gateway de nivel de aplicación, de forma que la escalabilidad en este aspecto no es muy buena.
    • La implementación de un cortafuegos a nivel de aplicación origina una grave disminución del rendimiento.
    • Son vulnerables a los bugs del propio sistema operativo

    Software proxy SQUID

    Squid es un popular programa de software libre que implementa un servidor Proxy y un demonio para Web caché, publicado bajo licencia GPL. Tiene una amplia variedad de utilidades, desde acelerar un Servidor Web.
    Guardando en caché peticiones repetidas, hasta caché de Web, DNS y otras búsquedas para un grupo de gente que comparte recursos de la red, además de añadir seguridad filtrando el tráfico. Está especialmente diseñado para ejecutarse bajo entornos Unix-like.
    Squid ha sido desarrollado durante muchos años y se le considera muy completo y robusto. Soporta muchos protocolos, aunque se usa principalmente para HTTP y FTP. Se añade soporte también a TLS, SSL, y HTTPS.
    El concepto de «cache» es una manera de guardar los objetos requeridos de Internet (por ejemplo: datos como páginas Web) disponibles via protocolos HTTP, FTP y Gopher en un sistema más cercano al lugar donde se piden.Los navegadores Web pueden usar la caché local Squid como un servidor Proxy HTTP, reduciendo el tiempo de acceso así como el consumo de ancho de banda. Esto es muchas veces útil para los proveedores de servicios de Internet para incrementar la velocidad de sus consumidores y para las redes de área local que comparten la conexión a Internet.
    Porque es también un Proxy, puede dar un grado de anonimato y seguridad. Sin embargo, también puede introducir problemas significativos de privacidad ya que puede registrar mucha información incluyendo las URL solicitadas junto con otra información adicional como la fecha de la petición, etc.

    Un programa explorador de cliente, o bien tiene que especificar explícitamente el servidor proxy que quiere utilizar (típico para consumidores de ISP) o bien podría estar usando un Proxy sin ninguna configuración extra, a este hecho se le denomina caché transparente, en el cual todas las peticiones HTTP son interceptadas por Squid y todas las respuestas guardadas en caché.
    El siguiente documento presenta una guia de configuración del software proxy SQUID así como numerosos ejemplo de configuración de sus reglas de acceso.

    Configuración y reglas de acceso con SQUID

    Una VPN se define como una Red Privada Virtual (Virtual Private Network) y consiste en construir una red privada y segura sobre una red pública no segura (Internet).
    Para ello se establece un túnel IP cifrado a través de Internet entre dos nodos que actuan como routers o enlace de cada red local privada y la conexión a Internet.
    Se utiliza el encapsulado de los paquetes de la red privada a través de la red pública.
    Por motivos de seguridad y debido a que la red pública (Internet) no es segura todo el tráfico encapsulado a través del tunel debe ser «cifrado» para garantizar la confidencialidad de la comunicación.

    Tipos de enlace

    Enlace Cliente – Red:

    • El cliente se conecta remotamente (a través de Internet) a una red local.
    • Se utiliza PPTP (Point To Point Tunneling Protocol)o L2TP (Layer 2 Tunneling Protocol) para establecer una conexión segura entre el cliente y la LAN.

    Enlace Red – Red:

    • Se crea un tunel cifrado que encapsula el tráfico de una red local a otra.
    • Solo se establece el tunel entre los dos equipos enrutadores que conectan cada red local a la red pública

    Las principales ventajas de la utilización de las VPN son:

    • Permiten crear una «Extranet».
    • Permitiría conectar diferentes delegaciones de una empresa, simulando una red local de una manera transparente y económica.
    • Dar acceso a clientes, socios y consultores a los diferentes recursos de la red de forma remota y segura.
    • Pueden ser instaladas con hardware dedicado o software específico incluido en lo sistemas Operativos habituales (Windows, Linux, …)
    • Puede utilizarse en cada red local el direccionamiento interno privado que se desee, ocultando y protegiendo con ello el acceso a las redes locales internas desde el exterior.

    Protocolos utilizados en el establecimiento de tuneles

    PPTP (Point-to-Point Tunneling Protocol):
    Protocolo desarrollado por Microsoft y normalizado por la IETF (Internet Engineering Task Force, RFC 2637). Utilizado fundamentalmente para el tráfico seguro de datos desde un cliente remoto a un servidor corporativo privado.
    PPTP soporta multiples protocolos de red (IP, IPX, NetBEUI, …) y es muy usado en entornos Microsoft.

    L2F (Layer 2 Forwarding):

    Protocolo desarrollado por Cisco Systems y precursor del L2TP, ofrece metodos de autentificación de usuarios remotos pero carece de cifrado de datos.

    L2TP (Layer 2 Tunneling Protocol):

    Estándar aprobado por la IETF (RFC 2661) es una mejora combinada de PPTP y L2F.
    No posee cifrado o autentificación en si mismo pero combinado con IPSec ofrece la integridad de datos y confidencialidad exigidos para una solución VPN.
    Al igual que PPTP, permite el encapsulado de distintos protocolos (IP, IPX, NetBEUI, …)

    Concepto de Tunneling: Consiste en añadir una cabecera IP adicional (cabecera del protocolo de transporte ) al paquete original para que éste pueda circular a través de Internet hasta el router de la empresa corporativa donde es eliminada.
    El router que permite accesos vía tunel a una red privada se denomina servidor de túneles.

    IPSEC: (IP Security)

    Proporciona servicios de seguridad a nivel 3 (Nivel de Red) y permite seleccionar:

    • Protocolos de seguridad
    • Algoritmos que se van a utilizar
    • Las claves requeridas para dar estos servicios.

    Proporciona los Servicios de seguridad de:

    • Control de acceso
    • Integridad
    • Autentificación del origen de los datos
    • Confidencilidad

    Es estándar dentro de IPv6 y ha sido adaptado para IPv4. Utiliza dos protocolos de seguridad:

    AH (Authentication Header): Protocolo de autenticación que usa una firma hash para integridad y autenticidad del emisor.

    ESP (Encapsulating Security Payload): Protocolo de autenticación y cifrado que usa mecanismos criptográficos para proporcionar integridad, autenticación del origen y confidencialidad.

    En la mayor parte de las implementaciones de IPSec existen dos entidades:

    SAD (Security Association Database): también llamada TDB, es una tabla de asociaciones de seguridad. Una SA se establece como una de las entradas de la SAD.
    SPD (Security Policy Database): Es una tabla de políticas de seguridad. Especifican cuales de aquellas entradas en la SAD se van a utilizar.

    Se puede expresar una entrada SPD como algo parecido a un filtro de paquetes, en el que las acciones que se deciden son la activación de procesos SA.
    Los selectores pueden incluir direcciones de origen y destino, números de puertos si fueran relevantes, nombres de anfitriones, niveles de sensibilidad de seguridad, protocolos, etc.

    En el establecimiento de conexión con IPSEC es necesaria la negociación entre ambos equipos de las claves de sesión que se utilizaran a lo largo de la conexión el protocolo que lo implementa es:

    IKE (Internet Key Exchange):

    • Autentica a cada participante en una transacción IPSec.
    • Negocia las normas de seguridad
    • Gestiona el intercambio de claves de sesión.

    El proceso se realiza en dos fases:

    Fase 1: Los nodos IPSec establecen un canal seguro para realizar el intercambio de informacion (SA).
    Fase 2: Los nodos IPSec negocian por el canal establecido:

    • Algoritmo de cifrado
    • Algoritmo hash
    • Método de autenticación

    En el protocolo IPSEC al igual que en otros protocolos de clave pública/privada es fundamental el envío de forma segura de la clave simétrica que se utilizará durante la sesión pra el cifrado de lo datos transmitidos.
    Una de las técnicas utilizadas para ello es el algoritmo conocido como Diffie-Hellman, que permite generar la misma clave simétrica en ambos extremos mediante el intercambio de un valor conocido entre ambos equipos y la utilización de un dato privado(secreto) en cada uno de ellos.

    En el siguiente documento se muestra una simulación del algoritmo para que puedas comprender mejor su funcionamiento.

    Simulación del algortimo Diffie Hellman para generación de una clave de cifrado simétrico de sesión

    A modo de resumen te se incluye un documento describiendo las características principales del protocolo IPSEC.
    Características de seguridad del protocolo IPSEC

    Caso práctico, establecimiento de conexiones IPSEC

    Las conexiones IPSEC pueden establecerse de dos modo principales, el modo transporte y el modo tunel.
    En el modo transporte, se requiere la configuración de IPESC de extremo a extremo, esto es, desde el equipo origen de la conexión hasta el equipo destino de la misma.
    En el modo tunel el tunel se establece únicamente entre dos máquinas que en general comunican dos redes locales separadas por una red pública (Internet)

    Puedes ver a continuación un ejemplo de configuración de un tunel entre dos redes locales con equipos Windows 2000.

    Para realizar la conexión IPSEC tan solo cuando se acceda a un servicio concreto (por ejemplo el servicio Telnet) es necesario definir en el servidor la regla de seguridad IPSEC específica, como te mostramos en la siguiente animación.

    En el siguiente documento encontraras información detalla sobre como realizar una conexión sobre Windows de IPSEC en modo transporte entre un equipo cliente y un servidor para establecer un tunel cifrado entre ambos y poder utilizar de forma segura protocolos que no los son como «telnet», «http», …
    En el mismo documento también se describe como realizar un tunel IPSEC en entorno Linux con OPenSSL y Freeswan.

    Establecimiento de conexiones IPSEC en modo transporte con W2k y modo tunel en Linux con Freeswan

    Se incluye así mismo otro documento con información sobre la configuración de Freeswan.

    Tutorial-Freeswan

    Consideraciones en la utilización de redes VPN

    Debemos siempre tener en cuenta que al utilizar VPN’s:

    • No se garantiza disponibilidad ( NO Internet -> NO VPN).
    • No se garantiza el caudal.
    • Gestión de claves de acceso y autenticación delicada y laboriosa.
    • La fiabilidad es menor que en una línea dedicada.
    • Mayor carga en el cliente VPN (encapsulación y cifrado)
    • Mayor complejidad en la configuración del cliente (proxy, servidor de correo, … )
    • Una VPN se considera segura pero no hay que olvidar que viajamos por Internet y expuestos a nuevas vulnerabilidades y ataques.

    Es posible tambien el establecimiento de VPN’s mediante la configuración de tuneles SSL basados en la autenticación, integridad y confidencialidad que ofrece el protocolo SSL (utilizado mayoritariamente para las conexiones Web seguras mediante https://)
    Este tipo de soluciones trabaja a nivel de la capa de aplicación y no en los niveles de Red y Transporte como en las VPN mediante IPSEC, PPTP o L2TP.
    Su ventaja es su facilidad de configuración y la implementación de una solución mediante protocolos muy extendidos y utilizados como SSL (Secure Socket Layer).

    En el siguiente enlace de la Wikipedia, puedes obtener más información sobre las características principales de este tipo de conexiones VPN mediante el software más utilizado OpenVPN del que se incluye también un manual resumido de su configuración.

    http://es.wikipedia.org/wiki/OpenVPn


    Configuración de una conexion VPN con OpenVPn

    Acerca de S. Vergara

    Quiero compartir mis experiencias y mis humildes conocimientos
    Esta entrada fue publicada en Redes. Guarda el enlace permanente.

    Deja un comentario