Instalando y configurando pfSense v2.4.1

pfSense es un firewall/router de código abierto basado el pionero en este tipo de software, m0n0wall. Corre sobre FreeBSD por lo que tiene todas las fortalezas de este en el área de las comunicaciones. Su comunidad es muy activa (Foros, Twitter, Reddit)  y el proyecto tiene actualizaciones regulares, ya sea agregando nuevas funcionalidades o por corrección de errores, la gran mayoría del desarrollo esta financiada por la empresa Netgate, la cual comercializa routers con el software precargado al igual que soporte para los mismos.

Ademas de la funciones básicas de router/firewall, pfSense viene con múltiples funcionalidades integradas desde la instalación (DNS, DHCP,  OpenVPN, IPsec, LT2P, Portal Cautivo, NTP y muchos más) y muchas otras que se pueden integrar a través de paquetes (Squid, Haproxy, Suricata, Freeradius), todo configurable por su GUI, bastante intuitiva y ordenada por tipo de servicio. Otra función sumamente practica e indispensable en muchos casos, es la posibilidad de configurar dos o mas equipos en alta disponibilidad, reduciendo así la probabilidad de interrupciones en el servicio.

Pre requisitos

Los requisitos varían según el uso que se le vaya a dar al equipo, ya que una instalación básica no requerirá los mismos recursos que un proxy, mas si se le agregan tareas de antivirus (que con los cambios de versión, esta función basada en clamav ha desaparecido de los paquetes instalables, pero es solo cuestión de tipo para que vuelva).

Con la ultima versión, ha desaparecido la posibilidad utilizar hardware de 32 bits, por lo que solo es posible la instalación en sistemas de 64. También es posible (con algunos ajustes) la instalación en maquinas virtuales (KVM, VirtualBox, VMWare) y recientemente también en la nube a través de las imágenes para Azure y AWS (con costo por supuesto).

En resumen, un equipo (físico o virtual) con por lo menos 1GB de memoria y un disco de 3GB y por lo menos dos interfaces de red (puede llegar a ser solo una en caso de tener un switch con capacidad de taguear VLANS).

Lo otro que precisaremos es la imagen para la instalación, ya sea para grabar en un CD/DVD o en una memoria USB (Debemos asegurarnos que nuestro equipo tenga forma de bootear de alguno de esas dos formas).

Para el primer caso, descargaremos la imagen ISO y la quemaremos con un programa que tenga esta función (CDBurnerXP por ejemplo) o con el quemador de imágenes integrado en Windows. Esta es la opción para instalar VM, ya que cargaremos esta imagen en la unidad removible virtual del mismo. Para el segundo, bajaremos la versión IMG y grabaremos la imagen a una memoria USB, para esto, hay varios programas que hacen muy bien su trabajo, LiLi, Rufus o UNetbootin, los tres son muy sencillos de usar y muy directos en su funcionamiento.

Las dos opciones están disponibles en la página de descargas.

Booteo e instalación

Ya tenemos todo lo necesario, colocamos el instalador en el medio elegido y le decimos al equipo que arranque de él.

img1

Lo primero que veremos es la pantalla de booteo (img1), en este caso solo deberemos esperar que el contador llegue a 0 o presionar enter para bootear en modo multiusuario (el modo normal en le que corre FreeBSD).

Continuando, aceptaremos el aviso de copyright de la marca y prohibición de distribución presionando enter nuevamente.

 

 

img2

La pantalla siguiente (img2), nos dará tres opciones, la primera es la instalación, la segunda nos dejara en una consola para realizar algún rescate de un sistema previamente instalado y la tercera sera una restauración desde una archivo de configuración anterior (muy útil en casos de migración o de que por una configuración incorrecta, hayamos perdido acceso al software).

Elegiremos la primer opción para comenzar con la instalación.

Las siguiente opciones con la selección del mapeo del teclado, por defecto va en US, como raramente usaremos la consola directamente, lo podemos dejar en el valor que nos propone sin problemas.

img3

El siguiente menú (img3) se ocupa del particionamiento del disco. Las dos opciones que debemos considerar aquí son «Auto (UFS)» y «Auto (ZFS)», UFS consume menos recursos pero es mas propenso a errores (principalmente por fallas de poder), ZFS es lo contrario, consume mas recursos pero cuenta con métodos de recuperación superiores (también es superior en otro tipo de sistemas ya que cuenta con snapshots y facilita el armado de RAIDS).

