Introducción a IPTABLES

Antes de hablar de FirewallBuilder, necesitaremos tener unas nociones de Iptables . Iptables es una herramienta basada en Netfilter y que viene integrada en el kernel de Linux . Está herramienta nos servirá para diseñar un firewall en nuestro sistema, dándonos la posibilidad de establecer diversos tipos de reglas, entre ellas, la de filtrado de paquetes. Digo entre ellas, porque podremos también no solo denegar o autorizar el acceso a nuestra máquina de diferentes conexiones , si no que podremos también realizar NAT si lo requerimos o parsear QoS del tipo de tráfico que pasa por nuestro sistema. Para más información acerca de IPtables os remito a la entrada de Esaú (Introducción Iptables)

Introducción a FirewallBuilder

Aunque el título sea Iptables con FirewallBuilder, que no lleve a confusión. Firewall Builder es una aplicación que permite diseñar políticas de seguridad y luego aplicarlas a servidores de cortafuegos de una forma fácil y sencilla. Esto no queda restringido a Linux e Iptables, también se puede utilizar en otros entornos , por ejemplo Unix con su Ipfilter. FirewallBuilder dispone de una versión libre para GNU/Linux basada en un licenciamiento GPL , también tiene versiones para otros sistemas como Windows y MacOS X. Dejar claro que FwBuilder no es por tanto un firewal l, sino una herramienta con una GUI amigable que nos permite gestionar diferentes firewalls , no solo Iptables, aunque nos centremos en este. Para más información sobre los firewalls que se pueden gestionar, recomiendo visita a http://www.fwbuilder.org/index.shtml En la web oficial se puede comprobar como FwBuilder permite gestionar firewalls de Cisco (ASA  y PIX), así como las ACL´s de los routers. También como comenté anteriormente Ipfilter o el Packet Filter de OpenBSD.

I nstalando firewallbuilder

En la web de fwbuilder podemos encontrar varias maneras de instalarlo según que distribución estemos usando. Tenemos tanto rpm para descargar, como paquetes deb o los instalables si nuestro sistema a ejecutar el cliente es Windows. En este caso, estamos trabajando sobre una OpenSuse 13.1, así que podremos bajarnos el rpm teniendo en cuenta las dependencias requeridas :
  • fwbuilder-5.1.0.3599-1.suse11.3.i586.rpm
    • libxml2 v2.4.10 o posterior
    • libxslt v1.0.7 o posterior
    • ucd-snmp o net-snmp
Otra opción si utilizáis una distribución basada en Suse y os gusta el YaST, podéis instalarlo desde ahí, y os despreocuparéis de las dependencias. Una vez instalado, arrancamos “fwbuilder &”: Primeros pasos Desde esta ventana de inicio podemos ir a la guía rápida del portal web o cerrar la ventana y directamente ir a crear reglas o importar existentes. También existe la opción de ejecutar un tutorial que nos llevará a un video detallado. Y en la página web del fabricante, que he puesto anteriormente, podemos seguir cómo instalar firewallbuilder en diferentes distribuciones de GNU/Linux.

P rimeros pasos con firewallbuilder

Debemos de tener en cuenta que los firewalls pueden gestionars e o administrarse bien por vía web o normalmente por una herramienta cliente . En muchas ocasiones esta manera de gestionar los firewalls nos lleva a que perdamos funcionalidad de los mismos, ya que no es equiparable a trabajar directamente sobre ellos, debido a que el interfaz web no está adecuado a la última versión de sistema operativo del firewall o que el cliente propietario va incluso unas versiones por detrás. Nos encontramos ahora mismo abriendo y empezando a trabajar con una aplicación cliente, pero no propietaria, la cual no está vinculada directamente a ningún fabricante y nos permite diseñar políticas de seguridad, y a seguidamente aplicarlas a las diferentes máquinas implicadas en nuestra plataforma de seguridad, de manera directa. En este post, estamos utilizando el cliente de Firewall Builder en el mismo sistema donde aplicaremos la política de seguridad, por tanto, en local. Si tuviésemos varios sistemas implicados con diferentes IPtables (por ejemplo), decir que al aplicar la política de seguridad en las máquinas remotas, esta se copiaría en las mismas mediante una conexión SSH. Vamos a empezar con la creación de un nuevo firewall, así que podemos ir a firewalls y botón derecho o bien hacer click en “Create new firewall” . fwbuilder2 Una vez hayamos entrado en la opción de crear un nuevo firewall veremos un inbox que nos solicita el nombre del objeto a crear y unos combos desplegables. En estos combos, debemos seleccionar que firewall vamos a utilizar, ya que tal y como hemos visto en la introducción a Firewall Builder, este es multiplataforma . En nuestro caso seleccionaremos Iptables, y automáticamente nos seleccionará la versión. Una vez hayamos terminado en esta ventana, proseguiremos con la configuración o el alta de interfaces , seleccionaremos los interfaces de nuestro sistema. Si tenemos más de un interfaz, incluiremos en esta ventana los vinculados a la política de seguridad diseñada. En azul el nombre del objeto y en rojo el nombre del interfaz incluido. fwbuilder3 Si a posteriori necesitásemos incluir otro nuevo interfaz solo tendríamos que añadirlo, definiendo como ahora si el interfaz es externo interno o de gestión. En la parte de abajo del GUI tenemos el editor del objeto creado, donde podemos ver la versión, la plataforma seleccionada y los “settings” del sistema operativo y del firewall. Aquí podremos configurar entre otras cosas el reenvio de IPv4 o IPv6,  protección mediante spoofing,  descarte de paquetes ICMP, su redirección o por ejemplo, ignorar ping de broadcast. fwbuilder4 Podemos partir de una política de cortafuegos en blanco o ayudarnos de diversas plantillas ya hechas basadas en escenarios típicos con uno o diversos interfaces de red. Si soléis trabajar con firewalls y/o sistemas donde tengáis implantadas políticas de seguridad perimetral pues perfecto, podréis aplicarlas fácilmente.  Si por el contrario son vuestros primeros pasos en seguridad con firewalls e iptables, podéis empezar con una plantilla en blanco e ir progresando poco a poco, y realizando pruebas, si no disponéis ni de ganas ni de tiempo, se puede partir de una plantilla predefinida e ir adaptándola a vuestro entorno/necesidad. Firewall Builder permite configurar diferentes tipos de interfaces de red , por ejemplo interfaces tipo Bridge , interfaces tipo Bond o interfaces normales, existiendo la posibilidad de segmentar dichos interfaces en modo lógico, configurando un trunk (Comunicación mediante tagging de VLAN 802.1Q). También deciros que desde el FwBuilder podemos plasmar todo esta configuración más las políticas que apliquemos en un script  que nuestro sistema  ejecutará al arrancar el cortafuegos. fwbuilder5

