Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| client_openvpn [Le 15/12/2011, 15:17] – modification externe 127.0.0.1 | client_openvpn [Le 11/09/2022, 11:51] (Version actuelle) – Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) moths-art | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> | + | {{tag>brouillon Xenial |
| ---- | ---- | ||
| ====== Client OpenVPN ====== | ====== Client OpenVPN ====== | ||
| - | Le client OpenVPN permet de se connecter à un réseau privé virtuel sur lequel tourne un serveur OpenVPN. Ce type de réseau est fréquemment utilisé pour permettre un accès protégé à des réseaux d' | + | Le client OpenVPN permet de se connecter à un réseau privé virtuel |
| + | Ce type de réseau est [[: | ||
| ===== Installation ===== | ===== Installation ===== | ||
| - | Pour installer le client OpenVPN, il suffit | + | Pour installer le client OpenVPN, il suffit |
| - | + | On pourra aussi [[: | |
| ===== Configuration ===== | ===== Configuration ===== | ||
| ==== Sans interface graphique ==== | ==== Sans interface graphique ==== | ||
| - | Pour définir une connexion à un VPN, il faut écrire | + | Pour définir une connexion à un VPN, il faut disposer d'un fichier contenant certaines informations. |
| + | Ce fichier sera généralement fourni avec vos certificats et clés par le service informatique ou le fournisseur gérant le [[: | ||
| + | L' | ||
| - | Les champs les plus importants de ce fichier sont | + | Les champs les plus importants de ce fichier sont: |
| + | <file - client.conf> | ||
| + | ############################################## | ||
| + | # Sample client-side OpenVPN 2.0 config file # | ||
| + | # for connecting to multi-client server. | ||
| + | # # | ||
| + | # This configuration can be used by multiple # | ||
| + | # clients, however each client should have # | ||
| + | # its own cert and key files. | ||
| + | ############################################## | ||
| - | **remote** | + | # précise |
| + | client | ||
| - | **dev** (tun ou tap) | + | # le type d' |
| + | dev tap | ||
| + | ;dev tun | ||
| - | **proto** | + | # défini le protocole |
| + | proto tcp | ||
| + | ;proto udp | ||
| - | **comp-lzo** | + | # adresse publique du serveur |
| + | remote | ||
| - | **fragment** | + | # les certificats et clés, le certificat et la clé client peuvent être communs à plusieurs clients (comme ci-dessous) |
| + | # ou personnalisé (par exemple: mon_nom.crt et mon_nom.key) | ||
| + | ca ca.crt | ||
| + | cert client.crt | ||
| + | key client.key | ||
| - | **ca** (fichier | + | # vérification du certificat |
| + | remote-cert-tls server | ||
| - | **ns-cert-type** | + | # si le serveur utilise une clé tls- |
| + | tls-auth ta.key 1 | ||
| + | |||
| + | </ | ||
| ==== Avec network-manager-openvpn ==== | ==== Avec network-manager-openvpn ==== | ||
| Un clic sur l' | Un clic sur l' | ||
| + | |||
| + | Sur Xubuntu 16.04 (au moins) il faut ajouter le paquet | ||
| 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 41: | Ligne 68: | ||
| < | < | ||
| - | Si vous utilisez | + | Depuis |
| </ | </ | ||
| ==== Avec kvpnc ==== | ==== Avec kvpnc ==== | ||
| - | Kvpnc est une interface graphique très complète pour gérer de nombreux types de VPN. Elle vous permettra de configurer presque aussi finement votre configuration qu'en éditant à la main le fichier de configuration. Il prend notament en charge les scripts up et down qui peuvent être nécessaires dans certains cas et permet même d'en générer automatiquement. | + | Kvpnc est une interface graphique très complète pour gérer de nombreux types de VPN. Elle vous permettra de configurer presque aussi finement votre configuration qu'en éditant à la main le fichier de configuration. Il prend notament en charge les scripts up et down qui peuvent être nécessaires dans certains cas et permet même d'en générer automatiquement. |
| Kvpnc permet en outre d' | Kvpnc permet en outre d' | ||
| Ligne 52: | Ligne 79: | ||
| ==== Avec gopenvpn ==== | ==== Avec gopenvpn ==== | ||
| - | Si vous voulez | + | Si vous voulez |
| Il existe un paquet binaire pour Jaunty (9.04), malheureusement, | Il existe un paquet binaire pour Jaunty (9.04), malheureusement, | ||
| Ligne 58: | Ligne 85: | ||
| < | < | ||
| cd ~ | cd ~ | ||
| - | svn co https://gopenvpn.svn.sourceforge.net/svnroot/gopenvpn gopenvpn | + | svn co https:// |
| - | cd gopenvpn/ | + | cd gopenvpn |
| ./ | ./ | ||
| intltoolize | intltoolize | ||
| ./configure | ./configure | ||
| - | sed -i s/'# | ||
| make | make | ||
| sudo make install | sudo make install | ||
| Ligne 73: | Ligne 99: | ||
| gsettings set com.canonical.Unity.Panel systray-whitelist " | gsettings set com.canonical.Unity.Panel systray-whitelist " | ||
| </ | </ | ||
| + | |||
| + | ==== Avec l' | ||
| + | |||
| + | Certains fournisseurs tels que [[https:// | ||
| ==== Routage ==== | ==== Routage ==== | ||
| Ligne 87: | Ligne 117: | ||
| Il est à noter que dans le fichier de configuration d' | Il est à noter que dans le fichier de configuration d' | ||
| - | Ainsi pour diriger le traffic destiné au vpn par la passerelle du vpn, on pourra rentrer un | + | Ainsi pour diriger le traffic destiné au vpn par la passerelle du vpn, on pourra rentrer un |
| '' | '' | ||
| Ligne 97: | Ligne 127: | ||
| < | < | ||
| - | Si l'on veut passer des paramètres optionnels à openvpn, on doit alors spécifier aussi l' | + | Si l'on veut passer des paramètres optionnels à openvpn, on doit alors spécifier aussi l' |
| - | On notera qu'il faut les droits d' | + | On notera qu'il faut les droits d' |
| Avec network-manager, | Avec network-manager, | ||
| Ligne 108: | Ligne 138: | ||
| // | // | ||
| + | |||
| + | ===== Sécurisation ===== | ||
| + | Le serveur VPN peut se déconnecter intempestivement, | ||
| + | En voici un basé sur la publication | ||
| + | |||
| + | < | ||
| + | #!/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 https:// | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | #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() | ||
| + | { | ||
| + | # | ||
| + | # | ||
| + | transmission-gtk & | ||
| + | |||
| + | # | ||
| + | # | ||
| + | programID=$(pidof transmission-gtk) # | ||
| + | } | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | nameVPN=" | ||
| + | # | ||
| + | # | ||
| + | myIPext=" | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | #==== Test etat VPN ==== | ||
| + | function testVPN() | ||
| + | #if vpn connected | ||
| + | { | ||
| + | connected=$(nmcli con status | awk -v nVPN=$nameVPN ' | ||
| + | |||
| + | if [ " | ||
| + | vpnuuid=$(nmcli con status | awk -v nVPN=$nameVPN ' | ||
| + | vpn=1 | ||
| + | else | ||
| + | vpn=0 | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | #==== Test etat VPN ==== | ||
| + | function rwaitIPext() | ||
| + | { | ||
| + | IPext=$myIPext | ||
| + | vpn=0 | ||
| + | testVPN | ||
| + | |||
| + | while [ " | ||
| + | do | ||
| + | while [ " | ||
| + | do | ||
| + | sleep 5 | ||
| + | testVPN | ||
| + | done | ||
| + | nmcli -p con up uuid $vpnuuid # | ||
| + | # essai sur un 2eme site si le premier est out | ||
| + | | ||
| + | if [ " | ||
| + | | ||
| + | fi | ||
| + | if [ " | ||
| + | IPext=$myIPext | ||
| + | fi | ||
| + | if [ " | ||
| + | break | ||
| + | fi | ||
| + | sleep 10 # attente que le vpn soit effectif | ||
| + | done | ||
| + | } | ||
| + | |||
| + | |||
| + | #==== VPN nok ==== | ||
| + | function nokVPN() | ||
| + | { | ||
| + | date | ||
| + | echo "VPN disconnected. Stoping VPN dependancies" | ||
| + | if [ " | ||
| + | kill -SIGKILL $programID # | ||
| + | fi | ||
| + | echo "VPN dependancies stopped." | ||
| + | jobs | ||
| + | rwaitIPext # | ||
| + | echo "VPN dependencies restarted." | ||
| + | lanceprocess # | ||
| + | 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 # | ||
| + | lanceprocess | ||
| + | |||
| + | while true; do | ||
| + | testVPN | ||
| + | if [ $vpn = 1 ]; then | ||
| + | okVPN | ||
| + | else | ||
| + | nokVPN | ||
| + | fi | ||
| + | done | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | * recopier le code dans un fichier texte (// | ||
| + | * 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 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, | ||
| + | |||
| + | |||
| + | |||
