====== Cómo configurar pfSense como un cortafuegos transparente ====== ===== Introducción ===== Para quien lo desconoce, [[http://www.pfsense.org|pfSense]] es un excelente cortafuegos, proveniente de una bifurcación del proyecto llamado [[http://m0n0.ch/wall|m0n0wall]], basado a su vez en [[http://www.freebsd.org|FreeBSD]]. Es un cortafuegos muy robusto y funcional, con unos requerimientos de hardware bastante bajos, lo cual permite utilizar por ejemplo una PC con sólo un microprocesador x86 a 200 MHz y 128 MB de memoria para gestionar un enlace de hasta 8 mbps.((Según los [[http://doc.pfsense.org/index.php/Hardware_requirements|requerimientos]] que han publicado sus desarrolladores.)) En este pequeño tutorial intentaremos explicar cómo configurar [[http://www.pfsense.org|pfSense 2.0.1]] como un cortafuegos transparente, haciendo un puente entre dos interfaces de red. Naturalmente, se asume que se dispone de una PC con al menos dos interfaces de red (para los efectos del tutorial, utilizaremos WAN, LAN y OPT1), en la cual se ha instalado pfSense 2.0.1. ===== Preparativos ===== Lo primero es acceder a la interfaz web, que por defecto está en la dirección https://192.168.1.1 Una vez en la interfaz de configuración, es necesario accdeder a //Firewall// -> //NAT//, en la pestaña //Outbound// marcamos la opción que dice "Manual Outbound NAT rule generation (Advanced Outbound NAT (AON)" y hacemos clic en el botón //"Save"//, después de lo cual debemos eliminar las reglas que se generan, y aplicar los cambios. A continuación, nos dirigimos a //System// -> //Advanced// -> //System Tunables// para modificar los siguientes parámetros, de modo que queden así: ^ Parámetro ^ Valor ^ Descripción ^ | net.link.bridge.pfil_bridge | 1 | Permite filtrar los paquetes que pasan por el puente (si el valor se deja en cero, se permite todo el tráfico). | | net.link.bridge.pfil_member | 0 | Evita tener que declarar reglas en las interfaces que componen el puente. | ===== Configuración ===== Una vez terminados los preparativos, se puede proceder a crear el puente. Para esto vamos a //Interfaces// -> (//assign//) y una vez en dicha pantalla, seleccionamos la pestaña //Bridges//, que debería estar vacía. Para crear un nuevo puente, hacemos clic sobre el botón que tiene un símbolo de suma. Debería salir una pantalla con un listado de interfaces; manteniendo presionanda la tecla Ctrl, hacemos clic en las dos interfaces que queremos colocar en el puente, en este caso, **WAN** y **OPT1**. Como descripción, podemos poner lo que deseemos, como por ejemplo la propia palabra "Puente". A continuación, seleccionamos la pestaña //Interface assignments// y añadimos la nueva interfaz, que por defecto debería tomar el nombre **OPT2** (u **OPT1**, si sólo teníamos WAN y LAN). Una vez hecho esto y guardados los cambios, vamos a //Interfaces// -> OPT2, marcamos la casilla que permite habilitarla y opcionalmente cambiamos el nombre de la interfaz (por ejemplo a **BR0** si queremos que se parezca un poco a la nomenclatura de Linux). Usualmente se asigna una dirección IP al puente, de modo que como tipo de interfaz seleccionamos //Static//, escribimos la dirección, seleccionamos la máscara de subred (32) y agregamos la dirección de la puerta de enlace (Gateway), que usualmente será la direción IP del enrutador. Finalmente guardamos y aplicamos los cambios. Al asignarle al puente una dirección IP, conviene limpiar las direcciones que tenían asignadas las interfaces que lo componen, lo cual podemos hacer accediendo a cada una en el menú //Interfaces// y seleccionando como tipo de interfaz //"None"//. Finalmente, será necesario crear las reglas para el puente, para lo cual se debe acceder a //Firewall// -> //Rules//. De lo contrario, no se moverá tráfico alguno por él. ===== Notas ===== (Se aceptan mejoras a este tutorial) ===== Atribuciones ===== * **Autor:** Hugo Florentino