Definiendo objetos

Una vez que hemos creado el interfaz o los interfaces de red, vamos a empezar a definir objetos. No vamos a entrar en gran detalle, configuraremos políticas en un único sistema Suse con un FwBuilder en local, ya que quiero reflejar lo básico de Iptables y de FwBuilder. Pero pensad que podemos tener un proyecto desde nuestro FwBuilder que contenga 16 sistemas , y que cada sistema tenga uno o más interfaces. Todo eso lo podemos gestionar desde FwBuilder y crear scripts de arranque que el Iptables o IpFilter de cada sistema ejecutará al arrancar. fwbuilder6 Como se puede ver en la captura anterior, tenemos un icono de “New Object” donde tenemos todos los objetos posibles. Podemos comprobar en el frame izquierdo que ya hemos creado varios objetos, como los interfaces de red del Firewall o un PC de gestión del mismo o 2 redes. Vamos creando varios objetos de ejemplo para las capturas, y nos pondremos a diseñar unas políticas que los contengan.

Creando políticas

Una vez llegados a este punto, añadidos los objetos de red, servicios, y demás, nos pondremos a configurar las políticas. En este punto, alguien que esté acostumbrado a trabajar con la CLI de iptables pues no verá más que un entorno gráfico, pero insisto en que una de las bondades de FwBuilder viene en darnos la posibilidad de gestionar de manera centralizada un proyecto de seguridad multiplataforma. Vamos a crear unas políticas básicas , simplemente para explicarlas un poco y ver como se reflejan gráficamente, ya que lo que queremos es ver como funciona FwBuilder para en posteriores entregas en OpenWebinars.net profundizar más con esta aplicación y con Iptables. Como apunte informativo , he de decir que las MAC y las direcciones públicas que aparecen en las capturas no corresponden a maquinas reales en el entorno. En la siguiente captura podemos ver la pantalla de creación de políticas , esta es bastante intuitiva, teniendo en el frame izquierdo los objetos y en el derecho las políticas. Según se van añadiendo líneas, se pueden ir arrastrando los objetos a dichas líneas e ir viendo cómo se van creando las políticas. fwbuilder7 Si estamos plasmando un diseño realizado previamente, y se nos ha olvidado crear algún objeto, podemos crearlo sobre la marcha, así como editar los ya creados o incluso configurar MAC’s asociadas a los interfaces de red, que siempre viene bien para ir añadiendo capas de seguridad. fwbuilder8 Cualquier objeto definido o cualquier política tiene a la derecha del todo un campo de comentarios , donde podemos indicar el por qué se ha creado, a qué aplica o cualquier detalle que consideremos oportuno, y que siempre vendrá bien para simplificar la labor cuando se gestionen varios firewalls de diferentes sistemas. Como he indicado anteriormente, vienen con plantillas ya predefinidas , las cuales podemos modificar a nuestro antojo. También tiene, aunque no se usen las plantillas, servicios predefinidos , podemos arrastrar los mismos desde su contenedor hacia las políticas. En los ejemplos de las imágenes, podéis comprobar como hay algunos predefinidos como “ SNMP ”, “ ssh ”, “DNS” y otros creados como por mi como ejemplo “Nagios over TCP”. Todo el log que se genera en el cortafuegos es ejecutado via syslog según la configuración del demonio del sistema donde esté corriendo. fwbuilder9 Se puede seleccionar el nivel que queramos de facility y severity, y luego integrarlo en un sistema tipo SIEM (Security Information and Event Management).

Compilando el trabajo

Una vez finalizado, tenemos las opciones de compilar el trabajo, compilar e instalar el trabajo o revisar los ficheros compilados. fwbuilder10 Estas opciones nos permitan compilar el trabajo y llevarlo a un sistema o por el contrario, si tenemos conectividad con el mismo, directamente instalarlo. Firewallbuilder nos dejará un script que se ejecutará al iniciar el servidor. fwbuilder11 Y una vez llegados a este punto, de una manera sencilla hemos visto el funcionamiento de firewall builder, y como empezar a trabajar con esta herramienta que considero muy útil a día de hoy , y espero que vosotros también después del mini how to.