PFsense: firewall perimetral (I)

En este primer artículo vamos a explicar la instalación de este firewall basado en FreeBSD (), así como las múltiples opciones de instalación de paquetes que contiene. PFsense deriva de otra distribución anterior llamada monowall, más centrada en instalación de equipos embebidos (se ejecuta por completo en memoria RAM), ya que PFsense se puede instalar prácticamente en cualquier PC y tiene la capacidad de poder ser instalado en un disco duro.

Entre las funciones más destacables de PFsense se encuentran:

  • Firewall: Filtrado (por IP, protocolo, puerto etc…), Limitación de conexiones, enrutamientos por regla, creación de alias.
  • Tabla de estado: informa del estado de los servicios y conexiones.
  • NAT (Network Address Translation): con cuatro tipos de configuraciones.
  • Multi-WAN: Se pueden agregar varias conexiones de Internet con diferentes proveedores para poder usar balanceo de carga, usándose para distribuir equitativamente el ancho de banda o utilizar otra conexión en caso de que un ISP falle.
  • Servidor VPN: con OpenVPN, IPsec o PPTP.
  • PPPoE Server.
  • Gráficos RDP.
  • Soporte de DNS dinámico.
  • Servidor DHCP.
  • Portal cautivo, servidor Radius, Proxy Squid, IDS/IPS Snort etc.

Pfsense soporta la instalación de diversos addons que le aportan gran variedad de utilidades. Tanto PFsense o cualquier distribución basada en OpenBSD usa en el corazón de su firewall Packet Filter (PF), a diferencia de los sistemas con kernel de linux, que usan IPtables. La diferencia a grandes rasgos es que PF es mucho más rápido, pero IPtables tiene características más avanzadas en su configuración, que en este caso pueden ser prescindibles.

La configuración de PFsense se puede hacer íntegramente por HTTP, aunque siempre podemos configurar más a fondo el sistema desde el propio terminal, por ejemplo conectando por SSH. Se puede descargar o bien una imagen ISO o bien una imagen preparada para utilizar en compact flash. Para el ejemplo de este post hemos descargado la imagen ISO.

Para la instalación voy a usar una máquina virtual con VMware. La Opción de instalar el Sistema Operativo desde una imagen ISO:

Elegimos la opción de instalar el tipo de sistema operativo y seleccionamos FreeBSD:

En la configuración asignamos 1 Gb de RAM, 20 Gb de disco duro y 3 interfaces de red una WAN (la que se conecta directamente a Internet) y dos más, una para una red interna más protegida y otra para una zona DMZ donde habrá servidores web accesibles desde Internet.

En Edit-> Virtual Network Editor creamos las 3 interfaces y aplicamos un rango a todas menos a la primera (vmnet0), ya que ésta se conecta directamente a internet a través de wlan0 (la interfaz inalámbrica del equipo anfitrión), para vmnet1 (192.168.1.0/24) y para vmnet2 (192.168.2.0/24):

Ahora se asocian las interfaces creadas para la máquina virtual con las interfaces vmnet creadas en el editor virtual, mediante “Edit virtual machine settings”, quedando de la siguiente forma:

Una vez está la máquina virtual configurada la encendemos. En el primer menú presionamos enter para efectuar el arranque por defecto. Poco después nos aparecerá la opción de instalar, para ello pulsamos “I”:

Cambiamos el mapa del teclado a español:

Seleccionamos Custom install:

El disco duro donde procedemos a hacer la instalacon viene denominado como ad0

Formateamos el disco y creamos las particiones (lo hace de forma automática, creando una partición de intercambio swap con tamaño al doble de la memoria RAM del sistema). En el siguiente paso, elegimos la primera opción:

Una vez finalizada la instalación, se puede deshabilitar el arranque desde imagen ISO y reiniciar la máquina virtual. Una vez hecho, el sistema empezara preguntandonos por la configuración de las interfaces de red:

En este caso se puede ver que ha reconocido 3 interfaces. La configuración de las VLANs de momento no la vamos a efectuar, por tanto pulsamos “n”. Ahora nos pregunta por las interfaces físicas, y asignamos cada una a emX, siendo X=0,1 o 2:

Ya tenemos nuestra interfaz WAN asignada a em0, y las otras dos interfaces a em1 y em2.

En el menú principal escogemos la opción de asignar IP a las otras dos interfaces (opción 2):

Quedando de la siguiente manera:

A partir de ahí, basta con acceder a nuestro firewall desde el navegador poniendo http://192.168.1.2 o http://192.168.2.2, dependiendo desde la interfaz de red desde la que estamos accediendo. En el próximo artículo explicare la configuración avanzada de todo el sistema de PFsense y más adelante veremos las opciones y aplicaciones que se pueden añadir.