m0n0wall Configurando Reglas De Firewall y NAT

Últimamente he estado trabajando un poco con Firewall's y decidí hacer unas pruebas con un Apliancce basado en FreeBSD llamado m0n0wall, este es un proyecto dedicado completamente a administrar de manera centralizada la seguridad de una o varias redes utilizando como base un sistema operativo capaz de hacer las veces de router y Firewall y con la gran ventaja de ser software libre.

Este cuenta con una GUI en PHP, también es de fácil configuración y bastante intuitivo además sus requerimientos de sistema dan una gran ventaja ya que puede ser instalado en una maquina con requisitos mínimos tales como:

  • CPU con procesador 486 o superior
  • Almacenamientos de arranque: disco duro, CD-ROM/Floppy o unidades USB.
  • 64 MB de RAM o superior
  • Dos tarjetas de Red Ethernet
  • Un equipo cliente a la red, un monitor, un teclado para su configuración inicial.
 
Sabiendo esto procederé a mostrarles un poco de lo que quería hacer.

Requerimientos:
Dentro de lo que debía hacer se comprendía lo siguiente

  • Definir 3 zonas en el Firewall INTERNET, LAN y DMZ.
  • Implementar SSH, un servidor FTP y un servidor WEB en la red DMZ para que estuvieran abiertos al publico.
  • Implementar SSH, un servidor FTP y un servidor WEB privado que solo sea visible para los usuarios de la LAN.
  • Se deben establecer reglas de acceso que le permita a los usuarios de la LAN salir a INTERNET sin problemas, pero el tráfico que proviene de INTERNET debe ser filtrado adecuadamente para que solo los servicios en la DMZ sean accesibles desde la WAN.  
  • Además de esto debía permitir acceso al administrador en la LAN mediante Rdesktop
Teniendo claros los requerimientos procederemos a explicar un poco lo que haremos.

Conceptualizando:

DMZ: según Wikipedia, una zona desmilitarizada (DMZ, demilitarized zone) o red perimetral es una red local que se ubica entre la red interna de una organización y una red externa, generalmente Internet. El objetivo de una DMZ es que las conexiones desde la red interna y la externa a la DMZ estén permitidas, mientras que las conexiones desde la DMZ sólo se permitan a la red externa.

Sabiendo esto y teniendo claro el concepto de Firewall explicado en mi anterior post (Configurando Firewall En Un Router Cisco (3700) Con Soporte Para SDM En GNS3) comenzaremos a simular la siguiente topología dentro de maquinas virtuales en VirtualBox.

En mi red DMZ implementare una maquina virtual con sistema operativo CentOs actuando como servidor WEB y FTP además este servidor sera accesible mediante SSH.

En mi red LAN tendré un servidor WEB y FTP, esta también sera accesible mediante SSH y también tendrá CentOs como sistema operativo, además tendré una maquina virtual con Windows XP desde la cual haré pruebas de accesos y administrare la interfaz gráfica de m0n0wall a esta maquina podre acceder mediante Rdesktop.

En m0n0wall tendré 3 tarjetas de Red, la primera en red interna llamada LAN, la segunda en adaptador puente que se conectara con la WAN y desde la cual haré pruebas de ingreso con mi maquina real y la tercera en red interna llamada DMZ Esto va a ser lo primero a configurar, además debemos tener presentes las direcciones MAC de las diferentes tarjetas de red para saber identificarlas en el momento de configurarlas en el m0n0wall.

NOTA: Aclaro que m0n0wall solo soporta drivers de tarjetas Pcnet-PCI II Am79C970A en VirtualBox las demás no son soportadas o por lo menos en mi caso solo funciono esta.

Así configuraremos entonces las tarjetas de red.

 
 

Cuando iniciamos nuestra nueva maquina virtual de m0n0wall podemos observar 7 sencillas opciones, en primer lugar elegimos la opción 7 que nos permite instalarlo en el disco duro.


Se nos mostraran los discos duros (si tuviésemos varios) y los respectivos nombres de estos, en mi caso podemos ver que primero se muestra  el disco ad0 y luego me pregunta el nombre del disco donde instalare el m0n0wall que en mi caso sera ese mismo, luego de eso la maquina se reiniciara.


