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