FIREWALLS

Júan Jose Beltrán

Castelló 9 de Gener de 2003


INDICE

    Introducción

    Funciones

    Componentes

    1. Filtrado de paquetes
    2. Servicios Proxy
    3. Monitorización de la Actividad.

    Arquitecturas

    1. Firewall sencillo.
    2. Dual homed host
    3. Screened Host
    4. Screened Subnet

    Diseño

    1. Decisiones Basicas
    2. IPWADFM/IPCHAINS/IPTABLES
    3. Funciones Basicas de IPChains
    4. Ejemplo

    Productos

    Bibliografia



INTRODUCCIÓN

    Formalmente un Firewall es un componente o conjunto de componentes que restringen el acceso entre una red protegida "segura" y el resto de la red exterior "insegura", sus objetivos son que todo el tráfico pase a través de él y que sólo el tráfico autorizado sea permitido. Las amenazas de las que nos debe proteger deberán estar especificadas en el Plan de Seguridad de la Organización, concretamente en lo referido a comunicaciones con el  exterior. Para este objetivo existen diferentes arquitecturas ya sean para usuarios individuales o para organizaciones. La protección se realiza a través de la restricción de servicios y protocolos.

  Finalmente notar que el Firewall no nos protegerá de otras amenazas como las que ya se encuentran en le perímetro de seguridad.

  Los Firewalls desde el más antiguo al más moderno tienen dos graves problemas de seguridad, el Primero es que centralizan todas las medidas de seguridad en un único sistema por lo que si este se ve comprometido, el resto de la red queda al descubierto; más aún si se ha descuidado la seguridad en el interior de está creyendo que lo que quedaba detrás del Firewall era una zona totalmente segura. Lo que constituye el segundo gran problema de seguridad por no aplicar el sentido común.
 
 

volver al indice


 

FUNCIONES

    1. ¿Para que sirve una Firewall? ¿De qué nos protege?
 


    2. ¿De qué es capaz?
 


volver al indice


COMPONENTES

1. Filtrado de Paquetes:

Cualquier router utiliza reglas de filtrado. Podemos hacer que estas reglas sirvan a la política de seguridad en una red. Así el router se convertirá en el elemento de choque que constituirá la primera barrera de defensa.
Así se analizan los paquetes, tramos, a nivel de red y dependiendo de protocolo, flags, ip origen - destino, puerto ...
Para especificar este conjunto de reglas se suele usar una tabla de condiciones que es consultada en un orden determinado hasta que haya una regla que permita tomar una decisión sobre una determinada trama.
Por lo tanto será muy importante el orden en que se especifiquen estas reglas ya que puede llegar a situaciones como esta.

ORIGEN DESTINO TIPO PUERTO ACCIÓN
150.28.33.0 * * * Allow
* 225.18.34.0 * * Deny

        Si se intenta establecer una conexión desde 150.28.33.0 hacia 222.18.34.0, dependiendo desde donde empecemos a leer la tabla se          permitirá  la comunicación o no.
      De arriba a  abajo la comunicación se permite, al revés no.
      También se puede dar el caso de que no cumpla ninguna de estas reglas por lo que al final de nuestra tabla se debería introducir una        regla  general como esta:
 
 
ORIGEN DESTINO TIPO PUERTO ACCIÓN
* * * * Deny

 

           Para descartar estos paquetes o incluso permitirlos (mucho más peligroso).

 Además de esto se suelen utilizar servicios proxy ya que con el filtrado tenemos limitada la capacidad de :
volver al indice

2. Servicios PROXY:

Ordenador Bastión:

    Es aquel con acceso al exterior y único susceptible de ser atacado. Eso le obliga a tener una configuración muy especifica que lo proteja de los ataques.
 Los Nodos bastión suelen ser máquinas linux con medidas de seguridad extremas y cuentan con una reducción de servicios del sistema al mínimo indispensable. Al recibir los ataques éste deberá ser continuamente monitor izado, en él no deberán existir herramientas para la compilación ni interpretes de comandos, y también deberá contar con una alta rigurosidad en los permisos de ficheros y directorios.
También se pueden instalar servicios trampa que hagan creer al atacante que esta logrando su objetivo cuando realmente lo único que haremos es identificarlo para reforzar la seguridad ante este atacante.

Pasarelas de aplicación:

