Aller au contenu


Comment Automatiser Openvpn Client Au Démarrage ?


  • Vous ne pouvez pas répondre à ce sujet
9 réponses à ce sujet

#1 istasi

    Jeune Qnapeur

  • Membres
  • Pip
  • 7 messages
  • Matériel: TS-219P

Posté 06 septembre 2011 - 11:56

Bonjour,
Grace à me capacités limitées dans l’utilisation du terminal et à l’aide d’un autre post (http://forum.qnapclu...client-openvpn/) j’ai réussi à installer OpenvPN comme client sur mon TS-219p+.

1. Ce que je voudrais faire maintenant est :
- Automatiser le lancement de mon tun.ko ;
- Automatiser le lancement d’OPENVPN client;
- Automatiser l’introduction du nom utilisateur et du mot de passe.

Pour cela je pense que je dois modifier mon autorun.sh comme il suit :
- Lancement tun.ko : insmod /lib/modules/others/tun.ko
- Lancement OPENVPN : /opt/sbin/openvpn --cd /opt/etc/openvpn --config Luxembourg.ovpn
- Introduction nom utilisateur et mot de passe : ??? (pas d’idée pour le moment)
- D’ailleurs, je crois que je dois faire partir Optware avant ces commandes. Vous avez des conseils sur ce point?

2. De plus, si possible, je voudrais avoir :
- Connexion sortante possible seulement par OPENVPN ;
- Des avis dans le cas de changement d’IP ;
- Avis de service pas disponible,
- Relancement automatique d’OPENVPN si le service ou la connexion chutent dans les heures / jours suivants ;
- Avis de la reprise du service.

Pour cela je ne sais pas comment faire, est ce que vous pouvez m’indiquer un chemin à suivre ?
Si vous voulez voir les fichiers client et key, le link public à suivre est hidemyass.com/vpn-config .

Merci d’avance !

#2 father_mande

    Qnapeur officiel

  • Administrateurs
  • 3 243 messages
  • Matériel: TS-459 Pro, TS-219, TS-109 II

Posté 06 septembre 2011 - 15:05

Bonjour,

Voir le messageistasi, le 06 septembre 2011 - 11:56 , dit :

Bonjour,
Grace à me capacités limitées dans l’utilisation du terminal et à l’aide d’un autre post (http://forum.qnapclu...client-openvpn/) j’ai réussi à installer OpenvPN comme client sur mon TS-219p+.

1. Ce que je voudrais faire maintenant est :
- Automatiser le lancement de mon tun.ko ;
- Automatiser le lancement d’OPENVPN client;
- Automatiser l’introduction du nom utilisateur et du mot de passe.

Pour cela je pense que je dois modifier mon autorun.sh comme il suit :
- Lancement tun.ko : insmod /lib/modules/others/tun.ko
- Lancement OPENVPN : /opt/sbin/openvpn --cd /opt/etc/openvpn --config Luxembourg.ovpn
- Introduction nom utilisateur et mot de passe : ??? (pas d’idée pour le moment)
- D’ailleurs, je crois que je dois faire partir Optware avant ces commandes. Vous avez des conseils sur ce point?

2. De plus, si possible, je voudrais avoir :
- Connexion sortante possible seulement par OPENVPN ;
- Des avis dans le cas de changement d’IP ;
- Avis de service pas disponible,
- Relancement automatique d’OPENVPN si le service ou la connexion chutent dans les heures / jours suivants ;
- Avis de la reprise du service.

Pour cela je ne sais pas comment faire, est ce que vous pouvez m’indiquer un chemin à suivre ?
Si vous voulez voir les fichiers client et key, le link public à suivre est hidemyass.com/vpn-config .

Merci d’avance !


1 ) en effet faire un insmod de tun.ko dans autorun.sh est la bonne idée
Pour la partie dans /opt (Optware) plusieurs solutions :
a ) lancer un shell en background (&) et lui mettre un délai ou attendre que le fichier /tmp/.boot_done (fin de boot) existe
b ) lancer Optware vous-même dans autorun.sh puis supprimez le fichier qui le lance dans /etc/rcS.d/
c ) ajouter un shell lancé dans le QS__Optawre (à la fin) donc qui sera lancé dès que Optware sera opérationnel ....
2 ) pour le user et le mot de passe, ajouter une directive dans le fichier Luxembourg.ovpn
... directive :
auth-user-pass [File_containing_user_et_passwd] Authenticate with server using username/password. up is a file containing username/password on 2 lines (Note: OpenVPN will only read passwords from a file if it has been built with the --enable-password-save configure option, or on Windows by defining ENABLE_PASSWORD_SAVE in win/settings.in). If up is omitted, username/password will be prompted from the console.

The server configuration must specify an --auth-user-pass-verify script to verify the username/password provided by the client.


ou ajout au niveau de la commande openvpn --auth-use-pass file_name

Pour les connexions, il faudra "jouer" avec les routes (commande route)
Le changement d'I.P. ne peut avoir lieu qu'en cas de déconnexion, reconnexion ... donc pas de souci, sauf si c'est le serveur qui force un changement, dans ce cas il faudra "jouer" avec la lecture du status et / ou des logs ...
Pour vérifier la disponibilité : status.log
Pour relancer automatiquement openvpn , c'est simple, il suffit d'utiliser daemon_mgr ... qui maintient une liste des processus, les surveille et les relance en cas de crash ...
... il y a plein d'exemple dans /etc/init.d/
De même pour la reprise, lisez status.log, il est mis à jour chaque minute ou à chaque événement, il vous permettra d'envoyer un mail, ou d'écrire un message dans le log (log-tool)


Philippe.
QNAP TS-459, 3.6.0, Virtualbox, OpenVPN
QNAP TS-109, Debian Squeeze
QNAP TS-219P II, 3.6.1
La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi.
Le Raid N'EST PAS un backup (proverbe Qnapien)

#3 istasi

    Jeune Qnapeur

  • Membres
  • Pip
  • 7 messages
  • Matériel: TS-219P

Posté 06 septembre 2011 - 22:06

Merci Philippe pour votre réponse.

En effet je voudrais passer toutes les commandes dans autorun.sh.
Je me suis aperçu de votre post sur un sujet très similaire (http://forum.qnapclu...ent-de-serveur/).
En bas vous avez les shell que j’ai pensé de mettre dans l'autorun.sh (je voudrais en profiter pour faire un log de l’autorun). Est-ce que les commandes sont exactes ?

J’ai encore les doutes suivants:
1. Le autorun.log se créera tout seul ?
2. Le shell « /etc/init.d/Optware-ipkg.sh start » est exacte ou il faut utiliser « /etc/init.d/Optware.sh start » ?
3. Quelle extension doit avoir le fichier « password » ?
4. J’ai créé mon autorun.sh avec TextEdit (Mac). Cette méthode est comptabilité avec le NAS ?

Autorun.sh :
#!/bin/sh

echo "lancement Optware et suppression du shell start automatique" >> /share/$TARG/custom/log/autorun.log
/etc/init.d/Optware-ipkg.sh start
rm -f /etc/rcS.d/QS100Optware-ipkg

echo "lancement tun.ko et openvpn" >> /share/$TARG/custom/log/autorun.log

insmod /lib/modules/others/tun.ko

/opt/sbin/openvpn --cd /opt/etc/openvpn --config Luxembourg.ovpn --auth-use-pass Password

echo "relance automatique OpenVPN" >> /share/$TARG/custom/log/autorun.log
/sbin/daemon_mgr openvpn_client start "/opt/sbin/openvpn --daemon --cd /opt/etc/openvpn --config Luxembourg.conf --auth-use-pass Password"

#4 father_mande

    Qnapeur officiel

  • Administrateurs
  • 3 243 messages
  • Matériel: TS-459 Pro, TS-219, TS-109 II

Posté 07 septembre 2011 - 07:57

Bonjour,

Voir le messageistasi, le 06 septembre 2011 - 22:06 , dit :

Merci Philippe pour votre réponse.

En effet je voudrais passer toutes les commandes dans autorun.sh.
Je me suis aperçu de votre post sur un sujet très similaire (http://forum.qnapclu...ent-de-serveur/).
En bas vous avez les shell que j’ai pensé de mettre dans l'autorun.sh (je voudrais en profiter pour faire un log de l’autorun). Est-ce que les commandes sont exactes ?

J’ai encore les doutes suivants:
1. Le autorun.log se créera tout seul ?
2. Le shell « /etc/init.d/Optware-ipkg.sh start » est exacte ou il faut utiliser « /etc/init.d/Optware.sh start » ?
3. Quelle extension doit avoir le fichier « password » ?
4. J’ai créé mon autorun.sh avec TextEdit (Mac). Cette méthode est comptabilité avec le NAS ?

Autorun.sh :
#!/bin/sh

echo "lancement Optware et suppression du shell start automatique" >> /share/$TARG/custom/log/autorun.log
/etc/init.d/Optware-ipkg.sh start
rm -f /etc/rcS.d/QS100Optware-ipkg

echo "lancement tun.ko et openvpn" >> /share/$TARG/custom/log/autorun.log

insmod /lib/modules/others/tun.ko

/opt/sbin/openvpn --cd /opt/etc/openvpn --config Luxembourg.ovpn --auth-use-pass Password

echo "relance automatique OpenVPN" >> /share/$TARG/custom/log/autorun.log
/sbin/daemon_mgr openvpn_client start "/opt/sbin/openvpn --daemon --cd /opt/etc/openvpn --config Luxembourg.conf --auth-use-pass Password"


Le nom des shells peut évoluer dans le temps ... (mon message était à jour en son temps ... il doit être adapté au "temps moderne" :smile: )
de même le QS1nn_____ le nombre nn peut changer car il dépend de la position de Optware dans /etc/config/qpkg.conf ... si c'est 00 c'est que c'est le premier QPKG installé ...
les fichiers derrière une redirection > ou >> sont crées si ils n'existent pas
> le crée ou le supprime et le re-crée
>> le crée ou ajoute au contenu existant si le fichier existe ...
A vous de voir, attention que sa taille ne devienne pas énorme avec >> , Si vous ajouter un simple "echo "début du log" > PATH_du_log " celui-ci sera nouveau à chaque boot, sinon ajouter la date et l'heure pour différencier les messages ....
Daemon_mgr LANCE la commande, donc il n'est pas du tout nécessaire de lancer /opt/sbin/openvpn avant ... une seule ligne suffit celle de deamon_mgr.

daemon_mgr lance les commandes et surveille l’exécutable et le relance si il disparait, donc il faut arrêter le programme AUSSI avec daemon_mgr stop ....
en cas de relance, daemon_mgr ajoute tout seul un message dans le log .... les fameux "relaunch xxxx"

A ma connaissance il n'y a aucune règle de nom pour le fichier user / password (2 lignes) , par contre testez à la main, avant et utilisez de préférence des Path_name complet, attention aussi que les majuscules et les minuscules sont différenciés sous Linux.

Pour votre éditeur ... aucune idée, relisez les sous vi dans le QNAP si il n'y a pas de caractères parasites (en fait un <CR> en fin de ligne) car le séparateur Linux est <LF> line feed pas <CR><LF> comme sous DOS/Windows ... à ma connaissance OpenVPN n'est pas sensible a cette fin de ligne ... mais ce n'est pas vrai pour d'autres (shell, etc.)

Philippe.
QNAP TS-459, 3.6.0, Virtualbox, OpenVPN
QNAP TS-109, Debian Squeeze
QNAP TS-219P II, 3.6.1
La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi.
Le Raid N'EST PAS un backup (proverbe Qnapien)

#5 istasi

    Jeune Qnapeur

  • Membres
  • Pip
  • 7 messages
  • Matériel: TS-219P

Posté 07 septembre 2011 - 21:25

Bonsoir Philippe,
Merci pour vos indications.
Avant de commencer à automatiser OpenVPN j’ai essayé la directive auth-user-pass, mais je n’arrive pas à l’utiliser.

Depuis le terminal, si je lance une de ces commande :
/opt/sbin/openvpn --cd /opt/etc/openvpn --config Luxembourg.ovpn --auth-use-pass pass
/opt/sbin/openvpn --cd /opt/etc/openvpn --config Luxembourg.ovpn --auth-use-pass pass.txt
/opt/sbin/openvpn --cd /opt/etc/openvpn --config Luxembourg.ovpn --auth-use-pass /opt/etc/openvpn/pass
/opt/sbin/openvpn --cd /opt/etc/openvpn --config Luxembourg.ovpn --auth-use-pass /opt/etc/openvpn/pass.txt
Je reçois toujours la même erreur : Options error: Unrecognized option or missing parameter(s) in [CMD-LINE]:1: auth-use-pass (2.2.0)

Si j’essaie d’utiliser une de ces directives dans le fichier Luxembourg.ovpn:
auth-user-pass pass.txt
auth-user-pass pass
auth-user-pass /opt/etc/openvpn/pass.txt
auth-user-pass /opt/etc/openvpn/pass
Je reçois toujours la même erreur au lancement de OpenVPN:
AUTH: Received AUTH_FAILED control message

Je suppose que le problème réside dans cette note :
« OpenVPN will only read passwords from a file if it has been built with the --enable-password-save configure option ».

Si c’est ca le problème, je ne sais pas comme configurer cette option dans mon fichier pass.txt (ou pass).

Je suis preneur de tout conseil. Merci

#6 istasi

    Jeune Qnapeur

  • Membres
  • Pip
  • 7 messages
  • Matériel: TS-219P

Posté 01 octobre 2011 - 14:30

Bonjour à tous,

J’ai finalement réussi à passer quelques heures sur mon NAS et résoudre le problème du lancement d’Openvpn. En effet les problemes étaient deux :
- TextEdit (mac) ajoutait des caractères à mon fichier de password; j’ai résolu avec un autre text editor : bluefish ;
- Openvpn lit seulement les fichiers sans extensions (dans mon cas le fichier « pass »).

Maintenant j’ai des problèmes à automatiser le lancement avec autorun.sh : je n’arrive pas à faire lancer Optware et tun.ko et récemment j’ai même des problèmes avec l’autorun.log.

Voici les passages que je suis :
Je monte la partition /dev/mtdblock5 avec la commande : mount -t ext2 /dev/mtdblock5 /tmp/config
Je copie mon autorun.sh dans /tmp/config
Je démonte la partition /dev/mtdblock5 avec la commande : umount /tmp/config

Mon autorun.sh est le suivant :
#!/bin/sh

export TARG=MD0_DATA

echo `date` >> /share/$TARG/custom/log/autorun.log
echo "lancement Optware et suppression du shell start automatique" >> /share/$TARG/custom/log/autorun.log
/etc/init.d/Optware.sh start
rm -f /etc/rcS.d/QS100Optware

echo "lancement tun.ko et openvpn" >> /share/$TARG/custom/log/autorun.log
insmod /lib/modules/others/tun.ko
/opt/sbin/openvpn --cd /opt/etc/openvpn --config Luxembourg.ovpn --auth-use-pass pass

echo "relance automatique OpenVPN" >> /share/$TARG/custom/log/autorun.log
/sbin/daemon_mgr openvpn_client start "--daemon --cd /opt/etc/openvpn --config Luxembourg.conf --auth-use-pass pass"

J’ai déjà vérifié la bonne position et le nom du fichier pour lancer Optware.

Avez-vous une idée sur les motifs de non-fonctionnement ?
Merci d’avance !

#7 father_mande

    Qnapeur officiel

  • Administrateurs
  • 3 243 messages
  • Matériel: TS-459 Pro, TS-219, TS-109 II

Posté 02 octobre 2011 - 11:13

Bonjour,

Vérifiez que Optware est bien en QS100 ... la valeur 100 pouvant changer suivant l'ordre d'installation

Ajouter l’exécutable dans la commande daemon_mgr et supprimer le lancement précédant .... Daemon_mgr lance la commande, la surveille et la relance en cas de crash

supprimer la ligne :
/opt/sbin/openvpn --cd /opt/etc/openvpn --config Luxembourg.ovpn --auth-use-pass pass

modifiez :
/sbin/daemon_mgr openvpn_client start "/opt/sbin/openvpn --daemon --cd /opt/etc/openvpn --config Luxembourg.conf --auth-use-pass pass"

Pour ne pas "gonfler" inutilement votre log
supprimer un > dans la ligne :
echo `date` > /share/$TARG/custom/log/autorun.log

Philippe.
QNAP TS-459, 3.6.0, Virtualbox, OpenVPN
QNAP TS-109, Debian Squeeze
QNAP TS-219P II, 3.6.1
La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi.
Le Raid N'EST PAS un backup (proverbe Qnapien)

#8 istasi

    Jeune Qnapeur

  • Membres
  • Pip
  • 7 messages
  • Matériel: TS-219P

Posté 03 octobre 2011 - 23:40

Bonsoir Philippe,

Merci de vos indications.
En suivant votre cure démaigrissant, j’ai simplifié mon autorun.sh. La dernière version est la suivante :
#!/bin/sh

export TARG=MD0_DATA

echo `date` > /share/$TARG/custom/log/autorun.log
echo "Start of Optware and delete of its automatic shell" >> /share/$TARG/custom/log/autorun.log
/etc/init.d/Optware.sh start
rm -f /etc/rcS.d/QS100Optware

echo "Start of tun.ko" >> /share/$TARG/custom/log/autorun.log
insmod /lib/modules/others/tun.ko

echo "Start of OpenVPN as daemon" >> /share/$TARG/custom/log/autorun.log
/sbin/daemon_mgr openvpn_client start "/opt/sbin/openvpn --daemon --cd /opt/etc/openvpn --config Luxembourg.conf --auth-use-pass pass"

Malheureusement depuis quelque jour mon autorun.sh n’est pas exécuté au démarrage : aucune commande est lancée (autorun .log n’est pas mis à jour, tun.ko n’est pas lancé, dans le registre du système il n’y a aucune trace de daemon).

Ce n’est pas un problème de caractère parasite parce que j’ai commencé à éditer avec vi.

Je ne sais pas à quoi penser pour résoudre le problème. Est-ce que quelqu'un a déjà eu ce souci ?

Merci d’avance

#9 istasi

    Jeune Qnapeur

  • Membres
  • Pip
  • 7 messages
  • Matériel: TS-219P

Posté 10 octobre 2011 - 00:08

Bonsoir à tous,
J’ai réussi à résoudre mon problème d’autorun.sh grâce à une mise à jour de mon firmware (de 3.5.0 à 3.5.1)
Maintenant mon autorun.sh est exécuté mais j’ai des soucis avec le lancement d’openvpn avec l’exécutable daemon_mgr. En général, si je lance la commande :
/sbin/daemon_mgr openvpn_client start "/opt/sbin/openvpn --daemon --cd /opt/etc/openvpn --config Luxembourg2.ovpn"

Openvpn est lancé mais quelque second après il est relancé et relancé encore :
dans le log du NAS je peux voir plusieurs évènements « Re-launch process [openvpn_client]. » ;
depuis la console, si je fais «pidof openvpn », je reçois la réponse « 14521 14523 14663 14796 14923 15048 »….

Pour bloquer ce relance infini d’openvpn je suis obligé à faire un /sbin/daemon_mgr openvpn_client stop "--daemon stop --cd /opt/etc/openvpn"

Est-il normale un comportement de ce type de daemon_mgr?
Il y a t-il un moyen pour surveiller openvpn et être sûr qu’il ne soit pas lancé plusieurs fois au même temps ?

Merci d’avance pour tout conseil

p.s. luxembourg2.opvn est le fichier client avec la directive « --auth-use-pass pass » incluse

#10 father_mande

    Qnapeur officiel

  • Administrateurs
  • 3 243 messages
  • Matériel: TS-459 Pro, TS-219, TS-109 II

Posté 10 octobre 2011 - 10:06

Bonjour,

Daemon_mgr surveille le programme dont le nom apparait entre /sbin/daemon_mgr et start

donc ici il surveille : openvpn_client qui n"est pas le nom de l’exécutable qui est : openvpn

ne trouvant pas de openvpn_client en cours d’exécution, il poste un message de relaunch et relance la commande entre quote ...

remplacez openvpn_client par openvpn et cela devrait fonctionner ....
/sbin/daemon_mgr openvpn start "/opt/sbin/openvpn --daemon --cd /opt/etc/openvpn --config Luxembourg2.ovpn"

si vous aviez plusieurs client (par ex.) il suffirait de créer un lien openvpn_client sur openvpn ... et lancer ce lien en lieu et place du programme
donc ceci fonctionnerait aussi :
cd /opt/sbin
ln -s openvpn openvpn_client
/sbin/daemon_mgr openvpn_client start "/opt/sbin/openvpn_client --daemon --cd /opt/etc/openvpn --config Luxembourg2.ovpn"

mais cela ne fait que compliquer ... si vous n'avez qu'un seul client ....

Philippe.
QNAP TS-459, 3.6.0, Virtualbox, OpenVPN
QNAP TS-109, Debian Squeeze
QNAP TS-219P II, 3.6.1
La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi.
Le Raid N'EST PAS un backup (proverbe Qnapien)





1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)