GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo ejecutar un script después de que Openvpn se haya conectado correctamente?

¿Cómo puedo asociar un script a OpenVPN para que se ejecute cuando la VPN se conecte correctamente?

Mejor respuesta

network-manager-openvpn no proporciona dicha funcionalidad, debe usar openvpn directamente.

Pase --script-security 2 --up /path/to/your/script a él cuando se conecta. Si está utilizando un archivo de configuración ubicado en /etc/openvpn/ , agregue las siguientes líneas a su archivo de configuración:

script-security 2
# run /etc/openvpn/up.sh when the connection is set up
up /etc/openvpn/up.sh

Desde la página de manual de OpenVPN:

--script-security level [method]
              This  directive offers policy-level control over OpenVPN’s usage
              of external programs and scripts.  Lower level values  are  more
              restrictive,  higher  values  are more permissive.  Settings for
              level:

              0 -- Strictly no calling of external programs.
              1 -- (Default) Only call built-in executables such as  ifconfig,
              ip, route, or netsh.
              2  --  Allow  calling  of  built-in executables and user-defined
              scripts.
              3 -- Allow passwords to be passed to scripts  via  environmental
              variables (potentially unsafe).
       --up cmd
              Shell  command  to run after successful TUN/TAP device open (pre
              --user UID change).  The up  script  is  useful  for  specifying
              route  commands  which  route  IP  traffic  destined for private
              subnets which exist at the other end of the VPN connection  into
              the tunnel.
Script Order of Execution
       --up   Executed after TCP/UDP socket bind and TUN/TAP open.
       --down Executed after TCP/UDP and TUN/TAP close.

Hay más eventos para la ejecución de secuencias de comandos, que se pueden encontrar en la página del manual.

Crear /etc/openvpn/up.sh y darle permisos de ejecución (por ejemplo, 755 o 700). Contenido de ejemplo para agregar una dirección y ruta IPv6 (se muestra con fines educativos, no lo copie directamente):

#!/bin/sh
# add an IPv6 address to device $dev (environment variable)
ip -6 addr add 2001:db8::1:2/112 dev $dev
# and the IPv6 route for this net using gateway 2001:db8::1
ip -6 route add 2001:db8::1:0/112 via 2001:db8::1 dev $dev

Tenga en cuenta que este up el script se ejecuta como root. Si no ha especificado un User y Group configuración, OpenVPN ejecutará scripts como down como root también.


Ubuntu
  1. Ubuntu:¿cómo hacer que Pam_exec ejecute el script como el usuario actual?

  2. ¿Cómo ejecutar “find -exec {};?

  3. ¿Cómo ejecutar un script de Shell en segundo plano?

  4. ¿Cómo ejecutar un script?

  5. ¿Cómo puedo ejecutar un comando después del arranque?

Cómo ejecutar un script al arrancar en Debian 11

Cómo crear y ejecutar un script de Shell en Ubuntu 20.04 LTS

Cómo ejecutar Shell Script como servicio Systemd en Linux

Cómo ejecutar un script de Python en PHP

Cómo ejecutar un script Bash

¿Script al inicio?