GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak spustit skript po úspěšném připojení Openvpn?

Jak mohu přiřadit skript k OpenVPN, aby se spustil, když je VPN úspěšně připojena?

Nejlepší odpověď

network-manager-openvpn neposkytuje takovou funkci, musíte použít openvpn přímo.

Předejte --script-security 2 --up /path/to/your/script k němu při připojování. Pokud používáte konfigurační soubor umístěný na /etc/openvpn/ , připojte ke svému konfiguračnímu souboru následující řádky:

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

Z manuálové stránky 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.

Existuje více událostí pro spuštění skriptu, ty lze nalézt na stránce manuálu.

Vytvořte /etc/openvpn/up.sh a udělte mu oprávnění ke spuštění (řekněme 755 nebo 700). Příklad obsahu pro přidání adresy IPv6 a trasy (zobrazeno pro vzdělávací účely, nekopírujte je přímo):

#!/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

Všimněte si, že toto up skript je spuštěn jako root. Pokud jste nezadali User a Group OpenVPN bude spouštět skripty jako down také jako root.


Ubuntu
  1. Ssh – Jak spustit skript ihned po připojení přes Ssh?

  2. Jak spustit skript Shell na pozadí?

  3. Jak spustit skript Greeter/login pomocí Lightdm?

  1. Jak spouštět soubory skriptů (.sh) v novém terminálu po připojení k serveru Ubuntu 16.04 přes Ssh?

  2. Jak spustit skript po obnovení a po odemknutí obrazovky?

  3. Po přihlášení spusťte bash skript

  1. Jak spustit skript??

  2. Jak spustit skript shellu při spuštění

  3. Jak mohu spustit příkaz po spuštění?