Connecter automatiquement VPN au démarrage

Bonjour,

Je possède un RPI 3b+ et je profite du confinement pour me pencher dessus.
J’ai passé le début de semaine à paramètrer Kodi et je m’attaque maintenant au VPN.

J’ai fait l’acquisition d’un compte chez SurfShark que j’ai installé avec OpenVPN.

Lorsque je tape ma ligne de commande je peux mettre mon VPN en route mais je suis obligé de me « taper » ça à chaque démarrage. J’aimerai que mon RPI se connecte automatiquement à mon VPN au démarrage.

J’ai vu sur un tuto qu’il fallait modifier l’extension .ovpn en .conf, j’ai donc selectionné une adresse à NYC que j’ai modifié en .conf.

A partir de là je suis bloqué, je ne sais plus quoi faire ni que taper pour que mon VPN se connecte automatiquement au démarrage. Pourvez vous m’aider ?

hello,

je ne connais rien sur les VPN ( ça commence très fort ) mais si tu arrives à faire un script pour le démarrer ( en fait la commande que tu te tapes a chaque fois dans un script sh ou bash ) tu peux utiliser une des méthodes donné par le tuto en source.

source:

PS:
plus d’info sur les scripts par la :

PSS:
si ton script est /home/pi/vpn_on.sh et s’il commence par :

#!/bin/sh

un :
sudo crontab -e
avec
@reboot /home/pi/vpn_on.sh
devrait fonctionner.

Merci beaucoup pour ta réponse !

Il faut vraiment que je me mette apprendre la chinois^^

Je regarde tout ça à tête reposée et je vais compléter le sujet si j’y arrive (ou pas)

好吧 … :wink:

Salut,
Le rc.local fonctionne bien aussi , même sans script si la ligne de commande fonctionne bien dans le terminal , sans oublier le « & » à la suite de la commande pour redonner la main …

Salut @bof,
J’espère que tu vas bien dans le confinement…
Toi qui connais beaucoup de notre ami Linux,
Comment faire pour lancer une application pour qu’elle démarre automatiquement juste après l’interface graphique pour l’avoir sans avoir à la lancer ?
A plus et bon dimanche…

hello,

je te souhaite aussi le meilleur confinement possible :wink:

pour ce truc de démarrage automatique si tu utilises raspbian « buster » avec LXDE ( le serveur graphique par défaut) il faut modifier le fichier:
/etc/xdg/lxsession/LXDE-pi/autostart
et rajouter une ligne de la forme:
@lxterminal --command '/home/pi/script.sh' pour un script ou
@ta_commande pour un exécutable
le lien en source recommande de créer un fichier : ta_commande.desktop dans /etc/xdg/autostart/ et de mettre ds le fichier
/etc/xdg/lxsession/LXDE-pi/autostart le lien vers ce raccourci:
@ta_commande

je suppose que cette manip avec le .desktop vient du fait que l’autostart ne doit pas « digérer » les commandes avec le PATH devant ( ? )
tu trouveras des exemples de fichier .desktop ds /usr/share/applications

si j’ai bien compris le @ permet de relancer la commande si elle se plante !

bon courage !

source:

Bonne soirée @bof,
Et envore merci

Bonjour à tous et encore merci pour toutes vos réponses !

Je ne pige vraiment rien du tout à tout ce que vous me dite, j’ai l’impression qu’il y a 50 moyens différents d’arriver à ce que je veux mais je n’en comprend aucun…

Voilà ce que je fais pour connecter mon VPN à chaque démarrage :

(Par exemple je veux me connecter à Dallas aux US)

sudo openvpn us-dal.prod.surfshark.com_udp.ovpn

Ensuite il me demande mon identifiant et mon mot de passe, qui sont des trucs à rallonge.

Une fois mont id et mdp indiqué, j’appuie sur « enter » et je suis connecté.

De ce que j’ai compris :

  • Il faudrait créer un fichier txt qui contient mais identifiants
  • Transformer mon fichier .ovpn en un fichier .conf
  • modifier mon fichier .conf et y intégrer l’information par laquelle mes identifiants sont dans un fichier .txt
  • Faire démarrer automatiquement le RPI en exécutant le VPN.

Dans ce que vous m’avez envoyé, ça parle de « script », mon fichier .ovpn qui devient .conf, c’est ça un script ?
Je suis vraiment complètement perdu…

Salut @Koslovhack,

Dans /home/pi,

