Linux et les réseaux privés virtuels (VPN)

Connexion au serveur d'accès OpenVPN avec Linux :

Choix du logiciel client

La connexion au serveur d'accès OpenVPN à partir de Linux nécessite un programme client. Il capturera le trafic que vous souhaitez envoyer à travers le tunnel OpenVPN, le cryptera et le transmettra au serveur OpenVPN. Et bien sûr, l'inverse, pour décrypter le trafic de retour.

Paquets Linux discutés

Serveur d'accès OpenVPN openvpn-as

OpenVPN 3 Client Linux openvpn3

OpenVPN open source openvpn

Client Linux OpenVPN 3

Le projet OpenVPN 3 Linux est un nouveau client construit sur la bibliothèque centrale d'OpenVPN 3. Ce client est le programme officiel du client Linux OpenVPN. Vous pouvez trouver un aperçu des fonctionnalités, des questions fréquemment posées et des instructions sur l'installation du paquet openvpn3 sur notre site OpenVPN 3 pour Linux.

Après avoir suivi les instructions pour installer le client, vous aurez besoin d'un profil de connexion. Il s'agit d'un fichier généré par l'installation de votre serveur d'accès OpenVPN pour votre compte utilisateur spécifique. Il contient les certificats et les paramètres de connexion requis. Allez à l'interface web du client de votre serveur d'accès (l'adresse principale, pas la partie /admin). Connectez-vous à l'aide de vos identifiants d'utilisateur. Une liste des fichiers disponibles au téléchargement vous sera présentée. Choisissez le profil d'utilisateur verrouillé ou le profil de connexion automatique, et vous recevrez un fichier client.ovpn. Enregistrez ce fichier sur votre système d'exploitation Linux.

Une fois que vous avez déplacé le fichier sur votre système Linux, vous pouvez l'importer.

openvpn3 config-import --config ${client.ovpn}

Vous pouvez démarrer une nouvelle session VPN :

openvpn3 session-start --config ${client.ovpn}

Vous pouvez gérer une session VPN en cours :

liste des sessions openvpn3

Et ainsi de suite. Vous trouverez plus de détails ici : OpenVPN3Linux.

Programme OpenVPN open source OpenVPN CLI

Le programme client du projet open source peut également se connecter au serveur d'accès. Le paquet est disponible dans la plupart des distributions et est connu simplement sous le nom d'openvpn. Il permet de se connecter à plusieurs serveurs OpenVPN simultanément et est livré avec un composant de service qui peut démarrer automatiquement et silencieusement tout profil de connexion automatique qu'il trouve dans le dossier /etc/openvpn, avant même qu'un utilisateur ne se soit connecté. Ce composant de service peut être configuré pour démarrer automatiquement au moment du démarrage avec les outils disponibles dans votre distribution Linux si elle est prise en charge. Sur Ubuntu et Debian, lorsque vous installez le paquet openvpn, il est automatiquement configuré pour démarrer au moment du démarrage.

Pour installer le client OpenVPN sur Linux, il est possible dans de nombreux cas d'utiliser simplement la version qui se trouve dans le dépôt de logiciels de la distribution Linux elle-même. Si vous rencontrez des problèmes de connectivité lors de l'utilisation de logiciels obsolètes, cela peut être dû à un éventuel manque de prise en charge des versions TLS supérieures dans les anciennes versions d'OpenVPN. Suivez les instructions qui se trouvent sur le wiki de la communauté openvpn si vous souhaitez installer le client OpenVPN sur votre système Linux.

