miércoles, 18 de marzo de 2009

Monta tu firewall con IPCOP

En la actualidad es normal oír hablar de un “router” o un “firewall o cortafuegos”, aunque lo normal es que en la mayoría de casos se esté tratando de un “router ADSL “ y de un “software firewall o cortafuegos”. Con esta guía queremos aclarar en la medida de lo posible estos conceptos, así como diferenciar los router o firewall por software o hardware y mostrar en detalle cómo podemos construir y configurar nuestro propio router-hardware con funciones de firewall mediante el uso de IPCOPS.

El software IPCOPS se distribuye de forma gratuita mediante licencia GPL y se trata de una distribución recortada de Linux basada en Red Hat, pero con todo lo necesario para que su administración se realice con facilidad por usuarios no experimentados en el campo de las comunicaciones mediante menús web.

Tal y como hemos comentado es necesario diferenciar el concepto “router ADSL” de “router”. Cuando compramos un Router ADSL, realmente estamos comprando dos dispositivos que vienen unidos en una misma caja. Una de las partes de dicho router seria un “modem ADSL”, equivalente a un modem analógico y que cuando realiza la conexión obtiene una dirección IP fija o estática publica en internet en función de nuestro proveedor. La segunda parte de nuestro “router ADSL” y que es la responsable de que podamos conectar varios ordenadores simultáneamente a la conexión ADSL, recibir automáticamente direcciones IP de red local en nuestros ordenadores, o que podamos dirigir puertos externos a diferentes de estos ordenadores dentro de esta red sería un “router”.

Cuando hablamos de “firewalls o cortafuegos” el concepto se complica más y en la mayoría de casos hablamos de “firewalls o cortafuegos” por software, pero el concepto engloba tanto software o hardware que nos ayuda a gestionar la seguridad en las comunicaciones. En cierto modo un router ADSL también se encarga de proporcionar seguridad en nuestra red ya que por defecto cierra las entradas externas mientras no las permitamos manualmente, cosa que no ocurre si disponemos de un “modem ADSL USB o Ethernet”, en este caso el encargado de los accesos externos es el sistema operativo de ordenador donde conectemos dicho router o bien un software que instalemos para realizar la función de cortafuegos.

Aunque como hemos comentado, los routers ADSL proporcionan cierta seguridad, también estamos a expensas de fallos de seguridad en su programación y nos permiten limitadas medidas de detección y protección ante ataques externos intencionados y si las necesidades de nuestra red aumentan, como con servidores públicos y estaciones de trabajo conviviendo en la misma red, estos routers no podrán cubrirnos nuestra seguridad y deberemos acudir a soluciones más potentes como “firewalls por hardware” que pueden ser soluciones cerradas como las fabricadas por ejemplo por CISCO o Sonicwall de precios demasiado altos para ciertas instalaciones modestas o bien construir nuestro propio cortafuegos utilizando un PC simple y alguna de las distribuciones Linux diseñadas exclusivamente a realizar dicha función. En el caso que nos trata plantearemos una instalación de 3 zonas de red gestionadas por la distribución IPCOP.

Planteamiento de instalación

Para mostrar la utilidad y dejar abierto el camino a descubrir las posibilidades de IPCOP propondremos un ejemplo de instalación. Si bien se pueden gestionar configuraciones más simples o más complicadas utilizaremos una con suficientes elementos como para justificar la necesidad del uso de un cortafuegos.

Por una parte en el apartado de comunicaciones contaremos por ejemplo con una línea ADSL con IP fija (con una dinámica también podemos trabajar, tan sólo es un ejemplo) y un router ADSL cualquiera con conexión Ethernet, en adelante hablaremos de WAN a esta conexión. En cuanto a los ordenadores imaginaremos que en nuestra instalación contamos con un conjunto de estaciones de trabajo y tres servidores, el servidor “UNO” presta servicios a las estaciones de trabajo y los servidores “DOS” y “TRES” dan servicios de web y correo tanto a las estaciones de trabajo como a accesos externos desde internet.

