# PfSense


[pfsense.org](https://www.pfsense.org/) es una distribución personalizada de FreeBSD adaptado para su uso como Firewall y Router. Se caracteriza por ser de código abierto, puede ser instalado en una gran variedad de ordenadores, y además cuenta con una interfaz web sencilla para su configuración.
Elegí esta sistema operativo por las facilidades que ofrece en su administración y lo liviando puede ser para utilizar un Firewall.

### Requerimientos minimos para la instalación de PfSense

- Procesador minimo de 1.5Ghz doble nucleo, arquitectura 64bits
- 2 GB de RAM
- Disco duro de estado solido 60GB Minimo
- 2 Tarjetas de red (Minimo)

La instalación de PfSense es sencilla, solo es bootear la maquina que vas ai instalar con una memoria usb creada usando la imagen iso que descargas de la pagina y seguir paso a paso las instrucciones en pantalla. Si necesitas más detalle puedes seguir est guia: https://www.redeszone.net/2018/03/30/pfsense-2-4-3-ya-esta-aqui-la-nueva-version-este-sistema-operativo-orientado-firewall/ Ignora la parte en donde hablan de una maquina virtual y sigue desde el punto que se arranca la instalación.

- Lo primero que se debe hacer es configurar las interfaces WAN y LAN
- La interfaz WAN es la salida a internet que vas a utilizar para la RED
- La interfaz LAN es la conexión al resto de tu red y debe tener una configuración de red con una mascara de subred pequeña.

## Paquetes a instalar

Para preparar nuestro PfSense debemos instalar los siguientes paquetes que vamos utilizar.

- FreeRADIUS: con este paquete haremos la autenticación de usuarios
- pfBlockerNG: Es una herramienta para hacer filtrado de sitios maliciosos.
- Quagga_OSPF: Se puede utilizar para relizar enrutamientos avanzados a otrasa redes.
- acme: Se utiliza para manejar los certificados de LetsEncrypt

### Configuración de FreeRADIUS

Lo primero que se debe hacer es configurar el servidor de Autenticación que vamos a usar en la red.
1. La configuración principal se realiza en el menú **Servicios**
1. Se deben crear las interfaces:
    - Se crea una interfaz de AUTH que corre en el puerto 1812
    - Se crea otra interfaz para ACCT (Accounting) en el puerto 1813

1. En la configuración del sistema (menú Sistema) ir a **Gestión de Usuarios**
1. Buscar la pestaña **Servidores de autenticación**
1. Añadir un servidor de autenticación tipo "RADIUS" o "RADIO"
    - El nombre puede ser cualquiera ejemplo: auth_server_red_comunitaria
    - Seleccionar protocolo PAP para que puedas usar contraseñas MD5 en los usuarios.
    - Secreto compartido es una contraseña que se puede generar de forma aleatoria
    - Puerto de autenticación: 1812
    - Puerto de cuenta: 1813
    - Atributo RADIUS NAS IP: Elegir la LAN

1. Despues de realizar eso ya se puede regresar al menú de servicios / FreeRADIUS y empezar acrear usuarios.
    - Se debe seleccionar contraseña MD5
    - Cuando se crea el usuario se puede determinar la cantidad de ancho de banda que puede tener.

### Portal Cautivo

1. Ir al menu Servicios y bucar **Portal Cautivo**
1. Añadir un portal cautivo, poner nombre y descripción y dar clic en "Guardar y Continuar"
1. Aparece una ventana en la que debes activar la casilla que dice "Habilitar portal cautivo" luego dar clic en guardar
1. Al dar guardar aparecera la configuración general se debe hacer lo siguiente:
    - Seleccionar la interfaz LAN en donde va a funcionar
    - Como vamos autilizar el portal cautivo en una RED MESH se debe desactivar el filtrado por mac. (En una siguiente versión de esta configuración veremos como poder activar este filtrado en una RED MESH)
    - En la sección de autenticación seleccionar el servidor de autenticación que creamos cuando configuramos el servidor RADIUS
    - Seleccionar la opción Per-user bandwidth restrictions, para que cuando creemos los usuarios en el RADIUS y definamos el ancho de banda que usa aplique la configuración.
    - Seleccionar un servidor de contabilidad que sera nuestro servidor de autenticación
    - GUARDAR LA CONFIGURACIÓN.

1. Puede activar la configuración de VAUCHERS para tener usuarios ocasionales en la red.
1. En la seccion de "Admitir las direcciónes IP" se deben agregar las direcciones IP de cada uno de los nodos de la RED MESH.

### Servicio DNS (DNS Forwarder)

El servicio de DNS Forwarder o Redireccionamiento DNS utiliza DNSMASQ un paquete de software libre para hacer cache dns y realizar redireccionamientos de DNS en una RED. Recomendanos utilizar este servicio, solo es activarlo y ya viene funcional.

Con este servicio podemos crear ALIAS de IP para definir un DNS Local para nuestros servicios Locales.

### Configuraciones adicionales en la RED de PfSense

1. Se debe crear una Pasarela o Gateway que anuncie la IP del nodo al que esta conectado el PfSense
1. Se debe crear una Ruta estatica por cada nodo que tenga la red para anunciar esta red en el PfSense y se pueda tener acceso a ella.
1. En la configuración de la LAN se debe agregar como puerta de enlace adicional la pasarela que creamos
1. En al configuración avanzada del sistema en la sección de Firewall and NAT (Cortafuegos y NAT) se debe habilitar la opción de filtrado de ruta estática o baypass static routes. Con esto nos aseguramos que el PfSense entendera a nuestros Nodos de la red MESH como una sola red.
1. Desactivar el servidor DHCP de PfSense, el servicio de DHCP lo proveera cada uno de los nodos de la red MESH
