GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment exécuter un script après qu'Openvpn se soit connecté avec succès ?

Comment puis-je associer un script à OpenVPN pour qu'il s'exécute lorsque le VPN est connecté avec succès ?

Meilleure réponse

network-manager-openvpn ne fournit pas une telle fonctionnalité, vous devez utiliser openvpn directement.

Passez --script-security 2 --up /path/to/your/script à celui-ci lors de la connexion. Si vous utilisez un fichier de configuration situé dans /etc/openvpn/ , ajoutez les lignes suivantes à votre fichier de configuration :

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

À partir de la page de manuel 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.

Il y a plus d'événements pour l'exécution du script, ceux-ci peuvent être trouvés sur la page de manuel.

Créez /etc/openvpn/up.sh , et donnez-lui des autorisations d'exécution (par exemple, 755 ou 700). Exemple de contenu pour ajouter une adresse IPv6 et un itinéraire (affiché à des fins pédagogiques, ne le copiez pas directement) :

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

Notez que ce up le script est exécuté en tant que root. Si vous n'avez pas spécifié d'User et Group paramètre, OpenVPN exécutera des scripts comme down aussi en tant que root.


Ubuntu
  1. Ssh - Comment exécuter un script immédiatement après la connexion via Ssh ?

  2. Comment exécuter des fichiers de script (.sh) dans un nouveau terminal après la connexion au serveur Ubuntu 16.04 via Ssh ?

  3. Comment exécuter le script après la reprise et après le déverrouillage de l'écran ?

  4. Exécuter le script bash après la connexion

  5. Comment puis-je exécuter une commande après le démarrage ?

Comment exécuter un script au démarrage dans Debian 11

Comment créer et exécuter un script Shell dans Ubuntu 20.04 LTS

Comment exécuter un script Shell en tant que service Systemd sous Linux

Comment exécuter un script Python en PHP

Comment exécuter un script bash

Script au démarrage ?