Si conectamos todos los equipos a un switch Ethernet y el router ADSL al mismo switch, tendremos acceso local a todos los servidores y si abrimos los puertos del router correspondientes a los servicios accesibles desde el exterior (por ejemplo web y correo) ya tendremos “todo funcionando”. Esta es la manera más rápida y sencilla, pero de este modo dependeremos de la seguridad del sistema operativo, de la seguridad de las aplicaciones que ofrecen accesos externos y de la seguridad de nuestro router ADSL para que nos protejan de intrusos desde el exterior, ya que si alguien rompe una de estas medidas de seguridad tendrá acceso directo a nuestro servidor local y estaciones de trabajo. Como se puede comprobar no es un escenario demasiado recomendable por lo que se plantea la necesidad de separar por una parte a los servidores locales y estaciones de trabajo (zona LAN) y por otra a los servidores que presten servicios externos a través de internet (zona DMZ). También necesitaremos que los dos grupos de ordenadores accedan a internet y que las estaciones de trabajo accedan a los servicios de los servidores con accesos externos y que estos servidores no puedan acceder a la zona de estaciones de trabajo para garantizar su seguridad.

De esta manera hemos convertido nuestra instalación en tres zonas, la “LAN”, la zona “DMZ” (Demilitarized Zone) y la zona WAN (acceso a internet).

Con IPCOP podemos hacer que todo funcione como hemos descrito anteriormente, las zonas que hemos descrito pasan a tener otros nombres en IPCOP, la zona LAN se denomina “green zone”, la zona DMZ se denomina “Orange zone” y el acceso a internet “WAN” se denomina “Red zone”.

IPCOP permite, por supuesto, realizar configuraciones mas sencillas de dos zonas por ejemplo “RED zone + GREEN zone” que podría ser un grupo de ordenadores domésticos con un acceso a internet gestionado por el propio IPCOP. Ademas de estas configuraciones también permite el uso de líneas RDSI como “backup” para acceso a internet o incluso el uso de una cuarta zona “BLUE zone” que se encargaría de accesos inalámbricos, accesos permitidos y su seguridad.

Preparación del ordenador

IPCOP puede funcionar en ordenadores bastante modestos. Evidentemente cuanto más potente sea el ordenador mejor gestionará las comunicaciones y soportará mayor carga y equipos simultáneos.

Un Pentium 3 o una placa VIA EPIA con 128 o 256 MB de ram funcionarán perfectamente con un número moderado de conexiones. A más conexiones simultáneas mayor procesador y cantidad de memoria RAM serán necesarios. En cuanto a disco duro no será necesario ninguna maravilla, cualquier disco de 4 o 8 GB será suficiente (no hace falta ni tanto), pero cuanto mayor sea el disco, más espacio podremos asignar a la caché de navegación y de esta manera reduciremos la carga en nuestro acceso a internet por ejemplo si se actualiza el sistema o antivirus de varios equipos.

Una vez tengamos nuestro ordenador listo, tan sólo deberemos instalarle tantas tarjetas de red como zonas planifiquemos que tenga nuestro cortafuegos. En el caso de la configuración de ejemplo que estamos detallando instalaremos 3 tarjetas Ethernet. IPCOP es compatible con bastante hardware, pero por ejemplo en el caso de tarjetas de red podemos tener problemas con la detección de algunas tarjetas modernas Gigabit Ethernet como por ejemplo la mayoría de las PCI Express.

Si queremos utilizar el ordenador como cortafuegos será normal que este ordenador no disponga de pantalla, teclado y ratón, así que será recomendable configurar la BIOS para que no se detenga mostrando un mensaje de error durante el inicio en caso de no detectar estos componentes. En muchas BIOS la opción se muestra como “Halt on” y la configuración correcta seria “No errors”. Evidentemente durante la primera fase de la instalación necesitaremos hacer uso del monitor y teclado.

También deberemos preparar el equipo a través de la BIOS si lo permite para que se inicie automáticamente tras un corte de luz para que preste sus servicios al igual que haría cualquier router ADSL.

Una vez preparado el “hardware” tendremos que hacernos con una copia de IPCOP, para ello accederemos a la página de IPCOP y nos haremos con una ISO de su última revisión en este caso para plataformas x86 (actualmente ocupa tan sólo unos 46MB). Seguidamente grabaremos dicha ISO en un CD con cualquier utilidad de grabación de CD’s que lo permita y ya tendremos todo lo necesario para preparar nuestro cortafuegos.

Preparación del router ADSL

IPCOP se encarga ente otras cosas de gestionar la apertura de puertos desde el exterior a cualquier zona de nuestra red, pero para poder hacer esto deberemos tener en cuenta ciertos detalles.

