Ordonner à transmission de se fermer si la connexion vpn est perdue ?

Tags: #<Tag:0x00007f50a003d278>

Tout d’abord bonjour à tous et meilleurs voeux 2019 :sparkles:

C’est mon tout premier message sur le forum. Je suis débutant, pas en informatique mais je me familiarise tout juste à linux et en particulier à debian.

Bref, je suis certain qu’il existe une solution à ce que je veux faire, car vu le nombre de commandes et de scripts qu’il est possible de faire, le contraire est impossible.

Encore faut-il savoir quelles commandes ou quels scripts utiliser hein :grin:

Et c’est précisément pour cela que j’ai besoin de vos connaissances les amis :nerd_face:

J’ai simplement besoin d’une astuce pour ordonner au logiciel “Transmission” de se fermer instantanément si la connexion à mon VPN (nordvpn) est perdue. En gros j’ai besoin de mettre en place une “app killswitch maison” car si nordvpn propose cette option pour windows il n’en est rien sur linux.

Je trouve ici et là des astuces sur le net, soit avec le pare feu iptables ou autre scripts incompréhensibles pour mon niveau, de plus tout est en anglais…:zipper_mouth_face:

J’ai en quelque sorte besoin d’une assistance sur-mesure avec des explications adaptées, car je commence tout juste la ligne de commande dans le terminal.

Si vous avez les connaissances et un peu de temps merci de bien vouloir m’aider.

A bientôt j’espère.

Je ne sais pas comment fonctionne le client NordVPN sous Debian.
Peur quelle raison ton VPN tomberait ? Est-ce le client qui plante, la connexion qui est interrompue ? Le client qui est fermé par l’utilisateur ?

Nordvpn sous debian fonctionne via le terminal linux, l’application à proprement parlé n’existe pas sur linux.

Pour en revenir à la perte de connexion du vpn, même si c’est relativement pas souvent cela peut arriver. Soit par perte du signal wifi pendant quelque secondes suffisant pour provoquer une déconnexion reconnexion et donc perte du vpn. La connexion au vpn peut aussi sauter si les services Nordvpn sont en maintenance, cela m’est déjà arrivé.

Voilà pourquoi je cherche une solution.

Ah…
Concrètement, ça se passe en deux étapes :

  1. Il faut détecter la perte de la connexion NordVPN.
  2. Quand cette perte de connexion survient, il faut déclancher la fermeture de transmission.

Pour le second point, il faut juste tuer le processus ou arrêter le service, selon comment tu le lances.
Pour le premier point, comment peux-tu déterminer que la connexion a été interrompue ?

J’utilise nordvpn sur un autre pc sous Windows. Sur ce pc je peux détecter la déconnexion du vpn car l’application propose une option appelée " application killswitch" il suffit d’indiquer qu’elle appli on veux fermer si la connexion au vpn est perdue. Mais sur Linux l’application n’est pas disponible et killswitch ne fonctionne pas comme sur Windows, sur Linux si le killswitch est activé, le réseau est totalement coupé si le vpn est déconnecté. On ne peux pas choisir cette règle pour telles ou telles applications comme c’est possible sous Windows. Il faut trouver une astuce pou faire pareille que sur Windows mais autrement.
C’est précisément pour cela que j’ai besoin d’aide.

Bon ben j’espère qu’un pro de la commande :brain: passera par là et pourra m’aider :wink:

Il faut pouvoir détecter la déconnexion. Tu n’as pas un site qui n’est accessible que via le VPN ?

Je ne comprend pas vraiment ou tu veux en venir, mais c’est surement dû à mon inexpérience.

Mais si en effet je connais un site auquel je ne peux pas accéder sans vpn voici le lien:

https://www.thepiratebay.org/

Il y en a plein d’autres des sites non accessibles sans vpn, peux tu m’expliquer la démarche, que puis-je faire avec cela ?

Surtout, s’il te plaît, si il y a des commandes à taper dans le terminal soit le plus précis possible car je débute vraiment donc c’est quand même ardu pour moi.

Merci de ton aide

Tu ne donnes aucune information sur la façon dont tu montes le VPN, comment veux-tu qu’on puisse t’aider ? Les VPN ne fonctionnent pas tous de la même façon. La méthode pour détecter s’il est monté diffère donc de l’un à l’autre.

Alors étant débutant, mon vocabulaire informatique l’est aussi.

Sinon pour le terme “monter”, je sais qu’on peux monter ou démonter un disque dur par exemple mais monter un vpn alors ca je ne savais pas.

Si tu entends cela par comment je me connecte ou me déconnecte à mon vpn c’est dans le terminal via ces commandes :

“nordvpn connect” (taper seul, le vpn choisit un serveur aléatoire)

Si je veux choisir un serveur particulier par exemple je tape:

“nordvpn connect de444” ( le vpn se connecte au serveur n°444 en Allemagne)

“nordvpn d” (déconnexion du vpn)

Si c’est autre chose que tu entends par “monter” alors expliques moi car je ne connais ce terme autrement.

Ah, on avance.
Le programme “nordvpn” ne fait pas partie de la distribution Debian, d’où vient-il et comment est-il arrivé là ?

Bah je suis abonné à Nordvpn et je l’ai installé.

C’est un peu court.
Tu dis que tu ne connais pas grand-chose à Debian. Dis-toi que nous ne connaissons rien à Nordvpn.

J’ai installé nordvpn avec l’aide de ce lien https://nordvpn.com/fr/download/linux/

