Router, firewall, proxy… bajo una máquina potente o poco potente
Enviado por miguelcarmona :: 5 de octubre de 2008
Hace ya tiempo que desistí de las horrendas funcionalidades de los router que ofrecen las operadoras de comunicaciones. Y es que cuando deseas una buena funcionalidad (y en este caso sólo hablo de enrutar), se suelen tener problemas varidados y habituales.
¿Qué decir de esos supuestos firewall que traen algunos? No creo que el cortafuegos que incorpora Windows XP sea tan deprimente (no puedo asegurarlo ya que no utilizo la plataforma Windows -bueno, sólo para probar algunos diseños-).
Ya hace basante que un cliente me preguntó que cómo podía controlar los accesos a internet de sus empleados. Por entonces no conocía muchas plataformas libres para dicho propósito, pero por no resignarme a ese caro y pesado ISA Server, me puse manos a la obra a buscar alguna buena solución abierta.
En dicha búsqueda, encontré muchas más soluciones de las que esperaba. Desde variantes de GNU/Linux hasta OpenBSD o FreeBSD, algo que me dió bastante alegría, ya que para controlar una red bajo un Directorio Activo de Microsoft pensaba que me tendría que limitar a ISA Server.
Bueno, detallo algunas impresiones de los más interesantes proyectos que encontré:
IpCop
- Sistema GNU/Linux basado en un kernel 2.4 (menor peso para máquinas antiguas).
- Es una distribución muy ligera con unos requerimientos mínimos (para el sistema base sin addons bastará con un 486 con 16 Mb. de ram).
- Es un proyecto completamente libre y no dependiente de ninguna empresa.
- Incorpora de base Un kernel 2.4.x (con su correspondiente cortafuegos), proxy (squid), DHCP, caché DNS, control de tráfico mediante netfilter, vpn, sistema de tiempo (NTPD) y un sistema de registro (creo que syslog).
- Su instalación es bastante sencilla, partiendo desde un cd que ocupa escasos 100 Mb.
- Su administración está basada en una interface web, muy sencilla y útil.
- Permite añadir funcionalidades extra mediante addons (muy buenos y útiles).
- Bien traducido a muchos idiomas.
smoothwall
- Proyecto iniciado sobre julio de 2000.
- Inicialmente Ipcop fué un fork de smoothwall, ya que este proyecto quedó bastante tiempo estancado.
- Se basa también en una completa distribución GNU/Linux.
- Al contrario que ipcop, utiliza un kernel 2.6.x.
- Prácticamente las mismas características que el paquete base de ipcop.
- También permite addons (la mayoría de los disponibles para ipcop también lo están para smoothwall).
- Tiene una rama comercial que incluye más herramientas y soporte técnico.
eBox
- Es un sistema más allá de un simple cortafuegos / enrutador.
- Está desarrollado por dos empresas (españolas) y licenciado como GPL.
- Se basa en la distribución GNU Debian y es un sistema bastante pesado.
- Buen soporte de idioma en Inglés y español (desconozco los demás).
- Integra todo lo detallado en ipcop y además:
- Servidor/cliente OpenLDAP
- Servidor DNS (BIND)
- Servidor proxy (squid) con todas sus características.
- Servidor de correo (postfix).
- Mensajería instantánea bajo el protocolo libre jabber (jabberd).
- OpenVPN
- Almacenamiento compartido y autentificación para equipos windows (SAMBA).
- Sistema de impresión (CUPS).
- Es un muy buen sistema, pero requiere una máquina potente para sacarle un buen partido
m0n0wall
- Es una distribución del estilo de ipcop pero basada en el sistema freeBSD.
- No puedo detallar mucho sobre la misma ya que prácticamente no la he utilizado pero sí puedo decir que lo poco que la usé, me dejó muy buen sabor de boca.
- Bastantes funcionalidades, pero requiere algunos conocimientos adicionales.
pfSense
- Muy similar a m0n0wall y también basada en freeBSD.
- Tampoco la he utilizado lo suficiente como para dar una crítica razonable, pero diré que es algo menos famosa que m0n0wall.
Hay otras muchas soluciones, pero las dejaré para futuros artículos.
Bueno, ni decir tiene que si vamos a dedicar una máquina en exclusiva y esta es potente, lo que más servicios y opciones nos dará es el proyecto ebox, ya que aparte de contener más servicios, integra un útil sistema de tratar todo como objetos (usuarios, grupos, servicios, direcciones de red…). Aparte, al estar basado en debian, podemos instalar una serie de software adicional que necesitemos con relativa facilidad.
Si por el contrario tenemos una máquina poco potente, o una máquina potente pero que debe ofrecer otros servicios no contenidos en ebox (servicios windows), la solución que más se ajustó a mi gusto y necesidades es ipcop (virtualizado).
La cuestión es que tras estas soluciones, analicé las necesidades del cliente y tomé mi decisión. El cliente tiene una buena máquina corriendo un Windows 2003 con un directorio activo y vario software personalizado. Tambien tiene una máquina menos potente (IBM x206 -si mal no recuerdo- p4 512mb) la cual deseaba tener como directorio activo de respaldo y apoyo (poco antes se había caido el directorio activo de la otra máquina y tuve que pasar una noche al completo con otro compañero levantando la máquina).
Así que después de analizar los sistemas, y ya que la segunda máquina sólo era un respaldo del directorio, procedí a incorporar una nueva tarjeta de red, instalar un sistema de virtualización (en este caso la elección fué un vmware server), e instalar dentro del mismo un ipcop con el addon advanced proxy el cual autentificaba los usuarios, el addon block out traffic el cual me permite configurar completamente el cortafuegos (cortando los puertos de conexión para messenger y demás servicios no necesarios) y Update Accelerator que me permite cachear las actualizaciones de windows update de manera que los equipos lo descargaban directamente desde esta máquina en vez de saturar el ancho de banda bajando cada actualización cada máquina.
Ni que decir tiene que el addon advanced proxy, me permitió autentificar los usuarios contra el directorio activo de Microsoft, por lo que ya tenía la solución que el cliente necesitaba y a un coste aceptable.
Tan bién funcionó el sistema, que actualmente tengo varios clientes corriendolo de la misma forma, e incluso lo tengo funcionando en mi red local (con el router en monopuesto) bajo kvm (con la distribución de virtualización proxmox) y con un rendimiento expléndido (desde que lo instalé, se acabaron los problemas de cuelgues del router).
Hay un módulo bastante bueno para ipcop el cual nos permite escanear todo el tráfico entrante y saliente, analizarlo (para temas de virus en equipos windows) y acer las acciones pertinentes configuradas.
Dicho módulo se llama copfilter y principalmente incorpora:
- Proxy/analizador de correo para pop e imap
- Proxy/analizador de correo para smtp
- Proxy/analizador de tráfico http, bloqueando incluso los banner publicitarios.
- Antivirus GPL Clamav.
- Monitorizador de servicios en tiempo real.
- Sistema de reportes mediante correo electrónico.
- Filtro antispam para el correo