Presentamos aquí un manual/tutorial que explica el funcionamiento y las opciones de configuración del módulo firewall de Vyatta.


 

Funcionalidad


Las posibilidades del Firewall de Vyatta van mucho más allá de la orientación normal de un firewall de simplemente inspeccionar la información de origen y de destino de los paquetes y actuar según ciertas reglas.
El módulo firewall de Vyatta se basa en el framework Netfilter que forma parte del kernel de Linux (series de 2.4.x a 2.6.x) y que permite añadir una capa más de seguridad ya que rastrea el estado de las conexiones de red y los flujos de tráfico y con iptables se permite o restringe el tráfico basándose en si se conoce y autoriza el estado de su conexión. Los stateful firewall (firewall basados en estados) son mucho más eficientes a la hora de bloquear comunicaciones no autorizadas.
Nota: espero publicar en breve un tutorial con la descripción y explicación de la máquina de estados de Netfilter.

En resumen, las capacidades del firewall de Vyatta son:

  • Protección en capa 2 permitiendo crear reglas que analicen la dirección MAC de origen.
  • Protección en capa 3 permitiendo crear reglas que analicen las IPs, grupos de IPs, subredes o redes, de origen y/o destino.
  • Protección en capa 4 permitiendo crear reglas que analicen el protocolo de transporte usado (tcp, udp, ospf, rdp, etc).
  • Protección en capa 7 permitiendo crear reglas que analicen el servicio o puerto de origen y/o destino.
  • Protección a nivel de estados de las conexiones.
  • Protección basada en zonas permitiendo crear zonas y aplicar reglas basadas en interconexión entre ellas.
  • Protección basada en tiempo permitiendo crear reglas que se activen solo durante ciertos periodos de tiempo.
  • Protección basada en cantidad de tráfico permitiendo crear reglas que limiten cierto tipo de tráfico a una tasa máxima descartando el exceso.
  • Protección basada en flags TCP permitiendo crear reglas que analicen los flags TCP (SYN, ACK, FIN, RST…)
  • Protección basada en tipos de paquetes ICMP permitiendo crear reglas que los analicen.
  • Protección basada en grupos permitiendo establecer grupos de direcciones IP, de redes y de puertos y crear reglas enfocadas en ellos.
  • Protección basada en número de intentos permitiendo establecer reglas que bloqueen los ataques de fuerza bruta.



La funcionalidad del firewall analiza y filtra paquetes IP entre interfaces de red. La aplicación más común es la de proteger el tráfico entre la red interna e Internet.

El módulo firewall de Vyatta nos permite filtrar paquetes en base a sus características y llevar a cabo acciones en paquetes que cumplan con una regla. La visión general de su funcionamiento y características:

  • Filtrado de paquetes en tráfico que atraviesa el router, usando la/s palabra/s in y/o out en una interfaz.
  • Filtrado de paquetes en tráfico destinado al propio router, usando la palabra local.
  • Definición de criterios en reglas de análisis de tráfico concreto, incluyendo IP origen, IP destino, puerto origen, puerto destino, protocolo IP y tipo ICMP.
  • Detección general de opciones IP tales como ruta de origen o paquetes broadcast.
  • Seguimiento del estado de cada una de las conexiones y filtrado de paquetes basado en dicho seguimiento.



Definición de instancias de firewall

 


Para usar las posibilidades del módulo de firewall de Vyatta hay que definir ciertas instancias o conjuntos de reglas y guardarlas con un nombre característico.
Una instancia de firewall, compuesta de una serie de reglas, se aplica a una interfaz con la intención de filtrar paquetes en base a las reglas que la componen.

Reglas de firewall


