Contenu | Rechercher | Menus

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Both sides previous revision Révision précédente
Prochaine révision
Révision précédente
client_openvpn [Le 20/08/2013, 15:37]
82.249.147.161 [Utilisation]
client_openvpn [Le 15/08/2014, 14:48] (Version actuelle)
94.23.168.216 [Avec gopenvpn] BeAVeR
Ligne 58: Ligne 58:
 <​code>​ <​code>​
 cd ~ cd ~
-svn co https://gopenvpn.svn.sourceforge.net/svnroot/gopenvpn gopenvpn +svn co https://​svn.code.sf.net/p/gopenvpn/svn/trunk/gopenvpn gopenvpn 
-cd gopenvpn/​trunk/​gopenvpn+cd gopenvpn
 ./​autogen.sh ./​autogen.sh
 intltoolize intltoolize
 ./configure ./configure
-sed -i s/'#​define USE_GKSU 1'//g config.h 
 make make
 sudo make install sudo make install
Ligne 108: Ligne 107:
  
 //​Contributeurs principaux : [[:​utilisateurs:​gilles|Gilles]],​ [[:​utilisateurs:​Zenigata|Zenigata]].//​ //​Contributeurs principaux : [[:​utilisateurs:​gilles|Gilles]],​ [[:​utilisateurs:​Zenigata|Zenigata]].//​
 +
 +===== Sécurisation =====
 +Le serveur VPN peut se déconnecter intempestivement,​ ceci est gênant pour les clients VPN, lors de téléchargement de torrent(s) par exemple. Plusieurs solutions existent de type programme (vpnautoconnect) ou scripts
 +En voici un basé sur la publication ​   [[http://​ubuntuforums.org/​showthread.php?​t=1941380&​page=2]]
 +
 +<​code>#​--------------------------------------------------
 +#!/bin/bash
 +# auteur: alan524 --  06 Avril 2014
 +#
 +# surveillance de la liaison vpn 
 +#   -> arret du programme de transfert si le vpn se déconnecte
 +#   -> essai périodique de reconnexion vpn avec relance prpgramme
 +#
 +#​--------------------------------------------------
 +# ce programme est basé sur la note publiée ci-après:
 +#  --- cf  http://​ubuntuforums.org/​showthread.php?​t=1941380&​page=2
 +#​--------------------------------------------------
 +#
 +#
 +#
 +#Note: can not use a string to represent the program because the name 
 +#of the string will be stored as the job name instead of the program name.
 +#
 + function lanceprocess()
 + {
 +#​myprogram01 & # replace myprogram01 by program name 
 +#​qbittorrent &​ # ​
 +transmission-gtk &
 +
 +#​programID=`pidof myprogram01` #​ replace myprogram01 by program name 
 +#​programID=$(pidof qbittorrent) # ​
 +programID=$(pidof transmission-gtk) # ​
 + }
 +#
 +#​nameVPN="​myconnexionVPN"​ #​ replace myconnexionVPN by vpn name
 +#​nameVPN="​vyprvpn-PPTP"​ # ​
 +nameVPN="​mullvad_linux"​ # ​
 +#
 +#​myIPext="​xxx.xxx.xxx.xxx"​ #​ replace xxx par mon adresse ip externe (provider)
 +myIPext="​12.345.67.89"​
 +#​-----------------
 +#
 +#
 +#
 +#==== Test etat VPN ====
 + function testVPN()
 + #if vpn connected ​ vpn=1
 + {
 + connected=$(nmcli con status | awk -v nVPN=$nameVPN '​{if($1 == nVPN) {print $5;}; }')
 +
 + if [ "​$connected"​ = "​oui"​ ] || [ "​$connected"​ = "​yes"​ ]; then 
 + vpnuuid=$(nmcli con status | awk -v nVPN=$nameVPN '​{if($1 == nVPN) {print $2;}; }')
 + vpn=1
 + else
 + vpn=0
 + fi
 + }
 +
 +#==== Test etat VPN ====
 + function rwaitIPext()
 + {
 + IPext=$myIPext
 + vpn=0
 + testVPN
 +
 + while [ "​$IPext"​ = "​$myIPext"​ ]
 + do
 +    while [ "​$vpn"​ = 0 ]
 +     do
 +       sleep 5
 +       testVPN
 +    done
 +    nmcli -p con up uuid $vpnuuid #​Retry the VPN
 +    # essai sur un 2eme site si le premier est out
 +    ​IPext=$(wget -qO- www.adresseip.com | grep -Eo '​[0-9]{1,​3}(\.[0-9]{1,​3}){3}'​ | awk 'BEGIN {flag = 0}{if (flag == 0){print $1; flag = 1;}}')
 +    if [ "​$IPext"​ = ""​ ]; then 
 +    ​IPext=$(wget -qO- www.ipchicken.com | grep -Eo '​[0-9]{1,​3}(\.[0-9]{1,​3}){3}'​ | awk 'BEGIN {flag = 0}{if (flag == 0){print $1; flag = 1;}}')
 +    fi
 +    if [ "​$IPext"​ = ""​ ]; then 
 + IPext=$myIPext
 +    fi
 +    if [ "​$IPext"​ != "​$myIPext"​ ]; then 
 + break
 +    fi
 + sleep 10 # attente que le vpn soit effectif
 + done
 + }
 +
 +
 +#==== VPN nok ====
 + function nokVPN()
 + {
 + date
 + echo "VPN disconnected. Stoping VPN dependancies"​
 + if [ "​$programID"​ != 0 ]; then
 + kill -SIGKILL $programID #​Connection lost stop the VPN dependancy.
 + fi
 + echo "VPN dependancies stopped."​
 + jobs
 + rwaitIPext # ​ attente reconnexion
 + echo "VPN dependencies restarted."​
 + lanceprocess #​ relance du process
 + date
 + }
 +
 +#==== VPN OK ====
 + function okVPN()
 + {
 + sleep 1 # surveillance périodique 1 seconde
 + }
 +#​===================
 +#==== Main Proc ====
 +#​===================
 +#
 +#
 +programID=0
 +vpn=0
 +vpnuuid=''​
 +IPext=''​
 +
 + date
 + echo "-- lancement torrent --"
 + echo "-- Activation surveillance VPN --"
 +
 + rwaitIPext #​ connexion OK?
 + lanceprocess
 +
 +while true; do
 + testVPN
 + if [ $vpn = 1 ]; then 
 + okVPN ​
 + else ​
 + nokVPN ​
 + fi
 +done
 +
 +</​code>​
 +
 +
 +  * recopier le code dans un fichier texte  (//​veille-VPN.sh// ​ par exemple), ​
 +  * renseigner: votre adresse ip que vous voulez masquer sur internet, le nom de la connexion VPN ainsi que celui du processus a stopper en cas de défaut du serveur
 +  * sauvegarder le fichier en lui donnant les droits d’exécution
 +  * placer un raccourci sur le bureau.
 +
 +Son utilisation est simple:
 +  * Au niveau de la connexion ne pas cocher la case "​activer automatiquement"​ (fonction assurée par le script)
 +  * Activer le VPN (openVPN, PPTP) via le network manager
 +  * puis lancer dans un terminal le script crée
 +  * Tester le fonctionnement en déconnectant le VPN via le network manager: on constate l’arrêt de la transmission,​ la relance de la connexion puis la reprise du transfert.
 +
 +
 +


Le contenu de ce wiki est sous licence : CC BY-SA v3.0