viernes, enero 19, 2007

SmoothWall Express: Open Source Firewall


En este artículo vamos a ver cómo configurar el firewall SmoothWall Express 2.0 en nuestra oficina o casa. Al final del artículo obtendremos un entorno seguro con las siguientes ventajas:
  • DMZ con nuestro servidor web publicado
  • LAN segura con nuestro servidor de base de datos y los equipos clientes
  • Web Proxy con control de quién sale a internet y quién no
Para realizar esta configuración nos vamos a basar en herramientas Open Source disponibles para todo el mundo y de manera gratuita. Éstas son:
Escenario de partida:
Nuestro escenario de partida es el siguiente:





















Tenemos nuestro router que nos da acceso a internet y nuestros clientes que acceden a los servidores de la LAN y a internet. No tenemos ningún control sobre quién accede a internet, anchos de banda utilizados, políticas de acceso y tampoco podemos publicar nuestro servidor web a internet por no tener una infraestructura de seguridad. Nuestro objetivo, por lo tanto, será montar dicha infraestructura de seguridad que nos de control sobre nuestra red y el tráfico que por ella se mueve.

Escenario Objetivo:
Nuestro objetivo será llegar a un escenario como este:























Tenemos tres zonas bien diferenciadas:
  • DMZ: Zona DesMilitarizada, donde colocaremos el servidor o servidores que queramos publicar a internet. Todo el tráfico entrante desde internet (salvo que se definan reglas) se derivará hacia esta zona).
  • LAN Segura: en esta zona estarán nuestros clientes y servidores seguros. Ningún tráfico de internet se dejará pasar a esta zona (salvo que se definan reglas). Sólamente el tráfico definido podrá pasar desde la DMZ hasta esta zona (típicamente para acceder al servidor de base de datos).
  • Zona Insegura: esta es la zona por la que llegan las peticiones de internet y se realizan los bloqueos necesarios.
Como se observa, en el firewall se encuentra también el Advanced Web Proxy, el cual nos permitirá controlar el acceso a internet por parte de los clientes.

Configuración de SmoothWall Express 2.0:

Nos descargamos la versión desde su sitio y la guardamos en un CD. SmoothWall es un firewall montado sobre un linux precompilado. Es necesaria una máquina completa para él puesto que elimina todo el contenido existente en los discos duros. No se necesitan conocimientos previos de Linux, aunque si tener claro lo que se quiere conseguir. Lo primero que necesitaremos serán 3 tarjetas de red que pincharemos en nuestro equipo. Los requisitos del equipo son muy bajos: recomendado 64MB de RAM y unos cuantos gigas de disco para el proxy.

Los datos de configuración que tenemos que tener claros son:
  • IP para la red LAN Segura
  • IP para la red DMZ
  • IP para la red Insegura
  • Nombre del cortafuegos
  • Si vamos a usar DHCP para la LAN Segura (trae uno incorporado)
En nuestro caso vamos a utilizar los siguientes datos:
  • IP LAN Segura: 192.168.0.1 / 255.255.255.0
  • IP DMZ: 192.168.1.1/ 255.255.255.0
  • IP red Insegura: DHCP (Nuestro router nos da la IP automáticamente)
  • Nombre: firewall
  • ¿Usamos DHCP para la LAN?: Sí
Los manuales que acompañan a SmoothWall Express indican perfectamente pantalla a pantalla el proceso de instalación, por lo que no nos vamos a detener en el mismo. Una vez instalado el equipo, podremos acceder a la consola de administración web del firewall a través de la dirección:

http://nombre_del _firewall:81 o
https://nombre_del _firewall:441
















Desde las pestañas podremos acceder a todos los
servicios que nos ofrece el firewall. Tendremos que actualizar todos los parches de seguridad para estar seguros nada más empezar. Esto lo haremos desde la pestaña "Maintenance-->Updates". Una vez actualizados, pasaremos a configurar el DHCP para que nuestro servidor de base de datos (que se encuentra en la LAN) tenga una dirección IP estática:
  • Pulsaremos sobre la pestaña "Services" (nos pedirá autentificación para poder acceder)
  • Entraremos en "dhcp"
Aquí podremos dar de alta una nueva regla a partir de la MAC del equipo para que le asigne una IP fija. En nuestro caso vamos a darle la IP 192.168.0.2, por lo que cambiaremos la configuración del servidor DHCP para que empiece a dar direcciones a partir de la dirección 192.168.0.3.
















Activaremos a continuación la detección de intrusos del firewall para darle una protección extra más y también el acceso remoto mediante SSH que utilizaremos más tarde para conectarnos al servidor.

En este punto tenemos configurado el firewall para evitar las entradas desde internet, pero nos faltan los siguientes puntos:

  • Publicación del Servidor Web
  • Control de Acceso a Internet por parte de los clientes
Publicación del Servidor Web:
Para poder publicar el servidor web necesitaremos tener los siguientes puntos resueltos:
  • Haber obtenido una IP fija por parte de nuestro proveedor para nuestro router
  • Tener los puertos del web abiertos en el router para permitir la entrada
  • Darle una IP al servidor web (en nuestro caso 192.168.1.2, recordemos que la interfaz de la DMZ tiene la IP 192.168.1.1)
Una vez solucionado este tema, lo que tendremos que hacer será conectar nuestro servidor a la interfaz naranja del firewall y habilitar una nueva regla de entrada a la DMZ desde internet.












Configuramos la regla para que las peticiones al puerto 80 desde cualquier IP se redirijan a nuestro servidor web.

Una vez hecho esto, tenemos que habilitar la comunicación entre el servidor web y el de base de datos que se encuentra en la LAN segura. Para hacer esto, entraremos en la opción "dmz pinholes".













En este caso, configuramos una regla para acceder al puerto 3306 (el de MySQL) desde la IP 192.168.1.2 (servidor web) a 192.168.0.2 (servidor de base de datos).

Con esto tenemos configurada nuestra publicación del servidor web. Nos falta tener el control de acceso a internet por parte de los usuarios.

Advanced Web Proxy:
El Advanced Web Proxy es una extensión de SmoothWall Express para permitir una gestión
mucho más potente del acceso a internet que la que trae por defecto el servidor. Las características principales que ofrece son:
  • Autentificación de varios tipos (local, LDAP, RADIUS, Dominio de Windows, identd)
  • Manejo de grupos de usuarios
  • Bloqueo de browsers no permitidos
  • Reglas de acceso a internet por horas
  • Control del ancho de banda
  • CRE Classroom Extension para la gestión de aulas por personas sin conocimiento técnico
Para la instalación necesitaremos los dos programas que se comentaron al principio FileZilla y Putty. Con el primero podremos copiar el fichero de la descarga a la carpeta del servidor correspondiente y con Putty podremos acceder al servidor mediante SSH e instalar el paquete. Las instrucciones que se proporcionan con advproxy son muy detalladas y no vamos a entrar en el proceso de instalación.

Lo que nos queda es configurar el advproxy para que todos los clientes tengan que pasar por él obligatoriamente. Para hacerlo tendremos que deshabilitar todo el tráfico saliente obligando a que pase por el proxy. Al hacer esto, tendremos control sobre quién puede y quién no puede salir a Internet:
  • Mediante Putty nos conectamos al servidor e introducimos las credenciales de root
  • Accedemos al directorio /etc/rc.d
  • Abrimos con "vi" el fichero rc.firewall.up donde se guardan las políticas
  • Introduciremos por cada puerto la siguiente línea (debajo de):
  • /sbin/iptables -P INPUT DROP
    /sbin/iptables -P FORWARD DROP
    /sbin/iptables -P OUTPUT ACCEPT
  • # Block direct web access from inside
    /sbin/iptables -A FORWARD -i $GREEN_DEV -o ppp0 -p TCP --dport 80 -j DROP
Los puertos a bloquear son: 80,81,443,3128,6588,8000,8080,8181. Una vez realizados estos cambios, guardaremos el fichero y volveremos a la interfaz web para habilitar el uso del proxy. Habrá aparecido una nueva pestaña llamada "Advanced Proxy" dentro de "Services". Dentro de ella tendremos todas las opciones para habilitar tráfico por horas, bloquear IPs, crear grupos mediante la extensión CRE, etc.

Conclusión:
Finalmente hemos conseguido montar nuestra infraestructura de seguridad para poder realizar las tres tareas que nos planteamos en un principio:
  • Tener nuestro servidor web publicado
  • Tener una red LAN segura
  • Tener control sobre el acceso a internet por parte de los usuarios























El tiempo de configuración es muy corto y en uno o dos días podeis tener montado y configurado vuestro firewall. Existen múltiples
extensiones para SmoothWall disponibles en Internet (control de contenidos, reglas avanzadas, etc.) así que podeis personalizar vuestra instalación tanto como queráis.

Espero que os haya gustado este a
rtículo sobre la seguridad en nuestras instalaciones.


16 comentarios:

Anónimo dijo...

juer, mu detallao el articulillo. Quizá lo ponga en práctica en la asociación.

No te hagas ilusiones, soy yo, Nacho, no ha entrao nadie de fuera a comentar el artículo ;).

Melvin dijo...

Muchas gracias por su manual, a sido de mucha utilidad para implementar mi firewall, pero te tengo una preguta, hay alguna forma de bloquear un pagina ejemplo www.hotmail.com desde el smoothwall o tengo que editar algun archivo de la instalacion para esto.....

Manuel Cardenas Thorlund dijo...

Hola, en primer lugar, muchas gracias por leer el artículo. Con respecto a tu pregunta, para bloquear páginas de internet tienes que instalar un filtrador web dentro del firewall, como por ejemplo Dans Guardian (http://dansguardian.org), que te dará la capacidad de establecer reglas y listas negras.

Anónimo dijo...

Estimado,intento hacer algo similar a tu red, pero sin los servidores, le que quiero hacer es bloquear los P2P y limitar el ancho de banda de los pc que estan despues del switch.
No me manejo en nada en comandos linux, por lo tanto solo estoy entrando al smooth por la interfaz web.
Espero comentarios.

Manuel Cardenas Thorlund dijo...

Buenas, para poder realizar los filtrados tienes que instalar la extensión advproxy, que te permitirá realizar esas acciones. Desde su pantalla en la interfaz web podrás ir configurando las diferentes opciones. El tema de cortar el P2P no sé si desde ahí se puede hacer. En todo caso sería dejar abierto solamente los puertos de HTTP, FTP, correo, etc. los puertos que se utilizan y cerrar el resto.

De todas formas, vas a tener que meterle mano, un poco, a los comandos linux para poder configurar la extensión del advproxy, tal y como explico en el post.

Espero que te sirva de ayuda.

Anónimo dijo...

Excelente! Pregunta puedo modificar el open source de smoothwall e incluir una rutina en la capa de aplicacion donde pueda enviar un pequeño mensaje propietario similar a un keepAlive
Gracias
David

Manuel Cardenas Thorlund dijo...

Hola David,
dado que el código fuente de SmoothWall se encuentra disponible, puedes realizar cualquier modificación que se te ocurra sobre él.
Lo que no sé es que lenguaje se encuentra programada la interfaz web ni el firewall.

Anónimo dijo...

Hola Manuel, como puedo instalar dansguardian.
descomprimi el archivo pero no encuentro como instalar.
me podrias ayudar

Manuel Cardenas Thorlund dijo...

Buenas, aquí tienes un tutorial de cómo instalar y configurar dansguardian dentro de SmoothWall:

http://www.kriptopolis.org/dansguardian-av-en-smoothwall

Anónimo dijo...

buenas, mi pregunta: es puede utilizar tambien smoothwall 3.0 como web server y mail server?

Anónimo dijo...

oye muy bien explicado, sobre smooth y pues la verdad tambien estaria bien que mostraras como configurar una VPN con el mismo, ya que no encuentro mucha informacion hacerca de, y pues estaria bien que lo comentaras, muy buen aporte

Anónimo dijo...

que tal mi estimado, buen aporte, pero necesito ayuda, yo lo estoy haciendo con 3 interfaces, y pues necesito q me ayudes con eso, utilizo la version 3.
necesito poner un servidor web en la orange y q pueda ser visto desde internet ayuda por favor, gracias.

ultimatestark dijo...

Hola, se que es un post viejo pero me sirvio de mucho para una asignación de mi trabajo (lo use con el plugin urlfilter para bloquer paginas),pero quisiera pedirte tu ayuda con un problema,tecnicamente tengo tu misma configuracion, excepto que mi firewall solo tiene dos nics, (green y red), obvio segun tu ejemplo la color red va directo aun router echolife HG520b y la green va aun switch la cual le da servicio a la red interna (cableada e inalambrica), dentro de esta lan tengo 2 dvr ip, el asunto es que no puedo hacer que el router me mande las peticiones de los puertos hacia dentro de la lan...si al router le conecto un dvdr ahi si se dirigen los puertos a su respectiva ip local y puedo verlos desde internet...pero cuando estan en la lan no los manda..el detalle es que uno de ellos esta demasiado lejos (otro edificio, se conectan por antenas) como para conectarlo al router,ya que si conecto las antenas al router, pues el segmento de lan del otro edificio queda fuera del filtro...¿alguna idea de como mandarles las peticones?..Gracias de antemano..

Manuel Cardenas Thorlund dijo...

Buenas,
si que es un post antiguo y hace tiempo que no trabajo en esto. Lo único que se me ocurre es que configures el port forwardig del firewall para que cuando se solicite el puerto de los elementos que tienes, el firewall los redirija a la IP real de la zona verde. Sería bastante recomendable que esos dos dvd ip los tuvieras en la zona naranja porque son accesibles desde el exterior.

Isbelia Medina dijo...

Buenas.Tengo el smoothwall instalado, pero accede a ciertas páginas web que estan en otra red. desde allí la máquina donde esta el smootwall no reponden al ping. Estamos desesperado

Isbelia Medina dijo...

Buenas.Tengo el smoothwall instalado, pero accede a ciertas páginas web que estan en otra red. desde allí la máquina donde esta el smootwall no reponden al ping. Estamos desesperado