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:

emiliano@ubuntu:~$ 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):

emiliano@ubuntu:~$ sudo su
root@ubuntu:/home/emiliano# mv Descargas/Linuxito.conf /etc/openvpn/
root@ubuntu:/home/emiliano# chown root:root /etc/openvpn/Linuxito.conf
root@ubuntu:/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 (ver Configurando el cliente OpenVPN en Ubuntu 16.04).

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

root@ubuntu:/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:

root@ubuntu:/home/emiliano# nano /etc/default/openvpn

Descomentar la línea AUTOSTART="all":

AUTOSTART="all"

Actualizar systemd y reiniciar el servicio:

root@ubuntu:/etc/openvpn# systemctl daemon-reload
root@ubuntu:/etc/openvpn# service openvpn stop
root@ubuntu:/etc/openvpn# service openvpn start
root@ubuntu:/etc/openvpn# exit

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

emiliano@ubuntu:~$ 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:

emiliano@ubuntu:~$ 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:

emiliano@ubuntu:~$ sudo nano /etc/default/openvpn
#AUTOSTART="all"
AUTOSTART="none"

Luego deshabilitar el inicio del servicio:

emiliano@ubuntu:~$ sudo systemctl disable openvpn

Y recargar el demonio systemd:

emiliano@ubuntu:~$ 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 openvpn@Linuxito

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

Referencias

  • Solving DNS problems with OpenVPN on Ubuntu box
  • Compartí este artículo