viernes, 26 de noviembre de 2021

VPN Cliente - Servidor con pFsense y OpenVPN.

Hola amigos, está vez vamos a crear una conexión VPN como hicimos en un post anterior con Zentyal, esta vez con pFsense del que ya vimos algo en otra entrada. Implementar esta solución con pFsense es relativamente sencillo aunque hay configuraciones extra para las que es mejor investigar un poco en la documentación existente; en esta entrada solo veremos la conexión básica y les dejo a ustedes la tarea de probar el resto de configuraciones. Me saltaré la instalación y la configuración de los interfaces que ya los vimos anteriormente. 
 






Y ya vamos al lío.



Lo primero que vamos a hacer tras loguearnos en pFsense es ir al “Setup Wizard” y desactivar la opción que os muestro en la imagen inferior. Este checkbox desbloquea las conexiones desde redes privadas a la interfaz WAN. En teoría por las características de los VPN no sería necesario, pero en la práctica según la configuración de red que tengáis puede dar problemas.

 


 

Ahora vamos al menú para crear una CA para que genere los certificados necesarios para nuestra conexión.

Podemos dejar las opciones que viene predeterminadas pero en “Common Name” ponemos el FQDN de nuestro pFsense, si no lo habéis cambiado será pFsense.home.arpa, si lo habéis cambiado durante la instalación, entonces usad el que hayáis elegido.
 

Una vez terminada la configuración hacemos clic en Save.

 

Ya tenemos nuestra CA creada. 

 


 

Ahora expedimos un certificado para nuestro servidor, muy importante en “Certificate Type” seleccionar en el desplegable “Server certificate”, os lo muestro en la imagen inferior.





Elegimos en tipo de certificado "Server Certificate"

 El certificado aparece listado en los certificados disponibles.




Con los certificados listos vamos a levantar un servidor VPN en el menú "OpenVPN", la configuración no tiene ninguna complicación pero veremos lo mas importante a detalle.

Lo primero es en "Server mode" elegir en el desplegable "Remote Access (SSL/TLS).



Si hemos creado varias CA nos aseguramos que elegimos la creada para el VPN


Nos aseguramos de seleccionar el certificado que expedimos para el VPN

Podemos elegir el cifrado por uno mas seguro pero de momento podemos conformarnos con el básico.

Ahora vamos a detenernos un momento en esta etapa de la configuración:
 
 
 
 
 
 
 
(1) En "IPV4 Network" elegimos dirección IP para el tunel VPN, esta dirección no debe coincidir con ninguna que tengamos en uso para no generar conflictos.
 
(2) En "Redirect IPV4 gateway" podemos elegir si queremos que los clientes del VPN redirigan todo su tráfico por el VPN o en cambio puedan seguir navegando por internet sin pasar la conexión por el túnel. Esta opción es muy importante. 
 
Si todo el tráfico pasa solo por el VPN dependerá de la configuración de la red  el funcionamiento de la conexión a internet. (Por ejemplo cuando nos conectamos al típico VPN para enmascarar la conexión). Si elegimos la otra opción porque solo queremos la VPN para acceder a un recurso compartido por ejemplo, hay que tener en cuenta que el interfaz de red podría generar tráfico no deseado hacia internet abierto y en algunos casos podría generar efecto imprevistos, sobre todo habiendo firewalls o IDS en medio. Si notáis que la conexión no funciona todo lo bien que esperabais, probad a pasar todo el tráfico del cliente, si el cliente quiere navegar solo tiene que desconectarse de la VPN.

(3) En caso de que no queráis pasar todo el tráfico por el túnel VPN, tenéis que configurar la dirección ip de la red local a la que se conectará el cliente del VPN.
 
Cuando terminemos con el servidor hacemos clic en "Save" y de momento lo dejamos aqui y vamos a descargar un módulo de pFsense que nos será muy útil en unos minutos. Para eso vamos a "System" >> "Packet Manager" y seleccionamos "openvpn-client-export", con este módulo podremos configurar fácilmente los clientes que se van a conectar a nuestro VPN.
 
 
 

 



Tras uno segundos el módulo estará instalado.




Ahora pasamos a crear un usuario para que use la conexión. En el Menú "System" >> "User Manager" >> "Users" creamos un usuario nuevo.



Para crear un usuario necesitaremos un nombre de usuario y una contraseña (1), si la cuenta va a ser provisional podemos asignarle una fecha de expiración (2), si tenemos varios usuarios creados en pFsense(3), podemos crear grupos para facilitar su gestión e incluirlos desde este menú.



Una vez creado el usuario y guardado, lo editamos y al final del panel nos aparece una opción que antes estaba oculta. Desde aquí expendemos un certificado para este usuario.





 

Muy importarte seleccionar al final el tipo de certificado correcto, "User certificate". 

Ahora ya tenemos todo listo y procedemos a exportar el paquete para la configuración del cliente usando el módulo que hemos descargado antes. Ahora en el menú "VPN" >> "OpenVPN" aparece una solapa que antes estaba oculta, "Client Export Utility".



Cuando terminemos con la configuración precedemos a la descarga del paquete. Tenmos disponible el paquete de configuración "bundle" (1) y el instalador (2) para las máquinas Microsoft o MacOS.



Hacemos las descargar pertinentes y las pasamos a la máquina cliente. Omitiré la instalación del cliente porque no tiene ninguna dificultad. A continuación extraemos el contenido del archivo que contiene los datos de configuración. 

 

 

En el cliente de OpenVPN tenemos la opción de importar directamente los datos, pero en la máquina con Windows 7 en la que hice la prueba me daba problemas asi que he extraido directamente el contenido del archivo en la carpeta "config" en la carpeta "OpenVPN" dentro de nuestro perfil de usuario. 



Con el cliente instalado ya podemos iniciar la conexión. Se abrirá el panel de control de OpenVPN donde podemos ver como transcurre el proceso.



Tras unos breves segundos (o minutos depende) la conexión se activa.



Y bueno con esto ya tenemos nuestro VPN funcionando, os dejo a vosotros lo mas díficil: trastear con las opciones y sacarle partido a esta conexión.


Me despido hasta la próxima entrada, ciao!

3 comentarios:

Alice malice dijo...

Muy bien explicado! Gracias por compartir la información

VictorBit dijo...

Gracias, ya que escribo poco intento que las entradas estén completas. Vuelve cuando quieras.

ainoah dijo...

Muy buen post! esta bastante clara la información. gracias

Publicar un comentario