¿Cómo iniciar automáticamente openvpn (cliente) en ubuntu cli?

16

Estoy usando Ubuntu 12.04 64bit. Tengo un *.ovpnarchivo que funciona si escribo:

sudo openvpn client.ovpn

Ahora me gustaría iniciar openvpncuando arranque la computadora.

¿Cómo puedo hacer esto?

Waspinator
fuente

Respuestas:

22
  1. Descargue el OpenVPNConfigFile.ovpn. Tenga en cuenta que puede cambiar el nombre del archivo a lo que quiera.

  2. Mueva el archivo ovpn a /etc/openvpn

  3. cd /etc/openvpn carpeta y entrar sudo nano yourserver.txt

    your_server_user_name
    your_server_passowrd
    

    Guardar y cerrar

  4. sudo nano OpenVPNConfigFile.ovpn

    Encuentra auth-user-passy agrega al yourserver.txtlado para que se convierta

    auth-user-pass yourserver.txt
    

    Esto le permitirá omitir el ingreso de sus credenciales cada vez que inicie la conexión openvpn

  5. Renombrar OpenVPNConfigFile.ovpnaOpenVPNConfigFile.conf

    sudo mv OpenVPNConfigFile.ovpn OpenVPNConfigFile.conf
    
  6. sudo nano /etc/default/openvpn

    Descomentar AUTOSTART="all"

  7. sudo service openvpn start

    Debería ver un mensaje que dice que está conectado. La conexión se establecerá cada vez que inicie su computadora.

Robert Polson
fuente
55
Si está ejecutando systemd, deberá ejecutarlo systemctl daemon-reloadantes de reiniciar el servicio
Mario Campa
6

El openvpnpaquete viene con un guión de inicio /etc/init.d/openvpn. Este script configura automáticamente la conexión para cada .confarchivo (tenga en cuenta la extensión) /etc/openvpn.

Encontré esto basado en la información aquí: https://openvpn.net/index.php/open-source/documentation/howto.html#startup

Si instala OpenVPN a través de un paquete RPM o DEB en Linux, el instalador configurará un initscript. Cuando se ejecuta, el initscript buscará archivos de configuración .conf en / etc / openvpn y, si se encuentra, iniciará un demonio OpenVPN separado para cada archivo.

Vašek Purchart
fuente
2

Sería bueno tener una forma no hacker de hacerlo, pero esto tendrá que hacerlo por ahora.

1) Crear archivo myopenvpn en /etc/init.d/

nano /etc/init.d/myopenvpn

2) Insertar en myopenvpn y guardar:

# OpenVPN autostart on boot script

start on runlevel [2345]
stop on runlevel [!2345]

respawn

exec /usr/sbin/openvpn --status /var/run/openvpn.client.status 10 --cd /etc/openvpn --config /etc/openvpn/client.conf --syslog openvpn

FUENTE: http://www.hackerway.ch/2012/12/11/how-to-auto-start-openvpn-client-in-debian-6-and-ubuntu-12-04/#comment-79

Waspinator
fuente
2

Me atasqué un poco en esto y terminé escribiendo todas las instrucciones para configurarlo con systemd manualmente.

Esto funcionó para mí usando Ubuntu 16.10 y openvpn 2.3.11

Configurar su VPN para que se ejecute desde bash

Estos ejemplos usan expressvpn pero la mayoría funcionaría de la misma manera

Descargue el archivo de configuración ovpn de su proveedor vpn, por ejemplo, my_express_vpn_amsterdam_2 . ovpn

mover eso /etc/openvpn/y cambiarle el nombre para terminar en .conf

sudo mv ~/Downloads/my_express_vpn_amsterdam_2.ovpn /etc/openvpn/amsterdam-2.conf

Su proveedor de VPN le proporcionará un nombre de usuario y una contraseña para conectarse a través de openvpn. Guarde el nombre de usuario y luego la contraseña cada uno en su propia línea

sudo vim /etc/openvpn/express-vpn-crednetials.txt
# add these lines
YOUR_VPN_USERNAME
YOUR_VPN_PASSWORD
# save the file

ahora edite, /etc/openvpn/amsterdam-2.conf busque una línea que diga auth-user-passy reemplácela con la ruta a su archivo de credenciales

auth-user-pass /etc/openvpn/express-vpn-crednetials.txt

Pon a prueba tu configuración! Inicia openvpn así

sudo openvpn --config /etc/openvpn/amsterdam-2.conf

openvpn debería conectarse sin pedir nombre de usuario o contraseña

Eliminar la configuración del servicio existente (roto) para openvpn

sudo rm /etc/systemd/system/multi-user.target.wants/openvpn.service

Configure openvpn para que se ejecute como un servicio systemd

La configuración que vino con openvpn estaba rota, así que la eliminé y creé una nueva basada en esta respuesta

Crear servicio systemd para openvpn

sudo vim /usr/lib/systemd/system/openvpn@service

agregue esta configuración:

[Unit]
Description=OpenVPN Robust And Highly Flexible Tunneling Application On %I
After=syslog.target network.target

[Service]
PrivateTmp=true
Type=forking
PIDFile=/var/run/openvpn/%i.pid
ExecStart=/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/%i.pid --cd /etc/openvpn/ --config %i.conf

[Install]
WantedBy=multi-user.target

el %ise utiliza como comodín para que este servicio puede ser utilizado para múltiples configuraciones VPN. Configúralo para el amsterdam-2.confarchivo que creamos anteriormente

sudo systemctl start [email protected]

el servicio systemd ahora debería estar ejecutándose en el vpn de amsterdam. comprobar su estado así

sudo systemctl status [email protected]

debería ver varias líneas de salida que terminan en Initialization Sequence Completedy su vpn debería estar ejecutándose.

¡Espero que esto ayude! lectura relacionada:

/unix/206058/how-to-start-2fa-using-openvpn-with-systemd/206490#206490

Cómo iniciar el servicio de cliente OpenVPN en Ubuntu 15.04

/unix/148990/using-openvpn-with-systemd/149003#149003?newreg=53ca53879fcc489f94304f91bbc82ab3

roo2
fuente