Por lo general, los router ADSL se configuran en modo “multipuesto” y de esta manera el router se hace cargo de la IP pública, convirtiendo la IP de las peticiones desde los ordenadores de la red y realizando las peticiones al exterior. Si conectamos el router ADSL directamente al cortafuegos IPCOP no podrá encargarse de la mayoría de configuraciones en lo que accesos se refiere ya que el router ADSL se encarga de ello.

Para solucionar el problema tenemos dos opciones, la primera y más conveniente es configurar el router en modo monopuesto, de esta manera la dirección IP pública pasará directamente al adaptador de red que conectenos al router ADSL (en este caso a la tarjeta de red de la zona WAN “RED” del cortafuegos con IPCOP).


Pantalla de configuración de router Zyxel

En caso de que no nos sea posible cambiar a monopuesto el router deberemos dirigir todos los puertos externos a una dirección IP “interna” en caso de que el router lo permita y configurar la red WAN del cortafuegos con esta dirección IP que el router considera interna.

El webs como www.adslayuda.com, www.adslzone.net o www.adsl4ever.com encontraremos documentos donde se explica cómo manipular la configuración de routers con detalle.

Planificación de la red

Una cuestión importante antes de ponerse a probar es que preparemos por escrito las direcciones IP que nos serán necesarias para toda la instalación, de esta manera evitaremos dudas durante las pruebas y problemas derivados de errores o confusiones. Aquí proponemos un ejemplo de configuración para configuración de router multipuesto y monopuesto.

Datos necesarios en caso de disponer de router monopuesto :

DATOS WAN

• Dirección IP pública de nuestro acceso ADSL (también podremos configurar desde IPCop dinámicas) : 195.55.250.150 (ejemplo)
• Mascara de red : 255.255.255.192
•Puerta de enlace ADSL : 195.55.250.130 (si no disponemos de este dato podremos encontrar páginas web donde nos ayudan a calcularlo a partir de la IP pública como por ejemplo aqui)
• Servidores DNS 1 y 2 : (los que nos facilite nuestro proveedor de internet)

DATOS LAN