Las reglas de firewall especifican las condiciones que tiene que cumplir cierto tipo de tráfico y las acciones a llevar a cabo en caso de encontrar ese tipo de paquetes atravesando la interfaz. El análisis de tráfico puede llevarse a cabo cierto tipo de características que incluyen IPs de origen y destino, puertos de origen y destino, protocolo, tipo ICMP y estado de la conexión.
Las reglas se van ejecutando de forma secuencial de acuerdo a su número asignado. Si el tráfico analizado cumple con las características establecidas en una determinada regla las acciones especificadas por ella se llevan a cabo; sino, el sistema pasa a analizar la siguiente regla según número de orden.
La acción que una regla puede llevar a cabo es una de las siguientes:

  • Aceptar (accept). El tráfico es permitido y enviado.
  • Desechar (drop). El tráfico se descarta o ignora de forma silenciosa.
  • Rechazar (reject). El tráfico se rechaza con un TCP reset.
  • Inspeccionar (inspect). El tráfico se procesa por el sistema de prevención de intrusión (IPS).


Todas las instancias o conjuntos de reglas tienen por defecto una regla implícita final con acción pre-configurada de rechazar todo para que todo el tráfico que no coincida con las condiciones de ninguna regla sea rechazado.

Aplicación de instancias de firewall a las interfaces

 


Una vez que se ha definido una instancia de firewall puede aplicarse a una interfaz donde actuará como filtro de paquetes. Dependiendo de cómo se lleve a cabo la configuración la instancia de firewall en una de las siguientes direcciones:

  • In. Si se aplica la instancia como in, el firewall filtrará los paquetes que entren en la interfaz y atraviesen el sistema Vyatta. Solo se puede aplicar a una interfaz una instancia in.
  • Out. Si una instancia se aplica como out, el firewall filtrará los paquetes que salgan de dicha interfaz, pueden ser paquetes que hayan atravesado el sistema o paquetes generados por el sistema.
  • Local. Si se aplica una instancia como local en una interfaz, el firewall filtrará los paquetes que entren por ella con destino el sistema Vyatta.


Un total de 3 instancias pueden aplicarse como máximo a una misma interfaz, una como filtro in, otra como filtro out y una tercera como filtro local.

Interacción entre los módulos de firewall, NAT y routing

 


Cuando se configuran varias de éstas características del sistema Vyatta hay que tener muy en cuenta el flujo interno de funcionamiento del sistema.

Este es el esquema de flujo del orden de funcionamiento de los servicios de Vyatta:

flujo_funcionamiento_vyatta



Como ejemplo, si tenemos configurado un DNAT (NAT de destino) para por ejemplo, acceder a un servidor web que está en la red interna desde Internet y queremos configurar el firewall para que solo puedan acceder a él ciertas IPs públicas conocidas hemos de analizar o tener en mente el esquema anterior y saber que antes de que actue el firewall el DNAT ya se ha llevado a cabo y por tanto la IP de destino del paquete a analizar ya no será la IP pública sino que el DNAT la habrá convertido en la IP interna del servidor web.

Firewall basado en zonas


En el firewall basado en reglas las instancias se aplican a interfaces para actuar como filtro de paquetes en ella. En el firewall basado en zonas, las interfaces se agrupan en zonas de seguridad donde los interfaces de una misma zona tienen los mismos niveles de seguridad.

Las políticas de filtrado de paquetes se aplican a tráfico que fluye entre distintas zonas y el tráfico que fluye entre interfaces de una misma zona no es filtrado.

vyatta_zone_based_firewall



Además de las zonas especificadas en el ejemplo (zona pública, zona privada y zona DMZ) hay una cuarta zona que sera la zona local.

A tener en cuenta:

 

- Una interfaz solo se puede asociar con una zona.
- No se pueden aplicar reglas de firewall por interfaz a una interfaz que pertenezca a una zona.
- Por defecto, todo el tráfico hacia una zona es bloqueado a menos que una política de filtrado lo permita de forma explicita.
- Las políticas de filtrado son unidireccionales. Existen definidos pares de zonas que establecen de forma inequívoca el flujo de tráfico al que aplica dicha política: de privada a DMZ, de pública a DMZ, de privada a pública, de DMZ a pública, de pública a privada, de DMZ a privada.




matrix_large




07/02/2011