j’ai aussi installé openvpn qui était manquant.

Ah, on avance.
Pourquoi a-t-il fallu installer openvpn ? Il ne figure pas dans les dépendances du paquet nordnet. Ce dernier semble embarquer ses propres binaires.
Par contre la page de manuel mentionne l’option “kill switch” :

man nordvpn

   Example 7. Enable Kill Switch
       $ nordvpn set killswitch enabled

Sur Linux si le killswitch est activé, le réseau est totalement coupé si le vpn est déconnecté. On ne peux pas choisir cette règle pour telles ou telles applications comme c’est possible sous Windows. Il faut trouver une astuce pou faire pareille que sur Windows mais autrement.
C’est précisément pour cela que j’ai besoin d’aide.

Bonjour

Je n’utilise pas nordvpn,
mais en essayant de trouver quelques informations au sujet de la fonctionnalité killswitch de nordvpn
j’ai trouvé les deux liens suivants :

www.reedit.com : nordVPN Kill Switch for Linux

www.reedit.com : NordVPN for Linux “Kill Switch” and stop DNS leaks - Ubuntu 18.04 tutorial

Bonjour,

Je vois bien que vous essayez tous de m’aider, mais j’ai l’impression qu’il vous manque des informations pour m’aider à mettre en place ce que je voudrais mettre en place.

C’est à dire: Faire que transmission se coupe dés que la connexion de mon VPN est perdue. Dans le cas ou cela arrive bien sur, c’est relativement rare mais cela arrive.

Pour en revenir aux base cad à l’installation de NORDVPN sur le Raspberry pi voici concrètement tout ce que j’ai fais dans l’ordre:

Etant sur linux j’ai suivi ce tuto Nordvpn pour l’installation https://support.nordvpn.com/1182453582
Vous pourrez même voir les commandes de bases en bas de page qu’il est possible de faire via le terminal.

Après cette installation Nordvpn ne fonctionnait pas correctement.

J’ai donc contacté le service client qui m’a dit que l’application Nordvpn linux ne fonctionne pas très bien sur Raspberry pi du fait de son processeur ARM.

Ils m’ont donc recommandé d’installer openvpn via ce tuto:
https://support.nordvpn.com/1047409772

Miraculeusement après l’installation de openvpn, j’arrive à utiliser le vpn dans le terminal correctement et même avec les commandes nordvpn normales pour linux.

Parce que apparemment en fait on peux se connecter à Nordvpn sur linux de deux façons, la première avec les commandes présentes dans le premier lien ci-dessus et la deuxième via Openvpn et les commandes du deuxième lien.

Nordvpn et Openvpn sont donc installé en parallèle, chacun avec sont dossiers et ses propres fichiers d’installations.

Les commandes de bases de Nordvpn (linux) sont beaucoup plus simples pour moi et de plus beaucoup moins restreintes qu’en passant par Openvpn.

Il semble donc à mon grand étonnement que l’installation d’Openvpn était nécessaire bien que je n’ai pas besoin d’utiliser ses propres commandes pour que mon vpn fonctionne correctement.

Enfin j’ai bien vu le lien que l’un d’entre vous m’a gentiment envoyé :

Cependant, bien que la première partie du tuto soit intéressante et se rapproche de ce que je veux faire, ce n’ai pas cette manipulation qui permettra de faire ce pourquoi je sollicite votre aide.

Ce tuto permet simplement via le pare-feu d’empêcher toutes connexions mise à part un tunnel vpn créé par nos soins. Et je crois qu’un tunnel est égal à une seule adresse IP, hors moi je ne me connecte pas toujours aux mêmes serveurs car les débits ne sont pas tous les mêmes, débit qui est important avec transmission :sunglasses:

A partir de cette masse d’informations et ce pavé qui j’espère vous sera compréhensible, pensez vous pouvoir m’aider pour ceci :

Ordonner à transmission de se fermer si la connexion vpn est perdue ?

Bonjour,

Donc personne ici ne sait comment je peux faire ?
Mon sujet n’est pas résolu, j’ai encore besoin d’aide.

Si vraiment ce que je veux faire n’est pas possible , que quelqu’un me le dise svp et je ferme ce sujet une bonne fois pour toute.

Et si vous avez besoin de plus d’infos hésitez pas demandez moi.

Merci

Alors, une idée qui me vient comme ça:

  • 1 - détecter la perte de la connexion du VPN: je suppose que ton adresse IP publique est différente lorsque tu es connecté via un VPN, par rapport à quand tu es connecté sans VPN. Tu peux noter quelle est ton IP publique “normale” grâce à un service comme http://whatismyip.akamai.com/ (attention, il faut vérifier régulièrement, sur les offres particuliers, l’adresse IP change de temps en temps)
  • 2 - fermer transmission: il faudrait voir si c’est le démon transmission qui tourne en tâche de fond (dans ce cas, sudo systemctl stop <nom du service>), ou un autre processus (dans ce cas sudo killall transmission)

Tu peux mettre tout ça dans un script du style:

#!/bin/bash

# 1 - récupération de l'adresse IP en étant connecté via VPN
IP_PUB=$(curl -s http://whatismyip.akamai.com/)

if [ "$IP_PUB" = "ton adresse IP publique sans VPN" ] ; then
# 2 - arrêter transmission
killall transmission # ou toute autre méthode adaptée pour arrêter transmission
fi

Tu fais exécuter le script toutes les 5 minutes (par exemple, ou toutes les 10 secondes) via cron ou systemd et voilà.