Conectarse a una VPN en Ubuntu 20.04 (OpenVPN)

  • Post category:Linux

Este artículo demuestra cómo conectarse a una VPN provista por OpenVPN desde un cliente Ubuntu 20.04 con systemd.

Para comenzar, instalar OpenVPN:

[email protected]:~$ sudo apt install openvpn openvpn-systemd-resolved

Instalar el archivo de configuración de la VPN provisto por el administrador de la misma (archivo .conf):

[email protected]:~$ sudo su
[email protected]:/home/emiliano# mv Descargas/Linuxito.conf /etc/openvpn/
[email protected]:/home/emiliano# chown root:root /etc/openvpn/Linuxito.conf
[email protected]:/home/emiliano# chmod 0600 /etc/openvpn/Linuxito.conf

En este caso se trata de un archivo de configuración con los certificados y la clave embebidos (in-line). De esta forma no hace falta nada más. De lo contrario se deben instalar correctamente y ajustar las rutas.

Para que la VPN funcione correctamente en Ubuntu es necesario asegurarse de que las siguientes líneas estén presentes en la configuración:

[email protected]:/home/emiliano# nano /etc/openvpn/Linuxito.conf
# DNS config (Debian)
#script-security 2
#up /etc/openvpn/update-resolv-conf
#down /etc/openvpn/update-resolv-conf
# DNS config (Ubuntu)
script-security 2
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre

Para el caso de los sistemas Debian con systemd es necesario utilizar las líneas comentadas en la parte superior en su lugar, y luego instalar el paquete resolvconf (ver enlace en las referencias).

Habilitar la VPN:

[email protected]:/home/emiliano# nano /etc/default/openvpn

Descomentar la línea AUTOSTART="all":

AUTOSTART="all"

Actualizar systemd y reiniciar el servicio:

[email protected]:/etc/openvpn# systemctl daemon-reload
[email protected]:/etc/openvpn# service openvpn stop
[email protected]:/etc/openvpn# service openvpn start
[email protected]:/etc/openvpn# exit

Verificar el acceso a la VPN haciendo ping a un host dentro de la red privada:

[email protected]:~$ ping -c 1 www.vpn.linuxito.com
PING www.vpn.linuxito.com (192.168.230.6) 56(84) bytes of data.
64 bytes from 192.168.230.6 (192.168.230.6): icmp_seq=1 ttl=63 time=172 ms

--- www.vpn.linuxito.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 172.476/172.476/172.476/0.000 ms

Para desconectarse de la VPN, ejecutar:

[email protected]:~$ sudo service openvpn stop

Tener en cuenta que a partir de ahora el sistema se conectará automáticamente a la VPN durante el inicio. Para desconectarse hay que detener el servicio openvpn.

Inicio manual de la VPN

Si se prefiere que la conexión a la VPN sea manual (en vez de automática), es necesario configurar OpenVPN del siguiente modo:

[email protected]:~$ sudo nano /etc/default/openvpn
#AUTOSTART="all"
AUTOSTART="none"

Luego deshabilitar el inicio del servicio:

[email protected]:~$ sudo systemctl disable openvpn

Y recargar el demonio systemd:

[email protected]:~$ sudo systemctl daemon-reload

En el siguiente inicio OpenVPN no se iniciará automáticamente, sino que será necesario conectarse a la VPN de forma manual con el comando:

$ sudo systemctl start [email protected]

Cambiar “Linuxito” según corresponda (corresponde al nombre del archivo de configuración sin la extensión .conf).

Para cerrar la VPN bastará con detener el servicio:

$ sudo systemctl stop openvpn