Antes de que la maquina vuelva a encender, debemos retirar el CD de instalación de m0n0wall o en su defecto la imagen ISO, si no saben como se retira una imagen ISO de VirtualBox se los muestro en la siguiente imagen.


Ahora iniciamos de nuevo el m0n0wall observando entonces que la opción 7 para instalarlo ya no esta presente, procedemos entonces a configurar las tarjetas de red, las cuales tienen nombres como "LncX" para identificarse, si no supieran cual tarjeta es cual pueden guiarse viendo la dirección MAC para identificarlas.


Primero nos pide configurar la interfaz LAN que sera la Lnc0, luego la WAN que sera la Lnc1 y por ultimo nos pregunta que si tenemos mas interfaces opcionales, entonces le diremos que utilizaremos la Lnc2 la cual sera la DMZ, luego de eso el Firewall se reiniciara.


Ahora suponemos que las interfaces quedaron bien configuradas, por defecto la interfaz WAN se configura mediante DHCP, entonces probaremos dando un PING hacia internet para ver si hay conexión, en caso de no ser exitoso o no contar con un servidor DHCP que le asigne dirección a la WAN mas adelante procederemos a modificarlo, en mi caso fue exitosa. A demás, a la interfaz LAN se le asigna por defecto la IP 192.168.1.1 por esta IP es que nos conectaremos para administrar el m0n0wall mediante HTTP.


En mi caso tengo una maquina dentro de la LAN con Windows XP, esta esta conectada a la interfaz LAN del m0n0wall y tiene la IP 192.168.1.2 y el gateway 192.168.1.1 (la cual es la IP de la LAN del m0n0wall). Probé conectividad entre el m0n0wall y el cliente XP mediante un PING que fue exitoso.


Ahora me conectare a la interfaz grafica para administrarlo, esto desde un navegador introduciendo la direccion IP de la LAN del m0n0wall. El usuario por defecto es admin y el password es mono.


Configuración Básica:

Las opciones básicas de configuración las veremos en esta pantalla, donde añadiremos valores inherentes al nombre de host, dominio, usuario, contraseña, puerto para conectarse a la interfaz gráfica, entre otros valores.


Configurando Las Interfaces:

La interfaz LAN ya tiene una dirección IP definida por defecto, si quisiéramos cambiarla por una a nuestro gusto este es el área para hacerlo, en mi caso solo a manera de practica la dejaremos como esta.

Ahora la WAN viene configurada para recibir dirección mediante DHCP, si no contaran con un servidor que asigne dirección en la WAN en esta área podemos modificarlo.


Ahora la interfaz OPT1 sera la que vamos a habilitar para nuestra DMZ, basta con asignarle una dirección y habilitarla, en mi caso la IP sera la 192.168.2.1.


Configurando NAT:

Como ya habremos hablado de NAT en tutoriales anteriores, necesitamos que las paginas WEB el FTP y el SSH que estan en la DMZ sean visibles desde la WAN ademas necesitamos que desde la WAN se acceda mediante VNC a un equipo de la LAN, pero para esto no queremos que se conecten directamente a la interfaz privada sino a la interfaz publica asignada a nuestra WAN, es decir que si alguien quisiera entrar al FTP de la DMZ hara una peticion no a la DMZ como tal sino a la WAN y de alli se redireccionara a la DMZ, para ello configuramos las reglas de NAT de la siguiente manera.

Primero definimos la interfaz externa, el protocolo, el puerto  externo al que se harán las peticiones, la IP interna donde serán reenviadas las peticiones (192.168.2.2 osea la IP del servidor WEB en la DMZ) y el puerto interno de dicha IP, en la siguiente imagen se muestra como se hace NAT a una pagina WEB, pueden tomar esta imagen de plantilla para cualquier protocolo.


Mis reglas de NAT quedan de la siguiente manera: las peticiones FTP, SSH y HTTP, serán reenviadas a sus respectivos puertos al host 192.168.2.2 en la DMZ, y las peticiones al puerto 3389 para Rdesktop serán desviadas a el equipo en la LAN 192.168.1.2.


Configurando El Firewall:

Ahora configuraremos el firewall para que haga las opciones pedidas en los requerimientos mostrados anteriormente, aqui configuraremos la accion a aplicar (aceptar/rechazar) la interfaz que sera afectada, el protocolo, el puerto de origen y destino, entre otras. En la siguiente imagen se muestra una regla de Firewall que permite a la LAN hacer cualquier tipo de peticiones HTTP.


