Centos 7 : Client OpenVPN (CLI et NetworkManager avec KDE et Gnome3)

De TechWik
Aller à : navigation, rechercher

Cet article propose d'utiliser un profil openvpn (obtenu depuis son server OpenVPN-AccessServer ou fournisseur de VPN)

Installation des paquets

Les paquets nécessaires sont dans le dépôt EPEL 7

  • Le paquet openvpn permet de lancer une connexion VPN en mode commande.
  • Le paquet kde-plasma-networkmanagement-openvpn (+ dépendance NetworkManager-openvpn) permet de configurer et démarrer une connexion VPN depuis le gestionnaire de connexions.
 $ sudo yum -y install openvpn kde-plasma-networkmanagement-openvpn

Connexion en mode ligne de commande avec openvpn

le client openvpn permet de lancer manuellement une connexion VPN.

 $ sudo openvpn --config client_ovhvps.ovpn

Par défaut, le fichier de configuration contient une directive

 auth-user-pass

Dans ce cas, le client demandera les informations d'authentification à chaque appel. On peut mémoriser ces informations dans un fichier sous la forme:

 moncomptevpn
 monmotdepasse

Il suffit de préciser le chemin de ce fichier après la directive auth-user-pass, par exemple:

 auth-user-pass /home/moncompte/.ovpn/pass.vpnxxx

Attention évidemment aux permissions d'accès au répertoire .ovpn...

Connexion depuis le gestionnaire de connexions KDE

Pour configurer la connexion dans le gestionnaire de connexions KDE, il faut extraire du fichier .ovpn les certificats et clefs. Par exemple, on va les stocker dans ~/.ovpn/ :

 vpnxxx_ca.crt  vpnxxx_cert.crt  vpnxxx.key  vpnxxx_tlsauth.key

Pour ce faire, il faut extraire vers vpnxxx_ca.crt le certificat contenu entre les balises <ca>...</ca>, vers vpnxxx_cert.crt le certificat contenu entre les balises <cert>...</cert>," vers vpnxxx_tlsauth.crt le certificat contenu entre les balises <tls-auth>...</tls-auth>, et vers vpnxxx.key le certificat contenu entre les balises <key>...</key>.

Ensuite, dans l'onglet VPN du gestionnaire de connexions, effectuer "import", et sélectionner le fichier .ovpn. A ce stade, l'extension kde-openvpn a pris en compte une partie des infos venant du fichier .ovpn.

Il faut configurer certificats, nom et mot de passe dans l'onglet "Parametres requis":

Kde nm config certs et userpw.png

Et dans l'onglet "Paramètres TLS optionnels", ajouter la clef d'authentification pour la connexion TLS.

Kde nm ovpn tls auth.png

Enregistrer les modifications, et activer la connexion.

Connexion depuis le gestionnaire de connexions Gnome

Pour utiliser le profil de connexion OpenVPN avec le bureau Gnome, vérifier que les paquets NetworkManager-openconnect-gnome et NetworkManager-openvpn-gnome sont installés.

Ensuite:

  • Ouvrir l'outil de paramètres, section 'Réseau'
  • Ajouter une connexion, et choisir 'Importer depuis un fichier'
  • Sélectionner le fichier .ovpn : il est pris en charge complètement par le plugin NetworkManager-openvpn-gnome,
  • il reste juste à préciser le compte utilisateur et mot de passe dans la section 'Identité' de la connexion. Attention: pour le champ mot de passe, il faut cocher la petite icône à droite et choisir 'stocker pour tous les utilisateurs' (indépendamment du choix d'autoriser la connexion aux autres utilisateurs), à défaut de cela, la connexion échoue avec le message suivant dans syslog: "Failed to request VPN secrets #3: No agents were available for this request."

Network Manager : désactiver IPv6 lors de la connexion à un VPN

Bien que supporté par openVPN (cf cet article), le support de l'IPv6 ne semble pas se faire sur import d'un profil de openVPN-AS. Si l'IPv6 n'est pas strictement requis, on peut le désactiver automatiquement lors du démarrage d'un VPN avec un script dispatcheur de NetworkManager:

Créer le fichier /etc/NetworkManager/dispatcher.d/99-vpn-ipv6-switch contenant :

#!/bin/sh
# dispatch evenements NetworkManager 
# (des)activation ipv6 sur evt vpn-up/vpn-down
#

INTERFACE="$1"
ACTION="$2"

case $ACTION in
    vpn-up)
    sysctl -w net.ipv6.conf.all.disable_ipv6=1
    ;;

    vpn-down)
    sysctl -w net.ipv6.conf.all.disable_ipv6=0
    ;;
esac

exit 0

Et le rendre exécutable :

chmod 755 /etc/NetworkManager/dispatcher.d/99-vpn-ipv6-switch

Des variables d'environnements sont disponibles (man NetworkManager section DISPATCHER SCRIPTS pour plus d'informations)