11

Configurer NetworkManager pour se connecter à un serveur OpenVPN

L’outil de gestion des connexions réseau, qui est présent dans les principales distributions GNU/linux, se nome NetworkManager. Son rôle est de simplifier le gestion du paramétrage des diverses connexion réseau possible. Cependant, pour se connecter sur un Serveur OpenVPN, il faut installer un paquet supplémentaire : network-manager-openvpn.

Configurer NetworkManager pour se connecter à un serveur OpenVPN

Si vous avez installé votre serveur OpenVPN avec le script openvpn-install, le fichier de sortie .ovpn n’est malheureusement pas exploitable pour network-manager-openvpn. Non pas que le fichier ne soit pas bon, car il fonctionne parfaitement sur le client Android et Windows, c’est dû à un bug de network-manager-openvpn.

Pour contourner ce bug, on va utiliser la commande sed pour extraire le certificat et clés pour les importer individuellement dans NetworkManager.

Pour rappel, j’ai modifié le script initial d’Angristan pour ajouter la directive tls-auth chiffrée avec une clé dédiée, nommée ta.key .

Extraire le certificat et clés d’un fichier .ovpn

Pour ce faire, suivre les indications :

  • Se rendre ou se trouve le fichier .ovpn créé par le script openvpn-install, dans mon cas :
    cd ~/openvpn/
  • Créer un script bash pour extraire les fichiers avec la commande sed :
    nano gen_fichier.sh

    gen_fichier

  • Rendre le script exécutable :
  • chmod +x gen_fichier.sh
  • Exécuter le script :
  • ./gen_fichier.sh client.ovpn
  • Exemple de sortie :
    • client.ovpn.crt
    • client.ovpn.key
    • client.ovpn.ta.key

Importer le certificats et les clés OpenVPN dans NetwokManager

  • Ouvrir NetworkManager :
  • networkmanager-pptp-01

  • Ajouter une connexion en cliquant sur l’icône « + » :
  • network-01

  • Choisir VPN :
  • network-02

  • Choisir OpenVPN :
  • network-03

  • Renseigner les cases :
    network-04

    • 1 : IP ou FQDN de la passerelle OpenVPN
    • 2 : Certificat de l’utlisateur
    • 3 : Certificat du CA
    • 4 : Clé privé
    • 5 : Cliquer sur Avancée
  • Onglet Général : cliquer sur Configurer l’interface TUN et compression LZO
  • network-10

  • Onglet Sécurité : Sélectionner le chiffrement et l’auth HMAC
  • network-11

  • Onglet Authentification TLS : Importer la clé client.ovpn.ta.key et choisir 1, puis cliquer sur valider
  • network-08

  • Cliquer sur « Add » :
  • network-09

  • Activer la connexion VPN :
    • 1 : Pousser le curseur pour se connecter au VPN
    • 2 : Status de la connexion, ici c’est bien connecté
  • network-12

Partager l'article :





fred

Administrateur Système autodidacte et utilisateur au quotidien de GNU/Linux (Debian, Ubuntu, Manjaro et un peu de CentOS).

11 Comments

  1. Bonjour,
    La commande sed ne fonctionne pas :
    sed: -e expression n°1, caractère 0: pas d’expression régulière précédente
    L’erreur est il lié au quote (‘) ?

  2. Bonjour Yacine,
    effectivement, il y a un problème car le navigateur interprète le code :/
    j’ai modifié l’article en conséquence…

  3. Petit point de détail sur lequel j’ai bloqué plusieurs fois :
    Si vous configurez NM pour qu’il se connecte au VPN dès l’allumage du système, il ne faut pas oublier d’appuyer sur l’image des deux petits bonhommes et de cocher rendre accessible le mot de passe pour tous les utilisateurs dans le champ : « mot de passe de la clé privée ». Sinon la connexion ne se fera pas automatiquement.
    L’ergonomie est à revoir sur ce point…

  4. Yo ! Je me gourre quelque part maizou ?
    sed: -e expression n°1, caractère 26: caractères inutiles après la commande

    sed ‘1,//d;//,$d’ $1 > $1.ca.crt
    sed ‘1,//d;//,$d’$1 > $1.crt
    sed ‘1,//d;//,$d’ $1 > $1.key
    sed ‘1,//d;//,$d’ $1 > $1.ta.key

  5. #! /bin/bash
    sed ‘1,//d;/,$d’ $1 > $1.ca.crt
    sed ‘1,//d;/,$d’ $1 > $1.crt
    sed ‘1,//d;/,$d’ $1 > $1.key
    sed ‘1,//d;/,$d’ $1 > $1.ta.key

    me donne ces erreurs :
    sed: -e expression #1, char 20: unterminated address regex
    sed: -e expression #1, char 24: unterminated address regex
    sed: -e expression #1, char 22: unterminated address regex
    sed: -e expression #1, char 32: unterminated address regex

  6. Le code posté dans les commentaires est interprété par le navigateur cre qui pose problème de lecteure… fais une capture d’écran de ton script…

  7. Des fichiers .openvpn j’en ai beaucoup. Mais aucun selon votre chemin (et pourtant j’ai suivi le script et activé TUN).
    Comment savoir lequel est le bon? Où se placer? De l’indulgence svp pour un débutant :)

  8. Bonjour aleks101,
    en faite tout dépend où tu as téléchargé tes fichiers, moi par exemple je les ai téléchargé dans /home/fred/Télchargement

  9. Bonjour,
    Sympa de m’avoir répondu aussi vite. (j’avais suivi ce tuto > https://memo-linux.com/installer-facilement-un-serveur-openvpn-sur-debian-ubuntu-et-centos/ )
    Mais en fait j’ai un pb en amont. Impossible d’activer le module TUN. Je m’en suis rendu compte en » sudo openvpn client.ovpn ». Modprobe ne fonctionne pas. Et comme modconf a été supprimé, là je vois pas. J’ai trouvé cet article mais toucher au noyau c’est un peu flippant. Une piste, des idées? Merci beaucoup. https://www.linuxsecrets.com/blog/26linux-kernel-compiling-and-other-howtos/2016/05/25/1766-enable-linux-tun-module-for-vpn-use-on-ubuntu-or-debian?pagestart=2

  10. Une machine physique. Je tente d’abord dans une VM Ubuntu sous Ubuntu.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *