web-dev-qa-db-fra.com

OpenVPN --up script - "ne peut pas exécuter de programme externe"

Après quelques jours sur Google, je ne parviens pas à trouver la bonne réponse à ma question. Après avoir lu beaucoup de possibilités de script, OpenVPN est opérationnel.

J'ai un client sous Debian 7.8, avec OpenVPN 2.2.1 x86_64-linux-gnu.

La connexion fonctionne très bien et tout va bien. Mais - je dois monter des lecteurs NFS, puis la connexion est établie ("up" - je suppose).

Mais - alors j'essaie de démarrer un script, je rencontre cette erreur:

 Tue Jun 23 10:44:55 2015 /usr/share/openvpn/script-to-start.sh tun0 1500 1542 192.168.2.6 192.168.2.5 init
 Tue Jun 23 10:44:55 2015 WARNING: Failed running command (--up/--down): could not execute external program
 Tue Jun 23 10:44:55 2015 Exiting

J'ai ajouté les paramètres dans le fichier de configuration:

script-security 2
up /usr/share/openvpn/script-to-start.sh
down /usr/share/openvpn/script-to-stop.sh

Voir le fichier de paramètres complet ici .

Le script que j'essaye de lancer (juste pour tester maintenant) est:

#/bin/bash

grep vpn /var/log/syslog > /home/USERNAME/test.txt

clear
echo "Good morning, world."

( Mise à jour 2017: - La marque "!" Est manquante dans la ligne #/bin/bash-line. Ne copiez/collez pas la ligne ci-dessus, car c'était le problème)

J'ai aussi testé avec "#!/Bin/sh", juste pour être sûr. Après tout, j'ai testé les autorisations et la propriété:

Permissions

Comme vous pouvez le constater, j’ai ajouté "script-security 2" avant les commandes "up" et "down". OpenVPN s'exécute en tant que root et est lancé par un script init.d, mais même si j'essaie de l'exécuter avec la commande complète, j'obtiens la même erreur.

Voir l'exemple ci-dessous (avec et sans Sudo):

Sudo openvpn --remote SERVERDOMAIN --dev tun1 --ifconfig 192.168.2.2 192.168.2.1 --tls-client --ca /etc/openvpn/easy-rsa/keys/ca.crt --cert /etc/openvpn/easy-rsa/keys/TITLE.crt --key /etc/openvpn/easy-rsa/keys/TITLE.key --reneg-sec 60 --verb 5 --script-security 2 --up /usr/share/openvpn/script-to-start.sh

Si je lance moi-même le maudit petit script, avec SU et Sudo, tout se passe sans heurts.

Le fait est que je dois exécuter cette commande pour monter quelques lecteurs NFS, mais pour le moment je suis verrouillé. J'ai donc besoin d'aide ici. J'ai essayé sur un forum danois sans succès.

Sudo mount 192.168.2.1:/media/usb1/sync /home/USERNAME/sync

Les manuels en ligne ne sont pas très utiles - et maintenant, j'ai besoin de votre aide.

J'ai rencontré le même problème, heureusement j'ai trouvé une solution.

Voici les choses que j'ai vérifiées:

  1. permission du dossier
  2. permission de openvpn d'accéder au script
  3. le script doit répertorier le chemin complet de toutes les commandes utilisées (par exemple, grepdevrait être /bin/grep; vous pouvez trouver le chemin complet en tapant whichdevant votre commande).
  4. utilisez script-security 2 system à la place
8
Venom Man

Juste pour que ce soit clair: j'ai oublié le "!" (point d'exclamation). C'est tout expliquer.

#!/bin/bash