Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
client_openvpn [Le 20/08/2013, 15:37] 82.249.147.161 [Utilisation] |
client_openvpn [Le 30/11/2017, 23:01] 193.48.127.12 [Sans interface graphique] |
||
---|---|---|---|
Ligne 35: | Ligne 35: | ||
Un clic sur l'icône de network-manager montre un champ **Connexions VPN**, qui permet de configurer le VPN. L'interface est assez intuitive, mais aussi assez limitée par rapport aux nombreuses options disponibles dans le fichier de configuration. | Un clic sur l'icône de network-manager montre un champ **Connexions VPN**, qui permet de configurer le VPN. L'interface est assez intuitive, mais aussi assez limitée par rapport aux nombreuses options disponibles dans le fichier de configuration. | ||
+ | |||
+ | Sur Xubuntu 16.04 (au moins) il faut ajouter le paquet [[apt>network-manager-openvpn-gnome|network-manager-openvpn-gnome]] pour que l'interface propose un VPN de type openvpn ou l'importation d'un fichier de configuration openvpn. | ||
Pour une utilisation basique, ou si les réglages envoyés par le serveur au client vous conviennent ce moyen est suffisant. | Pour une utilisation basique, ou si les réglages envoyés par le serveur au client vous conviennent ce moyen est suffisant. | ||
Ligne 58: | Ligne 60: | ||
<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 73: | Ligne 74: | ||
gsettings set com.canonical.Unity.Panel systray-whitelist "`gsettings get com.canonical.Unity.Panel systray-whitelist |sed s/]/,\ \'gopenvpn\']/g`" | gsettings set com.canonical.Unity.Panel systray-whitelist "`gsettings get com.canonical.Unity.Panel systray-whitelist |sed s/]/,\ \'gopenvpn\']/g`" | ||
</code> | </code> | ||
+ | |||
+ | ==== Avec l'application propre ==== | ||
+ | |||
+ | Certains fournisseurs tels que [[https://airvpn.org|AirVPN]] proposent leur propre interface graphique. C'est généralement la méthode la plus simple. | ||
==== Routage ==== | ==== Routage ==== | ||
Ligne 108: | Ligne 113: | ||
//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. | ||
+ | |||
+ | |||
+ |