jueves, mayo 19, 2022

Cómo montar tu (Open) VPN con PFSense de forma sencilla #PyMES #Teletrabajo

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.

JL. Rambla, ampliado y revisado por Pablo González y Chema Alonso

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.

(Revisada y Ampliada) de Carlos Álvarez y Pablo González en 0xWord

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).

Figura 14: Hacking Windows: "Ataques a sistemas y redes Microsoft"
de Pablo González, Carlos García y Valentín Martín.

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,

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root",  “Pentesting con Powershell” y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica.  Para consultas puedes usar el Buzón Público para contactar con Pablo González

Contactar con Pablo González

No hay comentarios:

Publicar un comentario