Después del filtrado de paquetes se suele instalar un ordenador bastión que oferta servicios proxy. Estos servicios incrementaran notablemente la seguridad, restringiendo los servicios a los que permite el proxy, y además dentro de cada servicio podemos restringir las acciones permitidas. Un inconveniente para estas pasarelas  de aplicación es que necesitamos un proxy para cada servicio.
Hay dos tipos básicos de servicios proxy:
  • Servicios proxy gateway a nivel de aplicación
    • Un firewall de gateway a nivel de aplicación provee control de acceso reescribiendo todas las principales aplicaciones. Las nuevas aplicaciones residen en servidores centralizados (bastión hosts). Las aplicaciones parecen funcionar en la misma forma que sus aplicaciones originales Las nuevas aplicaciones incluyen una agregada característica pequeña pero importante: la autentificación. Los firewalls de gateway de aplicación son excelentes complementos para gateways de filtro de paquetes.
  • Servicios proxy gateway a nivel de circuito
    • A diferencia de gateways a nivel de aplicación, son transparentes para los usuarios. Específicamente, una persona externa puede conectarse a una red a través de puertos TCP. En gateways a nivel de circuito, el firewall provee el puerto TCP y transmite los bytes de un lado para el otro, actuando como un cable y de ese modo completar el circuito sin interpretar nunca el protocolo de aplicación.

    • Ya que operan a un nivel más bajo, los gateways a nivel de circuito necesitan modificar los clientes.
En estos servicios se deben distinguir el cliente proxy, servidor proxy (o delegado), y servidor exterior ( o real):
  1. El cliente proxy: Es una implementación especial de un servicio ofertado por el S.O., funcionan en la red aseguradora.
  2. El servidor delegado: Funciona sobre el Firewall y conoce al cliente delegado y al servido real resultando transparente para usar.
  3. Servidor real: Esta fuera del Firewall, ofrece servicios estándar.
volver al indice

3.Monitorización de la Actividad.

Además de los registros estándar, paquetes recibidos, destino y origen de frecuencia se debe guardar información referente a la conexión: origen, destino, usuario, duración de la sesión, intentos de uso de protocolos denegados, intentos de falsificación de máquinas en el interior etc. Una vez registrada es interesante el uso de filtros ya que a veces la información registrada nos puede desbordar.
Evidentemente, todos esos registros han de ser leídos con frecuencia, y el administrador de la red ha de tomar medidas si se detectan actividades sospechosas; si la cantidad de logs generada es considerable nos puede interesar el uso de herramientas que filtren dicha información.
volver al indice
 



 

ARQUITECTURAS

1. Firewall sencillo (filtrado de paquetes):

Se trata del modelo más antiguo, es un encaminador (router) al que le definen unas reglas de filtrado de paquetes. Son capaces de bloquear paquetes en función del protocolo, la dirección de origen y la de destino, el puerto a que desea acceder, y algunas de las FLAGS que contienen los paquetes.
Los principales problemas de este arquitectura son:
volver al indice

2. Nodo con doble Interfaz (Dual Homed Host):

Se constituye en un ordenador que actúa como "bastión" este incorpora dos tarjetas de red. Una Interfaz de red permite la comunicación con el exterior y otra con el interior del perímetro de seguridad.
La comunicación entre ambas tarjetas se encuentra bloqueada.
Todo el intercambio de datos se reduce a través de servidores Proxy que se encuentran en el ordenador Bastión.

volver al indice

3. Nodo pantalla (Screened Host):

Combinación de las dos anteriores implementaciones. El primer nivel de seguridad lo forma el router encargado del proceso de filtrado de paquetes, en host bastión se coloca detrás como extremo de la LAN y este se encarga de ofrecer los servicios proxy que nos permitirán alcanzar la red externa desde el interior.
A diferencia de la arquitectura previa, el bastión host reside en la red interna, aunque algunos autores defienden lo contrario.
El filtro de paquetes puede ser configurado para permitir solo el acceso externo del bastión host. Si los servidores internos que no sean el  host se les niega el acceso al enrutador de filtración de paquetes, los servidores internos son obligados a usar los servicios proxy del bastión host para localizar servidores externos. Así ningún servidor del interior podrá acceder directamente al router de filtración para comunicar con el exterior.
 
 

volver al indice

4. Red Pantalla ( Screened Subnet):

La más segura de las tres arquitecturas de firewall es la arquitectura subred de filtración.
Añade un nivel de seguridad situando una red perimétrica entre el sistema asegurado y la red exterior. Esta arquitectura incluye dos firewalls de filtración de paquetes y un firewall de servicio proxy.
El firewall de servicio proxy o bastión host está conectado a su propia red situada entre los dos firewalls de filtración de paquetes. Un firewall de filtración de paquetes conecta la subred del bastión host a la red externa. El otro firewall de filtración de paquetes conecta la subred del bastión host a la red interna.
Así en caso de que se consiguiera pasar el primer filtro y acceder al host bastión con éxito aún nos quedaría una última barrera un router que realizaría el filtro entre la máquina bastión y la red interna.
El principal beneficio de este tipo de arquitectura es la ocultación del sistema que hace que desde el exterior, no puedan averiguar la topología de nuestra red interior.
Además se pueden añadir en serie todas las capas necesarias.
 
 

 DMZ: Corresponde a las siglas de zona desmilitarizada, es una zona interior al perímetro de protección.
 
 
 
 

