GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come eseguire uno script dopo che Openvpn si è connesso con successo?

Come posso associare uno script a OpenVPN in modo che venga eseguito quando la VPN è connessa correttamente?

Migliore risposta

network-manager-openvpn non fornisce tale funzionalità, devi usare openvpn direttamente.

Passa --script-security 2 --up /path/to/your/script ad esso durante la connessione. Se stai utilizzando un file di configurazione che si trova in /etc/openvpn/ , aggiungi le righe successive al tuo file di configurazione:

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

Dalla manpage di 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.

Ci sono più eventi per l'esecuzione dello script, quelli possono essere trovati nella pagina di manuale.

Crea /etc/openvpn/up.sh e dargli le autorizzazioni di esecuzione (ad esempio, 755 o 700). Esempio di contenuto per l'aggiunta di un indirizzo IPv6 e di un percorso (mostrato a scopo didattico, non copiarlo direttamente):

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

Nota che questo up lo script viene eseguito come root. Se non hai specificato un User e Group impostazione, OpenVPN eseguirà script come down anche come root.


Ubuntu
  1. Come eseguire uno script di shell in background?

  2. Come eseguire Greeter/script di accesso con Lightdm?

  3. Come eseguire lo script dopo il ripristino e dopo lo sblocco dello schermo?

  4. Come eseguire uno script di shell all'avvio

  5. Esegui lo script bash dopo il login

Come eseguire uno script all'avvio in Debian 11

Come creare ed eseguire uno script Shell in Ubuntu 20.04 LTS

Come eseguire lo script della shell come servizio Systemd in Linux

Come eseguire uno script Python in PHP

Come eseguire uno script Bash

Script all'avvio?