vide_menu.png

Texte à méditer :   Pour un audiophile, rien de mieux que Daphile pour écouter la musique dématérialisée...   
Vous êtes ici :   Accueil » Stopper la connection internet si le VPN se déconnecte

Stopper la connection internet si le VPN se déconnecte

Si vous utilisez votre connection internet derrière un VPN, vous souhaitez sans doute interrompre votre connection si le VPN se déconnecte.

Certains VPN propose cette fonction (kill switch). Dans le cas de Surfshark VPN sous Linux par exemple, celui-ci fonctionne dans un terminal et cette fonction ne semble pas implémentée. Pour remédier à ce petit souci, j'ai procédé comme suit :

- créer un fichier que vous nommerez par exemple vpnguard avec l'éditeur de texte et saisissez le code suivant :

 #!/bin/sh
while [ 1 ]
do
echo "IFCONFIG :"
ifconfig tun0 || sudo ifconfig enp0s25 down 
sleep 10
done

- A noter, adapter la ligne ifconfig en fonction de vos paramètres, tun0 est ma connection vpn, enp0s25 correspond a ma connection via la carte ethernet. Quand le VPN est actif, la connection tun0 est active et remplace la connection via enp0s25. Lorsque le VPN se déconnecte ou s'arrête, la connection enp0s25 redevient active, la commande "sudo ifconfig enp0s25 down" stoppe cette connection. 

Pour connaitre comment votre connection est nommée, ouvrir un terminal et saisir la commande ifconfig

Exemple de ce que me renvoit la commande ifconfig :

[23:37:00] linopen:~ $ ifconfig
enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.111.1.27  netmask 255.255.255.0  broadcast 192.189.1.315
        inet6 2ab1:a0e:3ac:20d0:be60:5bff:fea3:49ac 

        prefixlen 64  scopeid 0x0<global>
        inet6 2a01:e0a:3ac:20d0:cdf1:ebf:c7ac:1166 

        prefixlen 64  scopeid 0x0<global>
        inet6 fe80::be30:b5ff:fea3:49ac  prefixlen 64  scopeid 0x20<link>
        ether bc:30:49:a3:a3:ac  txqueuelen 1000  (Ethernet)
        RX packets 956063  bytes 1097703946 (1.0 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 470081  bytes 79598290 (79.5 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 21  memory 0xf7ae0000-f7b00000 

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 128582  bytes 12588058 (12.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 128582  bytes 12588058 (12.5 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.4.4.8  netmask 255.255.255.0  destination 10.4.4.8
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 

        txqueuelen 100  (UNSPEC)
        RX packets 800945  bytes 975391298 (975.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 318661  bytes 38249765 (38.2 MB)
        TX errors 0  dropped 120660 overruns 0  carrier 0  collisions 0

[23:37:07] linopen:~ $

- Enregistrer et fermer l'éditeur.

- Rendre ensuite ce fichier exécutable , clic droit sur le fichier, puis Propriétés, puis onglet Permissions, puis cocher la case "Autoriser l'exécution du fichier comme un programme"

- copier ensuite ce fichier dans le dossier /usr/bin (avec les droits administrateur, clic droit sur le dossier /bin et ouvrir en tant qu'administrateur)

- fermez votre gestionnaire de fichiers et retournez ensuite sur votre bureau, clic droit, créer un lanceur, une fenetre s'ouvre, renseignez comme ceci :

type : application dans un terminal

nom : vpnguard

commande : vpnguard

Puis valider.

Vous pouvez désormais lancer cette application créée via le raccourci sur votre bureau, ou en ouvrant un terminal et saisir vpnguard.

Dès lors que votre VPN fera des caprices, votre connection internet sera coupée.

Attention toutefois à toujours laisser cette fenêtre de terminal active (vous pouvez la réduire mais ne pas la fermer).

On peut améliorer un peu ce script comme je l'ai fait, dans mon cas j'utilise le VPN Surfshark.

Les lignes echo "VPN :" et sudo surfshark-vpn status ne sont utiles pour vous seulement si vous utilisez Surfshark VPN, il donne des infos sur la connection (état, adresse IP, paquets envoyés/reçus), dans le cas contraire supprimez ces lignes.

 #!/bin/sh
while [ 1 ]
do
echo "======================================="
echo "VPN STATUS MONITOR AND LIFEGUARD : "
echo "--------------------------------------------------------------------"
echo "IFCONFIG :"
ifconfig tun0 || sudo ifconfig enp0s25 down 
echo "--------------------------------------------------------------------"
echo "VPN :"
sudo surfshark-vpn status

sleep 10
echo "  "
done


Date de création : 28/03/2020 @ 22:52
Dernière modification : 03/11/2020 @ 18:20
Catégorie : Mémo Linux - Internet
Page lue 2796 fois