Para este tutorial, iremos por la opción de UFS.

 

img4

Este proceso, particionara el disco, copiara los archivos y nos dará la opción de hacer alguna modificación extra al sistema antes de terminar la instalación.

Seleccionando «Reboot» en la pantalla siguiente (img4), habremos terminado la instalación, el equipo se reiniciara, retiraremos el medio con el que booteamos en el primer paso para permitirle arrancar desde el sistema recién instalado.

 

Configuración Inicial

Ahora comenzaremos con la configuración mas básica del sistema, elegiremos las interfaces físicas que se corresponderán con nuestra LAN, WAN y OPTX (en caso de tener mas de dos interfaces), sus direcciones IP y para el caso de la WAN, su puerta de enlace (que en un principio sera la salida de toda la red que se encuentre detrás de nuestro router).

Antes de comenzar este proceso, les recomiendo desconectar todas las interfaces de red, ya que al elegirlas, sera mas facil dejar al sistema detectarlas por un cambio en el estado del link.

img5

Luego de la carga del sistema operativo (img5), veremos nuestras interfaces de red, su identificación (para nuestro caso, al tener chip Realtek, sus identificadores seran re0 y re1, pero pueden llegar a ser em para Intel, vr para interfaces VirtIO, vm para interfaces de VMWare).

Como ejemplo, verán una de la interfaz re0 sin link y la re1 conectada.

La primer pregunta que nos hará el sistema es si queremos definir las VLAN en ese momento, normalmente esto no es necesario a esta altura, ademas de que podemos definirlas luego de terminada estas configuraciones y de una forma mas completa a través de la GUI. Presionamos «n» para comenzar a asignar las interfaces físicas a nuestras redes.

img6

Lo primero que se nos ofrecerá es configurar la interfaz WAN, para ello tenemos dos formas, escribimos el nombre de la interfaz (re0 o re1 en este caso) o presionamos «a» para la autodetección, si elegimos esta opción, lo único que deberemos hacer, es conectar la interfaz física a nuestro switch/modem/ONT para que detecte el link levantando.

Como ejemplo de los dos métodos (img6) configuraremos la WAN con autodetección y la LAN ingresando el nombre de interfaz directamente. Si tenemos mas interfaces para configurar procederemos de la misma forma con todas ellas.

Para terminar, dejaremos la ultima opción en blanco y confirmaremos que los datos que ingresamos son correctos para ingresar en la ultima parte de la configuración básica, la configuración de las direcciones.

img7

Por defecto, se asignan para la LAN la red 192.168.1.1/24 y la WAN en DHCP, si estos parámetros funcionan para el ambiente en el que esta, ya podemos dejarlo asi, sino eligiendo la opción dos, podremos asignar las que queramos. En caso de querer otro tipo de configuración para la WAN (PPPoE, PPP, L2TP o PPTP) la haremos directamente por la GUI.

 

 

Para nuestro ejemplo, configuraremos la LAN con la red 192.168.200.1 y mascara /24 (255.255.255.0) (img8) y la WAN con 10.181.0.220, mascara /16 (255.255.0.0) y gateway 10.181.0.254 (img9)

 

img8
img9

 

 

 

 

 

 

 

 

img10

 

Con esto habremos completado la configuración básica de nuestro router, para comprobarlo, configuraremos un host en la misma red que definimos para la interfaz LAN y con esa ip como gateway (ej 192.168.200.2/24) y ejecutaremos algunas pruebas.

Desde una terminal (o una ventana de cmd para Windows), comprobaremos que nuestra direccion este en la red correcta (tanto si la asignamos nosotros como si fue asignada por el DHCP de nuestro nuevo router) con el comando ifconfig (ipconfig para windows),  correremos un ping contra la ip de la interfaz LAN para ver que este disponible y si nuestra WAN ya quedo con los datos correctos (IP fija o asignada por DHCP por otro router) podemos confirmar que el DNS este funcionando correctamente con el comando nslookup y hacer un ping a algún sitio externo a nuestra red para confirmar que tenemos salida a internet.

 

 

Ya podremos también acceder a la interfaz web, desde una navegador poniendo la dirección https://192.168.200.1 para nuestro ejemplo y proporcionando las credenciales por defecto admin/pfsense, donde se nos presentara un Wizard de configuración (Esto lo veremos en la siguiente entrada)

Deja un comentario