Tu fais un fichier avec l’éditeur nano ex : nano vpn.sh
Dedans,

#!/bin/sh
Ta commande pour attaquer le vpn

Après

sudo chmod 755 vpn.sh

Pour essayer

Tu fais

sh vpn.sh

ou

./vpn.sh

Et tu reviens vers le forum pour voir si ok

j"ai trouvé ça :

et si c’est ce type de connexion que tu utilises avec la saisie obligatoire d’un identifiant et d’un password, l’automatisation devient un peu plus complexe …
si tu saisis l’identifiant puis le mot de passe dans le terminal ou tu lance ta commande tu peux utiliser un script ( encore ! ) mais cette fois avec la commande expect en gros ça donne ça :

#! /usr/bin/expect -f

set force_conservative 1;
# le set time attend  60 secondes entre chaque ligne" 
# a augmenter si pas suffisant !
set timeout 60

spawn openvpn us-dal.prod.surfshark.com_udp.ovpn
expect "identifiant: $"
send "mon_identifiant\n"
expect "password: $"
send "mon_password\n"
interact

la commande expect attend une chaine de caractere a remplacer par celle qui te demande ton identifiant
la commande send envoie l’identifiant suivi de \n
idem pour le mot de passe …

avant il doit falloir installer expect :
sudo apt-get update
sudo apt-get install expect

apres on peut aussi imaginer de faire un script qui lancerait ce script expect en fonction du vpn que tu veux atteindre là ça devient un peu complexe mais pas tant que ça !

#!/bin/sh
echo "1 = openvpn us-dal.prod.surfshark.com_udp.ovpn"
echo "2 = openvpn ch-dal.prod.surfshark.com_udp.ovpn"
...
read valeur

case $valeur in
 1) script_expect.sh  us-dal.prod.surfshark.com_udp.ovpn;;
 2) script_expect.sh  ch-dal.prod.surfshark.com_udp.ovpn;;
....
esac

dans le script expect ( script_expect.sh ) on remplacera la ligne :
spawn openvpn us-dal.prod.surfshark.com_udp.ovpn
par :

set vpn [lindex $argv 0]
spawn openvpn "$vpn" 

NB : j’ai fait ces scripts « à l’arrache » et il y a certainement des erreurs tu trouveras en source et sur le web des ressources qui te permettront de les corriger :wink:

source :

http://wawadeb.crdp.ac-caen.fr/iso/tmp/ressources/linux/www.ac-creteil.fr/reseaux/systemes/linux/shell-scripts/shell-programmation.html

Merci pour vos retours, je commence à voir le bout du tunnel.

  • J’ai créé un fichier auth.txt
  • dans mon fichier .ovpn j’ai ajouté une ligne menant à mon auth.txt pour ne plus à avoir à taper mes identifiants.
  • J’ai créé le fichier vpn.sh où j’ai indiqué mon chemin vers mon .ovpn

En entrant la commande sh vpn.sh ça lance le vpn donc youpi !!

Il ne me reste plus qu’à automatiser mais j’ai compris qu’avec un script ça pouvait se faire comme plus haut.

Je reviens vers vous en espérant qu’il me reste des cheveux avant la fin de la journée :wink:

Chers amis,
C’est gagné comme disait une célèbre exploratrice.

Je résume donc toute l’affaire si quelqu’un se trouve avec le même problème que moi :

  1. Suivre la procédure d’installation de votre VPN
  2. Créer un fichier auth.txt dans lequel vous indiquerez : votre identifiant de vpn sur la première ligne et votre mot de passe sur la deuxième.
  3. En accès root, editez la fichier de la localisation à laquelle vous voulez accéder (ex: paris.ovpn) puis sur la ligne « auth-user-pas » faites un espace et indiquez le chemin complet de votre fichier .ovpn (/etc/openvpn/paris.ovpn)
  4. Creer un script ans /home/pi:
    nano vpn.sh
    A l’interieur de celui ci écrire
    #!/bin/sh
    /etc/openvpn/paris.ovpn puis enregistrez

tapez ensuite
sudo chmod 755 vpn.sh

Enfin, (pour l’automatisation)

sudo contrab -e

a l’intérieur duquel vous indiquerez le chemin vers votre script

@reboot /home/pi/vpn.sh

Merci beaucoup à vous qui avez pris du temps pour résoudre mon problème.

Content pour toi,
Bonne soirée et maintenant bonne nuit car tu vas pouvoir enfin dormir …
:wink:.