Mis reglas de Firewall quedaron de la siguiente manera: La LAN puede hacer consultas HTTP, HTTPS, DNS, FTP y SSH a cualquier host en cualquier puerto, además de esto puede hacer PING a la DMZ, y el resto de consultas sera denegada.


La WAN permite el ingreso de consultas HTTP, SSH y FTP desde cualquier origen con la DMZ como destino, además permite PING a cualquier host y deniega el resto de trafico, tambien permite el ingreso desde la WAN hacia la LAN mediante el puerto 3389 de Rdesktop.

La DMZ permite las respuestas por el puerto 20 de la LAN y la WAN para el FTP activo.


El Servidor Privado en la LAN:

Este sera el servidor privado en la LAN, a este unica y exclusivamente podran ingresar usuarios de la LAN, su IP es la 192.168.1.10


Estos son los puertos que tiene abierto este servidor FTP, SSH y WEB son los que nos importan, solo dentro de la LAN podremos acceder a estos servicios.


El Servidor Publico en la DMZ:

Este es el servidor que publicaremos en internet, tiene la IP 192.168.2.2 y cualquier usuario tanto desde la LAN como desde la WAN podrá acceder a el.


Los servicios que publicaremos son estos FTP, SSH y WEB.


Probando Probando:

Comenzaremos probando desde la LAN.

Como lo definimos en el Firewall podemos acceder a HTTPS en la WAN.


Podemos acceder tambien a HTTP de la LAN a la WAN.

Contamos también con salida SSH desde la LAN a la DMZ.

 

Podemos dar PING a la DMZ.

Y podemos acceder al FTP de la DMZ.


Tambien desde la LAN podremos acceder a los servicios privados que se están disponibles en el servidor LAN.


Ahora probaremos desde la DMZ:

Si intentamos entrar a los servicios de la LAN obtendremos un error de conexión ya que los servicios de la LAN son privados.


Ahora intentaremos desde la WAN:

Como no sabemos la IP que nos ha asignado el servidor DHCP en la WAN la buscaremos en el m0n0wall de la siguiente manera.


Y desde un host que no este ni en la DMZ ni en la LAN intentaremos conectarnos a esa IP publica.


Y como podremos observar al acceder mediante SSH y verificar la direccion estaremos dentro del host en la DMZ, al acceder al FTP de la DMZ sera exitoso y lo mismo para el servidor WEB, es decir que nuestra LAN quedo protegida.

Lo unico que podremos hacer desde la WAN hacia la LAN sera conectarnos mediante Rdesktop, en la siguiente imagen podremos apreciar entonces un intento de conexión mediante Rdesktop a la IP publica que sera reenviado al host en la LAN, aclaro que obviamente el cliente en la LAN debe tener habilitado el acceso mediante Rdesktop.



Espero que les haya servido, si tienen alguna duda no duden en preguntarme y recuerden que comentar es agradecer.


Si has encontrado útil este artículo puedes compartirlo desde tu blog, página Web o foro.




5 comentarios:

::::Diego Yepes::::: dijo...

huy amigo que buen pero buen manual excelente
muchisimas gracias , me ha servidor mucho, saludos desde medellin colombia, muy muy agradecido que manualzote, lo imprimi y lo mande empastar y todo

Alejandro Calderon dijo...

Me alegra mucho que te haya servido, ojalá compartas con alguien más esa información, un abrazo!

Yaxkin Xibkay Zacek Kundalini Zuyua Xiu dijo...

en mi caso solo tengo WAN Y LAN, a su vez en la LAN implemente el portal cautivo...... pero quiero tener mi web server en la red lan...... o es forzozo que debo tener mi puerto DMZ, saludos cordiales desde puebla puebla mexico

Alvaro dijo...

Si no te hace ping a internet porque puede ser ?

Vladimir García C. dijo...

Hola amigo y para bloquear el puerto 25 para evitar el envio de SPAM lo pongo tanto en origen como destino

MIL GRACIAS

Publicar un comentario

 
Licencia Creative Commons
Este obra está bajo una licencia Creative Commons Atribución-NoComercial-SinDerivadas 2.5 Colombia.