Dominique Meeùs
Dernière modification le   
retour à la table des matières — à l’index — à ma page de départ

Virtual Private Network avec OpenVPN

Un VPN crée à travers Internet un tunnel, une liaison permanente stable (en principe) et privée (cryptée) avec un serveur. Ce tunnel recrée virtuellement la situation où l’on se trouverait au bureau, relié au LAN de son entreprise ou institution. On a alors accès aux mêmes partages, comme si on y était. Un programme libre le propose : OpenVPN. Je suis incompétent pour l’établissement d’un serveur VPN. Je ne parle ici que du client. Il faut pour cela installer le paquet openvpn et ses dépendances.

On reçoit de l’administrateur un nom d’utilisateur et un mot de passe pour le VPN, plus une archive comprimée qui contient tout les paramètres et toutes les clefs nécessaires. Le mieux est de créer un répertoire dédié, par exemple /home/moi/.ovpn et d’y décompresser tout ce truc. (Attention si le fichier comprimé propose un répertoire, il ne faut pas deux étages. Il faut alors le décomprimer au niveau /home et renommer .ovpn le répertoire fourni par l’archive.) Le répertoire contient alors entre autres un fichier de configuration genre myOpenVPN.ovpn. Dans un terminal, s’étant positionné dans le dossier ci-dessus (cd /home/moi/.ovpn), on fait :

sudo openvpn ./myOpenVPN.ovpn

On doit alors donner son mot de passe de superutilisateur Ubuntu (pour sudo) puis son identifiant et son mot de passe pour le VPN. On a alors une série de messages, dont des reproches parce que les divers fichiers qu’on a mis dans ~/.ovpn sont lisibles par trop de gens. Si tout va bien, la commande ne se termine pas (on laisse le terminal ouvert) et on est en VPN. On peut le vérifier en montant un partage du LAN. On arrête dans le terminal par Ctrl+C (après avoir démonté les partages).

Si on a l’intention de continuer à travailler ainsi en ligne de commande (mais voir plus loin l’option Network Manager), on peut procéder à quelques améliorations. D’abord, on peut écrire son identifiant et son mot de passe VPN dans un fichier de credentials comme pour mount et fstab dans un montage Samba. Mais attention, la syntaxe est différente. Il ne s’agit pas de mode clef=valeur, mais des seules valeurs, sur deux lignes, donc l’identifiant (sans rien d’autre, pas d’username=) sur la première ligne et le mot de passe (sans rien d’autre, pas de password=) sur la deuxième. Dans le fichier de configuration genre myOpenVPN.ovpn, il faut écrire le nom (arbitraire) de ce fichier (et son chemin) après auth-user-pass, sur la même ligne, par exemple auth-user-pass /home/moi/.config/VPNcredentials. On pourrait aussi le mettre dans le même répertoire .ovpn que les autres fichiers. Ensuite, on peut rendre ce fichier d’identification et tous les fichiers du répertoire .ovpn propriété de root et en lecture seule pour lui seul (aucun accès au groupe ni aux autres). C’est plus sûr et cela évitera la série de WARNING au démarrage de la commande openvpn comme ci-dessus.

Cependant, comme le Network Manager peut gérer le VPN, on aurait tort de s’en priver et de continuer en ligne de commande. (Il peut être nécessaire d’installer le paquet network-manager-openvpn-gnome s’il ne l’est pas encore.) Le Network Manager place une icône de réseau dans la barre de notification (habituellement en haut à droite de l’écran). La commande VPN/Configurer le VPN ou bien tout en bas Modifier… proposent Ajouter. Dans la sélection du type de connexion, attention de résister à la tendance bien naturelle de choisir OpenVPN 1. Il faut choisir la dernière option, tout en bas, Importer…. En ligne de commande, on lançait openvpn comme root par sudo. Par contre le Network Manager, en tous cas pour ce qui nous intéresse ici, est un programme utilisateur. Donc contrairement à la situation ci-dessus, il faut que tous les fichiers de configuration, de clefs etc. du dossier .ovpn (plus peut-être le fichier de credentials) appartiennent à l’utilisateur, pas à root. Cependant il est toujours bon que ce soit en lecture seule et inaccessible au groupe et aux autres. Cela étant, le fichier à importer dans le Network Manager est le fichier genre myOpenVPN.ovpn. Je ne pense pas que le Network Manager prend en compte le fichier de credentials, mais sa mention dans le myOpenVPN.ovpn ne dérange pas. La fenêtre de dialogue demande identifiant et mot de passe et propose de les enregistrer. Elle demande aussi, dans un champ plus bas, le mot de passe de la clef. Y remettre le même mot de passe.

Le VPN ainsi créé par importation des fichiers fournis est proposé à la rubrique VPN du Network Manager dans la zone de notification. On active le tunnel en cliquant son nom ; ce nom est alors coché et la commande Déconnecter le VPN, qui était grisée, devient active. Sinon, se plonger dans la lecture passionnante de la fin du journal /var/log/sys.log/.

Notes
1
Pour créer une nouvelle connexion OpenVPN, il faut répondre à toute sorte de questions qui me dépassent. Il faudrait en fait que l’administrateur du serveur VPN fasse l’installation, ou fournisse en clair et en détail avec beaucoup d’explications ce qu’il a plutôt compacté dans l’archive reçue.
Dominique Meeùs . Date: 2011… 2017