pfSense cómo cortafuegos en red interna de VirtualBox

Os explico en esta entrada cómo configurar un cortafuegos con el producto pfSense, en una red interna de VirtualBox. La idea es instalar y configurar el popular producto pfSense, usando la ISO que nos podemos descagar desde su web..

A este host le vamos a configurar dos tarjetas de red, una para comunicarse con la red local que tengamos en casa o en la oficina, que funcionará como WAN; la otra, en cambio, servirá para comunicarse y dar servicios a todas las máquinas virtuales que tengamos en la red interna, que nos servirá como LAN, en nuestro PC. 

En mi caso tener esta configuración es básica, ya que tengo en mente futuros proyectos, como por ejemplo el despliegue de máquinas mediante plantillas con Fog, que cómo utiliza PXE y necesita dhcp para su funcionamiento, no la quiero liar parda con el resto de equipos de la red casa.

Logo actual de pfSense

Creando la máquina virtual con Debian 10 y pfSense

Pero bueno, la mejor manera de decir es hacer, así que vayamos por partes. Primero de todo he creado una máquina virtual a la que le he añadido dos tarjetas de red:

Interfaz WAN

Interfaz LAN

Recuerda que este producto esta basado en FreeBSD, por lo que debemos indicar esta versión al crear la máquina virtual:

Indicamos la versión del sistema operativo

Además le he asignado 2 GB de memoria, 12 GB de disco duro y dos CPU, creo que con eso tenemos más que suficiente.

A la máquina le puesto el nombre de «pfsensefirewall«. La ISO nos la podemos descargar desde el apartado de descargas. Yo he descargado la versión 2.5.1, que a fecha de esta entrada es la última. Una vez descargada la montamos en la máquina virtual y empezamos con la instalación. Recuerda que puedes montar el CD desde «Dispositivos»  y «Unidades ópticas«

Nos hará una serie de preguntas durante la instalación. Primero seleccionamos el idioma, que yo he seleccionado el español, el teclado y el particionado. En este caso yo he escogido el automático con BIOS. La instalación es muy rápida. Al finalizar acuérdate de desmontar el CD para que no se inicie otra vez la instalación.

Al reiniciar, tras el proceso de arranque, nos preguntará sobre las configurar la interfaz WAN y LAN, esta parte no es muy complicada. En el primero caso indicamos que el router de nuestra casa nos asignará la IP vía DHCP, y en la segunda interfaz creamos una red LAN, en mi caso la subred 192.168.122.0, con una máscara de 24 bits.

Menú de consola de pfSense con las interfaces configuradas

Una vez configuradas las interfaces os preguntaréis, pero esto no tiene una consola web. Es cierto, pero si vamos ahora al navegador y ponemos la dirección IP no aparecerá ninguna web. Para habilitarla, desde el menú debemos irnos a la shell, indicando el número 8. Una vez en la consola, debemos escribir:

pfctl -d

De esta manera ya tenemos la web accesible:

Consola de administración web de pfSense (click para ampliar)

La verdad que este producto es muy completo y quizás para lo que lo vamos a utilizar es matar moscas a cañonazos, pero creo que es una buena oportunidad de ver esta herramienta, aunque sea solo un primer vistazo.Tal y como se ve en la parte de derecha, tenemos la información de las dos interfaces configuradas.

Para consultar, configurar y modificar el DHCP en la red LAN, nos debemos ir a «Services» y «DHCP Server«

Configuración de DHCP en la red LAN

Pero la pregunta es, ¿si añado una máquina virtual en la red interna se le asignará una IP? ¿Tendrá salida a Internet?

Vamos a ello, tengo unas cuentas máquinas virtuales con GNU/Linux, he asignado la red internal a una de ellas y la he reiniciado.

Confirmamos la asignación de IP vía DHCP

Tal y cómo se muestra se le ha asignado la IP 192.168.122.10. Por lo que la asignación ha sido correcta.

De hecho podemos ver las asignaciones de IP actuales desde el panel de administración en «Status» y «DHCP Leases»

Vemos las asignaciones actuales de DHCP

Vale, pero ¿tiene salida a Internet?

El equipo no tiene acceso a Internet

Pues no, debemos habilitarlo desde la sección «Firewall» y «NAT«,y allí añadir una nueva regla en «Port Forward«

Habilitar salida a Internet para la red LAN

Habilitamos el puerto 80 que es el que utiliza el protocolo HTTP para toda la red LAN.  Ahora sí, ya podemos actualizar:

Ahora podemos actualizar los repositorios de Ubuntu

Y bueno, esto es todo por hoy que la entrada ya ha quedado algo extensa. Lo que hemos visto es apenas el 1% de lo que se puede hacer con pfSense. Si os ha parecido interesante podéis dejar vuestros comentarios o compartir la entrada en vuestras redes sociales. Nos vamos leyendo.