Après l'installation, vous aurez besoin d'un profil de connexion. Il s'agit d'un fichier généré par l'installation de votre serveur d'accès OpenVPN pour votre compte utilisateur spécifique. Il contient les certificats et les paramètres de connexion requis. Allez à l'interface web du client de votre serveur d'accès (l'adresse principale, pas la partie /admin). Connectez-vous à l'aide de vos identifiants d'utilisateur. Une liste des fichiers que vous pouvez télécharger vous sera présentée. Choisissez le profil d'utilisateur verrouillé ou le profil de connexion automatique, et vous recevrez un fichier client.ovpn. Enregistrez ce fichier dans votre système d'exploitation Linux quelque part. Le serveur d'accès OpenVPN prend en charge les profils de connexion verrouillée au serveur, verrouillée à l'utilisateur et de connexion automatique, mais le client en ligne de commande OpenVPN ne peut se connecter qu'avec des profils de connexion verrouillée à l'utilisateur ou de connexion automatique.

Nous supposons que vous allez démarrer la connexion soit par la ligne de commande en tant qu'utilisateur root, soit par le service daemon. Si vous souhaitez que des utilisateurs non privilégiés puissent établir une connexion, consultez le wiki de la communauté pour plus d'informations sur la manière de mettre en œuvre cette fonctionnalité. Nous allons ici nous concentrer sur la mise en œuvre la plus simple ; exécuter la connexion en tant qu'utilisateur root directement, ou via le service daemon.

Démarrez manuellement une connexion avec un profil de connexion automatique :

openvpn --config client.ovpn

Démarrez manuellement une connexion avec un profil verrouillé par l'utilisateur :

openvpn --config client.ovpn --auth-user-pass

Si vous utilisez Google Authenticator ou un autre facteur d'authentification supplémentaire, ajoutez le paramètre auth-retry :

openvpn --config client.ovpn --auth-user-pass --auth-retry interact

Pour lancer une connexion automatique via le démon de service, placez client.ovpn dans /etc/openvpn/ et renommez le fichier. Il doit se terminer par .conf comme extension de fichier. Assurez-vous que le service daemon est activé pour fonctionner après un redémarrage, puis redémarrez simplement le système. Le profil de type auto-login sera automatiquement récupéré et la connexion se lancera d'elle-même. Vous pouvez le vérifier en vérifiant la sortie de la commande ifconfig ; vous devriez voir un adaptateur réseau tun0 dans la liste.

Une caractéristique majeure qui manque au client en ligne de commande est la capacité de mettre en place automatiquement des serveurs DNS qui sont poussés par le serveur VPN. C'est possible, mais cela nécessite l'installation d'un programme de gestion DNS tel que resolvconf ou openresolv, et cela peut ou non entrer en conflit avec un logiciel de gestion de réseau existant dans votre système d'exploitation. L'idée ici, cependant, est que vous utilisez un script qui s'exécute lorsque la connexion monte, et lorsqu'elle descend, qui utilise resolvconf ou openresolv pour mettre en œuvre les serveurs DNS pour vous. La raison pour laquelle ce client n'est pas capable de le gérer complètement par lui-même est principalement que dans un système d'exploitation comme Windows, Macintosh, Android ou iOS, il existe déjà une méthode unique établie pour gérer le DNS. Il nous est donc facile de créer un logiciel client pour les systèmes d'exploitation qui savent déjà comment gérer le DNS. Mais Linux est disponible en de nombreuses variantes et prend également en charge différents programmes et méthodes de mise en œuvre des serveurs DNS, et il était donc raisonnable de laisser le support DNS intégré hors du programme OpenVPN et de fournir à la place, lorsque cela est possible, un script qui gère la mise en œuvre du DNS. Un tel script pourrait même être écrit par vous-même pour effectuer toutes les tâches nécessaires à la mise en œuvre des serveurs DNS dans votre situation particulière.

Heureusement, sur Ubuntu et Debian, par exemple, il existe le script /etc/openvpn/update-resolv-conf qui est fourni avec le paquet openvpn qui gère la mise en œuvre du DNS pour ces systèmes d'exploitation. Il vous suffit d'activer l'utilisation de ceux-ci en suivant les instructions :

Ouvrez votre fichier client.ovpn dans un éditeur de texte :

nano client.ovpn

Tout en bas, il suffit d'ajouter ces lignes :

script-sécurité 2

up /etc/openvpn/update-resolv-conf

down /etc/openvpn/update-resolv-conf

La première ligne permet l'utilisation de scripts externes pour gérer les tâches de mise en œuvre du DNS. Les lignes ascendante et descendante servent à mettre en œuvre les serveurs DNS poussés par le serveur VPN lorsque la connexion monte, et ensuite à l'annuler, lorsque la connexion descend.

Programme de gestion de réseau Ubuntu

Il est également possible de se connecter via l'interface graphique en utilisant l'extension openvpn pour le plugin du gestionnaire de réseau Gnome. Mais cette option est actuellement un peu difficile à mettre en place. Par exemple, on suppose à tort que tous les VPN seront capables de rediriger le trafic Internet, et les anciennes versions pourraient ne pas comprendre le format de fichier .ovpn, ce qui vous obligerait à diviser le certificat qui y est intégré en un fichier séparé. Et vous devriez probablement examiner les options pour vous assurer qu'une route de trafic Internet par défaut passant par le serveur VPN n'est pas toujours activée par défaut, en particulier pour les serveurs où vous ne donnez accès qu'à certaines ressources internes, et non à l'ensemble de l'Internet. Toutefois, l'avantage de l'utilisation du composant GUI est que vous pouvez démarrer/arrêter la connexion à partir de l'environnement de bureau sous Linux.