volver al indice


DISEÑO

1. Existen tres decisiones básicas en el diseño y configuración de un Firewall:

volver al indice

2. IPFWADM/IPCHAINS/IPTABLES:

En 1994 aparece IPFWADM, primera herramienta para Linux con función de filtrado. Este se hallaba muy limitado en todos los aspectos sin llegar a ser un Firewall.
En 1998 aparece IPCHAINS, mejoraba en todo a su antecesor y es verdaderamente un buen sistema de protección a pesar de que no dispone stateful.
En 1999 IPCHAINS, es sustituido por IPTABLES donde la principal novedad es que incorpora stateful, además de ofrecer un sistema NAT, capaz de filtrar a nivel físico, es decir, en función de la dirección física de una tarjeta de red. Las especificaciones de las reglas se deben realizar en un guión del shell, tal y como se ha hecho en los sistemas Linux. Existen herramientas para definir estas reglas más comodamente como FWBUILDER. Después es este programa el que traduce las ordenes a IPCHAINS o IPTABLES.
volver al indice

3. Funciones Basicas del IpChains

Para trabajar sobre una cadena entera son:
 Las operaciones con la reglas de una cadena pueden ser:
Parametros:
Acciones ACCEPT, DENY, REJECT MASQ, REDIRECT..
volver al indice
 

4. Ejemplo

Primeramente vaciamos las cadenas de qualquier regla que contuviesen:
/sbin/ipchains -F input
/sbin/ipchains -F output
/sbin/ipchains -F forward
A continuacion vamos a establecer tres politicas por defecto, una para cada cadena:
ipchains -P input DENY
ipchains -P output ACCEPT
ipchains -P forward ACCEPT
Por ejemplo para permitir que el  correo llegue a nosotros:
ipchains -A input -s 0.0.0.0/0 -p smtp -d IPNuestroServidor 25 -j ACCEPT
Para permitir conexiones WEB a nuestro servidor WEB
ipchains -A input -s 0.0.0.0/0 -p www -d IPNuestroServidor 80 -j ACCEPT

Para enmascarar todas las IP´s internas hacia el esterior
/sbin/ipchains -A forward -s 192.168.1.0/24 -d 0.0.0.0/0 -j MASQ
 

Ejemplo en el que sólo se admite paquetes de entrada para conexiones HTTP

ipchains -F                                                                                         #Vaciamos todas las reglas
ipchains -P input DENY                                                                      #Establecemos las politicas por defecto
ipchains -P input  ACCEPT
ipchains -P output ACCEPT

ipchains -A input -i InterfazLocal  -j ACCEPT                              #Aceptamos paquetes que vienen del perimetro asegurado
/sbin/ipchains -A input -p icmp -f -d 150.128.40.1 -i eth1 -j DENY   #Interesa no aceptar ICMP's defragmentados
/sbin/ipchains -A input -p icmp -d 150.128.40.1-i eth1 -j ACCEPT   #Aceptamos los ICMP normales
/sbin/ipchains -A input -p tcp -d 150.128.40.1  80 -i eth1 -j ACCEPT  #Aceptamos los paquetes TCP en el puerto 80

Despues de esto seria bueno que probasemos si se cumplen las especificaciones que teniamos al configurar el firewall y revisar posibles errrores ya que estos podrian dejar agujeros para que nuestro sistema fuera vulnerable.

volver al indice
 
NAT (Network Address Translation)
Describe la función de «Traducción de Direcciones de Red». NAT permite que los usuarios dentro de la LAN puedan acceder a Internet a través de diferentes direcciones de IP (la que haya activado con su proveedor). Cada máquina conectada a la LAN usa la dirección IP (de forma transparente) de la máquina que está configurada para usar la dirección de IP asignada por el Proveedor de Servicion de Internet (ISP).

PRODUCTOS

Hoy por hoy en el mercado existen infinidad de proveedores de aplicaciones de firewalls, que están complementadas con los esfuerzos por elevar el nivel de seguridad de los distintos sistemas operativos. Destacan Cisco , HP , Symantec , ZoneLabs , McAfee ...
Estas aplicaciones de firewalls están disponibles para los distintos sistemas operativos.
Siendo el producto de Cisco el más solicitado para una protección hardware , en cambio a nivel software las empresas se inclinan por productos Symantec.
Además de verificar las características particulares de cada uno se pueden bajar de Internet versiones de evaluación o usar una implementación a medida.
Productos más significativos en el mercado:
No obstante, una buena solución para pequeñas empresas y particulares es usar un Firewall como el de LINUX. Este es de libre distribución y funciona sobre software gratuito y por tanto aunque el valor de la información a proteger sea pequeño, al menos si deberiamos contar con la protección mínima.
volver al indice

    BIBLIOGRAFÍA

 
volver al indice