• Direcciones IP : 192.168.0.xxx
• Mascara de red : 255.255.255.0
• Puerta de enlace : 192.168.0.254 (o la IP que asignemos al interfaz de red LAN “GREEN” de IPCOP.
• Servidor DNS : 192.168.0.254 (IPCOP sirve de servidor local DNS con caché)

DATOS DMZ (zona de red de servidores con acceso externo)

• Direcciones IP : 172.16.0.xxx (ejemplo)
• Mascara de red : 255.255.255.0
• Puerta de enlace : 172.16.0.254 (o la IP que asignemos al interfaz de red DMZ “ORANGE” de IPCOP.
• Servidor DNS : 172.16.0.254 (en determinados casos recomiendan aplicar los servidores DNS del proveedor de internet directamente en los servidores de la zona DMZ)

Si tenemos configurado nuestro router ADSL en configuración multipuesto podremos mantener los datos DMZ y LAN de la manera que hemos comentado pero si por ejemplo hemos dirigido todos los puertos externos a la dirección “interna” 172.26.0.1 y la dirección interna del router es 172.26.0.254 deberemos aplicar los siguientes datos a IPCOP en su zona WAN “RED”.

• Dirección IP : 172.26.0.1
• Mascara de red : 255.255.255.0
• Puerta de enlace ADSL : 172.26.0.254 (o la dirección IP del router)
• Servidores DNS 1 y 2 : (los que nos facilite nuestro proveedor de internet)

Además de planificar los direccionamientos IP de cada zona también es interesante preparar las IP de cada uno de los servidores que deberían ser fijas. Una vez preparadas las direcciones IP de estos servidores deberemos definir que servicio prestará cada uno de ellos y averiguar el puerto que deberemos abrir y dirigir hacia la IP de cada servidor. Por ejemplo, puerto 80 para webserver, puerto 21 para servidor FTP, puerto 25 para servidor de correo SMTP o puerto 110 para servidor de correo POP3. En ésta página de wikipedia podemos encontrar un listado completo de los puertos TCP.

Instalación de IPCOP

Una vez preparado el material y los datos pasamos a la instalación propiamente del software. Configuraremos nuestro ordenador para que se inicie desde el CDROM y seguidamente veremos la pantalla inicial del instalador desde el que podremos modificar parámetros de la detección del hardware o la preparación del disco duro.


Pantallas previas a la instalación

El resto de pantallas de la instalación inicial de IPCOP nos pedirán datos como la fuente de instalación o la dirección IP y mascara del adaptador de red que conectaremos a nuestra red local LAN “Zona Green”.





Primera fase de la instalación

El punto más extenso de la instalación es el menú de configuración de red, donde deberemos seleccionar las zonas de red que necesitamos y todos los datos de configuración de red de todas las zonas (los que hemos preparado en la página anterior).



Configuración de red

Una vez finalizada la instalación se nos pedirá que configuremos las contraseñas de acceso a la administración de IPCOP y se reiniciará el ordenador quedando una pantalla negra con un “login:”.


Consola del cortafuegos IPCOP

Configurando IPCOP - I

Una vez instalado IPCOP, si lo necesitamos, podemos acceder al menú de configuración de red de nuevo accediendo como “root” desde el login y ejecutando “setup”.

La administración general de IPCOP se realiza desde un interfaz web, con lo que accederemos a él desde nuestro navegador introduciendo http://192.168.0.254:81 ( o la IP que hayamos asignado a su adaptador en la zona LAN “green”). Seguidamente podremos ver su menú principal y las opciones que tiene en cada una de sus secciones.




Acceso y secciones de IPCOP

En el apartado “estado” podremos consultar el uso de procesador, memoria, conexiones de red o histórico de tráfico en cada uno de sus adaptadores.



Pantallas informativas de estado de IPCOP

Configurando IPCOP - II

Ahora comentaremos algunas de las funciones principales de IPCOP. El Web proxy es una función interesante ya que nos ahorrará peticiones repetidas como actualizaciones o descargas hacia internet y ganaremos velocidad en ellas. El tamaño disponible dependerá evidentemente del disco que hayamos utilizado. También contaremos con un servidor completo DHCP para nuestra zona LAN. Otra de las opciones, el “traffic shaper” nos permitirá priorizar la velocidad de acceso a internet en función del protocolo utilizado.


Web proxy, DHCP Server y traffic shaper

La gestión de apertura de puertos cuenta con mayores prestaciones que los routers ADSL generalmente. También podremos configurar los permisos de accesos externos a la gestión del router y abrir accesos desde la zona DMZ a la zona LAN. Por último vemos como también podemos inhibir la respuesta a “ping” en cada uno de sus adaptadores de red.



Pantallas de configuración de accesos

Uno de los puntos más interesantes es su sistema de detección de intrusos que permite realizar actualizaciones automáticas de sus tablas. Dentro de las opciones interesantes también contamos con la posibilidad de que IPCOP actúe como servidor VPN o la posibilidad de realizar a través del interface web un backup de la configuración del cortafuegos.


Configuración de detección de intrusiones, VPN y backups

Añadidos a IPCOP, ayuda y alternativas

IPCOP cuenta con suficientes funciones para trabajar con configuraciones como las que hemos comentado, pero también podemos añadirle otras funciones. Algunas de ellas son muy interesantes como “Blockout Traffic” que nos permite limitar los puertos a los que se permite la conexión de salida hacia internet desde nuestra zona LAN. También puede sernos interesante añadirle “Dansguardian” que nos permitirá limitar las páginas web a las que se accede desde las estaciones de trabajo.


Pantallas de Blockout traffic y de Dansguardian

Algunas de estas ampliaciones o “addons” se encuentran disponibles desde un menú (Addon server) que podremos añadir a IPCOP y nos permitirá gestionar los “addons” desde el mismo menú.


Addon Server para IPCOP

Como ayuda, aparte de la documentación disponible en la página oficial de IPCOP, podemos acudir al foro disponible en www.ipcops.com, en dicho foro se encuentra tanto ayuda sobre problemas concretos, diversas fuentes de ampliaciones para IPCOP, proyectos que serán incorporados en futuras versiones y documentación.

Como alternativas a IPCOP podemos encontrar también Smoothwall, Monowall y Pfsense. Probablemente Pfsense sea uno de los más atractivos ya que permite la gestión simultánea de diversos accesos a internet, permitiendo incluso balanceos de carga de entrada y de salida, aunque se encuentra todavía en sus primeras versiones.