Mon script de sélection VPN

Permalink | Publié le 18 juin 2017, dernière modification le 8 avril 2018.
Tags :

Mon fournisseur de VPN me propose différentes configurations à utiliser avec OpenVPN, et je n’utilise pas tout le temps la même selon mes besoins. Autant que possible j’utilise une sortie en France en UDP et IPv6 mais régulièrement je dois avec du TCP en IPv4 sur des réseaux restreints comme ceux de l’Université ou de certains résidences étudiantes. Du coup je me suis conçu un petit script, qui peut être optimisé c’est vrai. Le principe est simple : je lance la commande avec une option et il se connecte automatiquement si l’option est valide, sinon avec une mauvaise option (ou sans), il affiche un menu de description et demande un choix. Il est tout simple, je ne l’ai mis en place que récemment mais il me fait gagner un temps précieux, c’est pourquoi je le partage ici.

#!/bin/bash

# Script de connexion VPN
# Menu de choix du fichier de configuration
# Possibilité de répondre au menu via un argument

# VPN pré-sélectionné
if [ $# -ne 0 ]; then
	choix=$1

# VPN à choisir
else
	echo -e "\n ## Options du VPN ##"
    echo " 1xx -> UDP"
    echo " 2xx -> TCP"
    echo " x1x -> IPv6"
    echo " x2x -> IPv4"
    echo " xx1 -> France"
    echo " xx2 -> Lettonie"
    echo " xx3 -> Pays-Bas [NO P2P]"
    echo " xx4 -> États-Unis [NO P2P]"
    echo " 0 -> Abandon"
    echo -e "\n ## Exemples ##"
    echo " 111 -> UDP / IPv6 / France : rapide"
    echo " 221 -> TCP / IPv4 / France : réseau restreint"
    echo " 112 -> UDP / IPv6 / Lettonie : rapide, sortie hors-France"
    echo -e " 222 -> TCP / IPv4 / Lettonie : réseau restreint, sortie hors-France\n"

    echo -e "\nChoix :"
    read choix
fi

# Tant que la combinaison n'est pas valide on redemande
# On y passe forcément une fois
config="0"
while [ $config == "0" ]
do

    # Sélection du fichier correspond
    case $choix in
        "111") config="ccrypto-fr-udp-ipv6.ovpn" ;;
        "112") config="ccrypto-lv-udp-ipv6.ovpn" ;;
        "113") config="ccrypto-nl-udp-ipv6.ovpn" ;;
        "114") config="ccrypto-us-udp-ipv6.ovpn" ;;

        "121") config="ccrypto-fr-udp-ipv4.ovpn" ;;
        "122") config="ccrypto-lv-udp-ipv4.ovpn" ;;
        "123") config="ccrypto-nl-udp-ipv4.ovpn" ;;
        "124") config="ccrypto-us-udp-ipv4.ovpn" ;;

        "211") config="ccrypto-fr-tcp-ipv6.ovpn" ;;
        "212") config="ccrypto-lv-tcp-ipv6.ovpn" ;;
        "213") config="ccrypto-nl-tcp-ipv6.ovpn" ;;
        "214") config="ccrypto-us-tcp-ipv6.ovpn" ;;

        "221") config="ccrypto-fr-tcp-ipv4.ovpn" ;;
        "222") config="ccrypto-lv-tcp-ipv4.ovpn" ;;
        "223") config="ccrypto-nl-tcp-ipv4.ovpn" ;;
        "224") config="ccrypto-us-tcp-ipv4.ovpn" ;;

        "0") echo "Fin du programme"
            config="999" ;;

        *) echo "Combinaison invalide"
            config="0" ;;
    esac

    # Combinaison invalide : on redemande
    if [ $config == "0" ]; then
        echo -e "\nNouveau choix :"
        read choix
    fi

done

if [ $config == "999" ]; then
    echo -e "\nAu revoir !\n"
else
    echo -e "\n ### VPN Sélectionné : $config ###\n"
    cd ~/VPN/
    sudo openvpn $config
    cd ~/
fi

Commentaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *