La irrupción de la pandemia en nuestras cambió muchas cosas. Una de esas situaciones fue el fortalecimiento del teletrabajo y la necesidad de las empresas a amoldarse a un trabajo remoto debido a las necesidades que todos conocemos y la imposibilidad de poder tener contacto entre nosotros. Todo esto produjo una situación en la que muchas empresas tuvieron que amoldarse y empezar a emplear recursos para poder llevar a cabo el teletrabajo.
Figura 1: Cómo montar tu (Open) VPN con PFSense de forma sencilla
En muchas ocasiones, se cometieron errores, ya que se empezaron a exponer servidores a
Internet con todo el riesgo que eso podía conllevar. Las soluciones más factibles, incluso cómodas, sería la instalación de una
VPN para una empresa, independientemente del tamaño de ésta. Una forma segura (si todo está bien configurado) de acceder a los recursos internos de la organización y de disponer de una trazabilidad sencilla de quién se conecta y cuando a la organización.
En el artículo de hoy vamos a mostrar como se puede montar una
OpenVPN, la cual es una de las posibilidades que trae
PFSense, para implementar una
VPN. Si eres una persona que viaja mucho y necesitas conexiones seguras en diferentes ubicaciones puede interesarte este tipo de soluciones. Montar una
VPN en tu casa no es algo complejo a día de hoy con algo de conocimiento básico.
PFSense simplifica el proceso de creación de la
CA, del certificado del servidor, de los usuarios, etcétera.
Entorno: Comenzando
El entorno que vamos a suponer en este ejemplo es el siguiente:
- Disponemos de una solución PFSense.
- Tenemos una red LAN donde tenemos una serie de máquinas y recursos.
- Tenemos una red WAN, la cual es Internet.
Lo que vamos a hacer es configurar en
PFSense, el cual es el que se encuentra entre esa
LAN y esa
WAN filtrando el tráfico, es decir, actuando de
firewall, para poder implementar la
VPN en dicho punto.
La herramienta de Package Manager que dispone PFSense permite instalar paquetes y demás funcionalidades que hacen de esta suite all-in-one una buena solución para muchos entornos. Para poder exportar los perfiles de OVPN vamos a hacer uso de la instalación del paquete openvpn-client-export. Figura 3: Instalación del paquete openvpn-client-export
Ahora vamos a llevar a cabo la instalación del servicio de
OpenVPN en
PFSense. Nos dirigimos al apartado
VPN y seleccionamos
OpenVPN. Seleccionamos ahora “
Wizards”, el asistente que simplificará el proceso de creación de todo lo necesario.
Al acceder a “
Wizards” empezamos en el paso 6 del proceso y nos solicita el tipo de autenticación con el que se van a autenticar los usuarios de la
VPN. Puede ser una base de datos local de usuarios que mantenga
PFSense o podríamos incluso integrarlo con un servidor
RADIUS o
LDAP. En este ejemplo, usamos la base de datos de usuarios locales.
Figura 5: Configuración de RAS
Al pulsar sobre siguiente llegamos al apartado de generación de
CA. Es un apartado importante, ya que posteriormente podremos gestionar revocaciones de certificados de usuarios, entre otras cosas. Generamos la
CA para el servidor de
VPN, simplemente seleccionamos el tamaño de clave y el nombre que le daremos a la
CA. Además, hay que indicar los típicos parámetros de país, ciudad, tiempo de validez, etcétera.
Figura 6: Configuración de la Certification Authority
Damos a siguiente y nos encontramos con la generación del certificado del servidor. Seleccionamos el tamaño de clave y rellenamos los parámetros anteriores (tiempo de vida, país, ciudad, etcétera). Si alguna vez has implementado una
OpenVPN a mano con el uso de
OpenSSL para generar
CA y certificados o con
easy-RSA, verás la diferencia al instante, ya que la
GUI enmascara muchos pasos manuales que, aunque necesarios, podían ser tediosos.
Figura 7: Configuración del Certificado del Servidor
Ahora nos aparece un gran número de opciones dentro de la configuración del servicio de
VPN. Hay que ir analizando cada opción. Opciones como:
- Puerto: Es recomendable utilizar un puerto alto para montar el servicio, en vez de utilizar el puerto por defecto (1194).
- Descripción de la VPN: Nombre descriptivo.
- Tipo de protocolo: Sobre el que la VPN funcionará (UDP o TCP) y sobre que protocolo de red IPv4 o IPv6.
- Opciones criptográficas: TLS Auth, TLS Key, el tamaño de DH, algoritmos criptográficos que se pueden utilizar, el algoritmo de digest, etcétera.
- Configuración de red: De esto hablaremos un poco más adelante.
Figura 8: Configuración General de la VPN
Llegados a este punto, nos fijamos en la configuración del túnel, es decir, la configuración de red. El direccionamiento que se otorgará a los clientes, por defecto
10.0.8.0/24, aunque esto se puede personalizar como se puede ver en la imagen. Este direccionamiento podrá tener acceso a la red
LAN, si así lo decidimos. Como se puede ver un poco más abajo, tenemos que indicar la red de área local, en este caso la
10.0.0.0/24 y es con la que tendremos visibilidad.
Figura 9: Opciones de Tunneling
Además, podemos configurar los diferentes parámetros de red que los clientes de la VPN recibirán por parte del servidor como, por ejemplo:
- Direcciones de los servidores DNS (pudiendo ser el propio PFSense el servidor DNS).
- Dirección del Gateway.
- Dirección del servidor NTP.
- Wins Server.
- Opciones NetBIOS.
Después, nos encontraremos con la posibilidad de crear automáticamente la regla en el
firewall para permitir las conexiones a la
OpenVPN desde clientes que se encuentren en la interfaz
WAN. Además, existe otra opción para crear una regla que permite todo el tráfico desde los clientes a través del túnel.
Figura10: Firewall y OpenVPN
Cuando acabamos el proceso, se nos crea una nueva interfaz en el
firewall. Esta interfaz es la de
OpenVPN (tendremos
LAN,
WAN,
DMZ si la tuviéramos). En la interfaz de
WAN deberíamos ver la regla creada que da acceso a la
OpenVPN y el puerto que hemos seleccionado. Mientras que en la interfaz
OpenVPN deberíamos ver también una regla que nos permite sacar el tráfico a través del túnel.
Figura 11: Regla del tunel
Una vez finalizado el proceso, vamos con la parte de usuarios. Lo primero que hay que hacer es ir a crear un usuario o los usuarios necesarios. Vamos al apartado
System -> User Manager y aquí gestionaremos el alta y baja de los diferentes usuarios. No se ha comentado, pero en el proceso de configuración también se elige cómo se autenticarán los usuarios (contraseña, certificado, contraseña más certificado…). Hemos elegido, contraseña y certificado.
Damos de alta un nuevo usuario, tendremos que darle un nombre, podemos meterlo en un grupo con privilegios en el
firewall o no, y podremos configurarle una contraseña y, además, indicar que debe disponer de un certificado para la conexión con la
VPN.
Figura 12: Certificado para la conexión
Bien, ahora que ya tenemos todo listo, nos vamos al apartado de
VPN y
OpenVPN y vamos a la aplicación que instalamos al principio para exportar perfiles. Veremos una opción que nos permite exportar el perfil en formato
OVPN. Este perfil es el que utilizará el usuario concreto para conectarse a la
VPN.
Figura 13: Conexión VPN funcionando
En cualquier instante se puede revocar el certificado o eliminar el usuario de la base de datos, por lo que el acceso quedará inhabilitado. A continuación, importamos el perfil a un cliente
OpenVPN, por ejemplo, en
Windows, y vemos como se realiza la conexión por la interfaz
WAN. A partir de entonces, tendremos acceso a los recursos de la
LAN (que es la red
10.0.0.0/24).
Sin duda, PFSense es un All-in-one que proporciona muchas posibilidades y en temas de seguridad no solo se queda con la VPN. Hay que recordar que se puede instalar un IDS, proxy, AV, ciertos elementos que fortifican la infraestructura y desde un punto de vista accesible a muchos. Es importante asegurarse que las configuraciones son realmente seguras.
Saludos,