Configuration OpenVPN sur EdgeRouter-X

Bonjour à tous, aujourd’hui nous allons voir comment configurer un tunnel VPN client to site via OpenVPN sur le routeur EdgeRouter-X de Ubiquiti.

Ce petit routeur d’une cinquantaine d’euros permet de gérer son (ou plutôt ses) LAN(s) de manière optimale. Vous pouvez le trouver sur amazon.

Création utilisateur OpenVPN

Tout d’abord, il faut créer le compte utilisateur que vous allez utiliser pour vous connecter au VPN. Pour cela, direction d’interface CLI du routeur :

Puis, il faut entrer en mode configuration :

Votre utilisateur est désormais créé, vous pouvez vérifier en saisissant la commande suivante :

Création des certificats

Nous pouvons passer désormais à la création des ceritifcats. Pour ce faire, vous devez vous connecter en root sur le routeur :

Puis, nous allons dans le dossier de configuration OpenVPN que nous créons au préalable :

Nous commençons par créer l’autorité de certification qui nous permettra d’approuver nos certificats serveur et utilisateur.

Vous devez répondre aux questions posées.

Si vous avez laissé le nom par défaut de la CA, le certificat se trouve dans le répertoire /config/openvpn/demoCA et se nomme cacert.pem

Puis, il faut créer le certificat serveur pour OpenVPN. Pour cela, nous allons créer un CSR (une demande de certificat) :

Vous devez là encore répondre aux questions.

Vous avez normalement deux fichiers qui ont été générés :

  • newkey.pem : clé privé du CSR
  • newreq.pem : CSR généré

Nous devons désormais signer le certificat serveur via la CA générée précédement :

Après avoir saisie le mot de passe de la CA, votre certificat est signé et un nouveau fichier a été créé :

  • newcert.pem : certificat du serveur signé par la CA

Pour une meilleure gestion des certificats, je vous recommande de renommer vos certificats :

Et de supprimer votre CSR qui ne sert plus à rien :

Nous allons désormais utiliser openssl qui va déchiffrer la clé privée afin qu’OpenVPN puisse utiliser la clé sans saisir la passphrase :

Pour effectuer les échanges des clés de manière sécurisé, nous utilisons Diffie Hellman avec la commande suivante :

La génération des paramètres va prendre environs 30 minutes.

Nous allons maintenant créer le certificat de l’utilisateur qui va se connecter au VPN :

NB : Dans la partie « Common Name », saisissez le nom de l’utilisateur.

Configuration routeur

Nous allons maintenant pouvoir faire la configuration du routeur pour initialiser OpenVPN.

Tout d’abord, vous devez revenir en mode « admin » pour commencer la configuration :

Puis, nous commençons par déclarer l’interface vtun0 en lui ajoutant une description, le mode de chiffrement :

On crée un réseau pour le VPN, on ajoute les routes si on souhaite inter-connecter le réseau du VPN et d’autres réseaux, et le dns du réseau :

Les différents fichiers de configuration pour les certificats :

Enfin, les options d’OpenVPN pour son bon fonctionnement :

Il faut autoriser les flux dans le firewall, pour cela on ajoute les commandes suivantes :

On active l’écoute des requêtes DNS sur l’interface OpenVPN :

Le fichier OVPN pour le client

Pour la connexion du client, il suffit de créer le fichier .ovpn avec les infos ci-dessous :

Pour rappel, les différents fichier que vous avez besoin pour compléter votre fichier .ovpn :

  • /config/openvpn/demoCA/cacert.pem
  • /config/openvpn/utilisateurOpenVPN.pem
  • /config/openvpn/utilisateurOpenVPN-decrypted.key

Si vous souahitez récupérer votre IP public, vous pouvez éxécuter la commade suivante :

Vous pouvez vérifier votre configuration en éxécutant la commande suivante :

Vous pouvez désormais importer le fichier .ovpn dans votre client OpenVPN, et tester la connexion.

J’espère que l’article vous aura plu. N’hésitez pas à commenter si vous avez la moindre remarque.

A bientôt,

Fabio Pace.

2 Replies to “Configuration OpenVPN sur EdgeRouter-X”

  1. Bonjour,

    Quel débit pouvez vous atteindre avec cet équipement et cette config ?

    J’ai un vpn entre un serveur debian et un edgerouter 3 et les perfs sont déplorables (<1Mb/s)

    Merci

    1. Bonjour,

      Le débit que nous pouvons atteindre dépend bien évidement des lignes internet des deux cotés. J’ai fait quelque tests de débits :
      ADLS : Download 8,77 Mb/s | Upload : 0,83 Mb/s
      ADLS vers Fibre (200 Mb/s max) via VPN OpenVPN : Download : 7,84 Mb/s | Upload : 0,74 Mb/s

      4G : Downlaod : 25,87 Mb/s | Upload : 2,19 Mb/s
      4G vers Fibre (200 Mb/s max) via VPN OpenVPN : Download : 12,31 Mb/s | Upload : 1,26 Mb/s

      Fibre (1 Gb/s) en utilisation : Download : 182,10 Mb/s | Upload : 184,87 Mb/s
      Fibre (1 Gb/s) en utilisation vers Fibre (200 Mb/s max) via VPN OpenVPN : Download : 14,63 Mb/s | Upload : 7,07 Mb/s

      Avec toutes ces valeurs, on peut voir une moyenne entre 8 Mb/s et 15 Mb/s en fonction de la source internet. Il est vrai que l’on perd beacuoup avec deux connexions fibre (CF troisième test), mais il ne faut pas oublier que la connexion VPN permet de chiffrer les flux entre deux points. Donc il est logique que la bande passante diminue.
      Je vais essayer de mettre en place un VPN IPSEC entre deux sites pour tester les performances. Mais attention aux parametrès de ton tunnel, par exemple, vaut mieux priviégier un chiffrement avec AES en 128 bits, que 256 bits… AES128 étant encore très sécurisé et plus performant car la longueur de clé est inférieure. Pour le hashage à l’interieur du tunnel, tu peux utiliser SHA1 même s’il est déprécié du fait de sa sécurité, mais le tunnel étant déjà monté, tu peux utiliser cette fonction de hashage en toute sécurité.

      J’espère avoir répondu à tes questions, je reste disponible pour échanger davantage.

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.