NOTA:
* Situación1: Ubuntu 24.04 no soporta openvpn3 por esta razón debemos utilizar openvpn para la configuración
* Situación2: NetworkManager no soporta el CHALLENGE-RESPONSE de 2FA, por tanto no se puede realizar la configuración de la VPN desde la UI del usuario y debe ser realizada por la terminal.
* Situación3: al realizar la conexión por terminal se logra establecer la conexión a la vpn2 sin embargo la vpn en Linux no esta asignado los DNS de manera correcta, para solventar esta situación vamos a crear un script que se ejecuta al conectar la VPN y que establezca los DNS de manera correcta y los elimine al finalizar la conexión.
Paso 1: Descargar archivo de conexión
- El primer paso es descargar el archivo de configuración del usuario para VPN2.
NOTA: Este archivo se debe mantener en el equipo para poder realizar las conexiones por la terminal, es decir almacenelo en una ruta correcta
- Para el ejemplo el archivo será almacenado en:
/home/smatarrita/Escritorio/Laboral/VPN2
- Ingresamos a la pagina https://vpn2.una.ac.cr/
- Descargamos el profile

- Paso opcional, podemos renombrar el archivo para tener un nombre mas descriptivo
- Para el ejemplo:
conexionSeidyVPN2.ovpn

Paso 2: Instalación de openvpn
- El siguiente paso es instalar el software
apt install openvpn -y

Paso 3: Probar conexión
- Para probar la conexión vamos a ingresar al directorio donde almacenamos el archivo.
- Para el ejemplo:
cd /home/smatarrita/Escritorio/Laboral/VPN2
- Y ejecutamos el comando
# Estructura
sudo openvpn --config nombreArchivo.ovpn
# Ejemplo
sudo openvpn --config conexionSeidyVPN2.ovpn

- A continuación nos solicita los siguientes datos
sudo: al ejecutar el comando con sudo nos solicita la contraseña del usuario
Enter Auth Username: correo electrónico
Enter Auth Password: contraseña brindada para conexión VPN
CHALLENCE: Enter Authenticator Code: código de 2FA (Autenticador configurado)

- Si los datos brindados son correctos debe aparecer al final el mensaje
Initialization Sequence Completed

- Esto demuestra que es posible conectarse a la VPN con el usuario.
- Sin embargo a este punto si probamos
ping sigesadesa.una.ac.cr
- Podemos ver que el servicio es desconocido ya que los DNS no se están asignando de manera correcta.

Paso 4: Archivo auth_vpn2.txt
- Para facilitar el proceso de conexión podemos crear un archivo que contenga el nombre de usuario y contraseña y configurar el archivo .ovpn para que lo utilice y así solo solicite el código 2FA.
- Si considera esto un riesgo, omita el paso.
- Creamos el archivo en el mismo lugar donde se almacena el archivo de configuración.
- Para el ejemplo:
cd /home/smatarrita/Escritorio/Laboral/VPN2
- Creamos el archivo
nano /home/smatarrita/Escritorio/Laboral/VPN2/auth_vpn2.txt
- Y le agregamos:
- Linea 1: correo de la vpn
- Linea 2: contraseña
gustavo.matamoros.gonzalez@una.cr
TU_CONTRASEÑA

- Ejemplo

- Ahora abrimos el archivo de configuracion .ovpn
nano /home/smatarrita/Escritorio/Laboral/VPN2/conexionSeidyVPN2.ovpn

- Y buscamos
auth-user-pass

- Y lo remplzamos por
auth-user-pass auth_vpn2.txt
- Y además le agregamos la linea
auth-nocache
- Quedando así

- Ahora podemos probar el funcionamiento del archivo.
- Ingesamos donde tenemos el archivo de configuración
cd /home/smatarrita/Escritorio/Laboral/VPN2
- E intentamos conectar ahora solo nos debería pedir el codigo 2fa
sudo openvpn --config conexionSeidyVPN2.ovpn
- Y solo debe pedir el codigo, ejemplo:

- Nos deconectamos para finalizar la prueba
Paso 5: Creación de Alias
- En este paso vamos a crear un «Alias» de nombre «vpn-una» que va a venir a remplazar los siguientes comando:
- 1. Ingresar a la ubicación del archivo de configuración
cd /home/smatarrita/Escritorio/Laboral/VPN2
- 2. La conexión a la VPN
sudo openvpn --config conexionSeidyVPN2.ovpn
- Por tanto el comando va a ejecutar
cd /home/smatarrita/Escritorio/Laboral/VPN2 && sudo openvpn --config conexionSeidyVPN2.ovpn
- Con solo ejecutar «vpn-una» en la terminal
- Esta configuración es opcional.
- Abrimos el archivo
nano ~/.bashrc
- Agregamos al final del archivo
#Estructura
alias vpn-una='cd rutaArchivoOVPN && sudo openvpn --config openvpn --config nombreArchivoOVPN.ovpn'
# Ejemplo
alias vpn-una='cd /home/smatarrita/Escritorio/Laboral/VPN2 && sudo openvpn --config openvpn --config conexionSeidyVPN2.ovpn'

- Recargamos la terminal para aplicar el cambio
source ~/.bashrc
- Y ahora para probar la conexión y que solo nos pida el codigo 2fa, ejecutamos
vpn-una
- Y listo nos conecta

Paso 6: Correción error de DNS
- Ahora para solventar el problema que la vpn en DNS no asigna de manera correcta los DNS
- Vamos a crear el siguiente script que sera el encargado de actualizarlos y se ejecutará al momento de conectar
- Creamos el archivo
sudo nano /etc/openvpn/update-dns-una.sh
- Agregamos
#!/bin/bash
resolvectl dns tun0 10.0.98.103 10.0.98.102
resolvectl domain tun0 una.ac.cr una.cr ~.
echo "✅ DNS VPN UNA configurado"

- Guardamos / Cerramos / Le damos permisos
sudo chmod +x /etc/openvpn/update-dns-una.sh
- Ahora vamos a modificar el archivo de configuración .ovpn para que ejecute el script al momento de ser utilizado.
- Abrimos el archivo
nano /home/smatarrita/Escritorio/Laboral/VPN2/conexionSeidyVPN2.ovpn
- Le agregamos al final
script-security 2
up /etc/openvpn/update-dns-una.sh

- Y listo podemos probar
vpn-una
- Vemos como solo pide el código 2FA

- Como ejecuto el script de actualización de DNS y que conecto
Initializacition Sequence Completd

- Y podemos proibar haciendo ping a un dominio por ejemplo:
sigesadesa.una.ac.cr
