Skip to main content

OPNsense - Configuration OpenVPN

DISCLAIMER : Cette page est en cours de rédaction et son contenu peut être faux ou inexact. Merci de lire cette page avec toutes les précautions nécessaires.

image.png

Difficulté : Intermédiaire


Notions : pare-feu, OPNsense, VPN, OpenVPN



I. Introduction

Dans le contexte du télétravail ou du travail des utilisateurs nomades, il est nécessaire de pouvoir assurer la confidentialité des échanges entre les utilisateurs et l'entreprise.

Pour cela, il faut mettre en place un VPN point-à-point.

C'est l'une des fonctionnalité d'OpenVPN. Celui-ci est présent par défaut dans les OPNsense.

 

OpenVPN peut être configuré de deux façons :

  • Point à point (pour les clients)
  • Site à site (pour relier les différents sites de l'entreprise entre eux)


Cette procédure traitera de la mise en oeuvre d'OpenVPN pour le poit-à-point.

 


II. Prérequis

 

2.1 Initialisation de la CA

 

Pour plus de sécurité, il est préférable que le serveur et les clients puissent s'authentifier entre eux afin de garantir l'identité du pair.

Il faut pour cela initialiser une autorité de certification.

 

Aller dans 'System --> Trust --> Authorities'

image.png

Cliquer sur le '+' pour créer une nouvelle CA.

Laisser la méthode par défaut 'Create an internal Certificate Authority'.

Fournir une description parlante.

image.png

 

Passer le 'Key type' à 'RSA-4096'

Passer le 'Digest Algorithm' à 'SHA512'.

Laisser l'issuer à 'Self Signed' si pas d'autorité au dessus pour signer la CA.

Choisir la durée de vie du certificat. Par défaut, elle est de 825 jours (soit 2 ans et 3 mois)

image.png

 

Remplir les détails du certificat.

image.png

 

Laisser le reste vide, puis faire 'Save'.

La CA est désormais créée.

image.png

 

Info : La CRL (Certificate Revocation List) a été créée en même temps que la CA. Pas besoin de la créer manuellement.

 

2.2 Générer le certificat du serveur

 

Afin que les clients puissent authentifier le serveur, il faut lui générer son certificat.

Pour cela, aller dans 'Trust --> Certificates'.

image.png

 

Puis faire '+' pour créer un certificat.

Laisser la méthode 'Create an internal certificate'.

Entrer la description.

image.png

 

Choisir le type 'Server Certificate'.

Laisser par défaut pour la 'Private Key Location' : 'Save on this firewall'.

Laisser ou modifier le 'Key type' et le 'Digest Algorithm' selon la convenance.

Changer 'Issuer' pour le faire correspondre à la CA créée plus tôt.

Ajuster la 'Lifetime' à la convenance ( par défaut 397 jours soit 1an et 3 mois ).

image.png

 

Les données du certificat sont pré-remplies avec celles de la CA. Il suffit d'ajouter le FQDN du serveur VPN.

 

Attention : Il s'agit ici de l'adresse externe du VPN tel que les clients qui se situeront en dehors du parc la résoudront. Ce qui signifie qu'il faudra que cette adresse soit effectivement résolvable.

image.png

 

Il est également possible de renseigner des noms alternatifs ou des IP si besoin.

Laisser le reste vide et faire 'Save'.

image.png

 

 


III. InitialisationConfigurer dul'instance serveurOpenVPN

Sur les versions récentes d'OPNsense, OpenVPN n'est plus installé en tant que 'serveur'. Il est désormais initialisé en tant que 'Socket' ou instance.

Ce qui rends possible l'hébergement de plusieurs instances pour un même serveur physique. Permettant ainsi de pouvoir cloisonner les instances selon les niveaux de privilèges / réseaux accessibles.

 

Pour créer l'instance, aller dans 'VPN --> OpenVPN --> Instances'

image.png

 

Puis utiliser '+' pour créer une instance.

 

Choisir le rôle 'Server'.

Entrer une description parlante.

Laisser la case 'Enabled' cochée.

image.png

 

Choisir le protocole à utiliser (ici 'UDP').

    'UDP' --> Plus rapide, mais pas de contrôle d'intégrité donc perte de paquet si connexion pas stable. 'TCP' --> Plus lent mais plus stable.

     

    Choisir le port. Par convention, le port historique est : 1194

    Définir la 'Bind address'. C'est l'adresse sur laquelle l'instance sera en écoute. En l'occurence, 'l'IP publique'.

     

    Choisir le type de montage  (ici 'TUN').

      'TUN' --> L3. Le tunnel est monté en tant que réseau d'interconnexion avec son adressage IP et son routage. 'TAP' --> L2 over L3. Le tunnel est monté en tant qu'adaptateur réseau et un NAT est mis en place.

       

      Entrer le réseau interne du VPN (ici 10.10.10.0/24).

      Le serveur prendra automatiquement la première IP disponible sur la plage et affectera les suivantes séquentiellement aux clients.

       

      Ne pas toucher aux autres options de cette catégorie.

      image.png

       

      Pour les 'Trusts', choisir le certificat de serveur généré plus tôt.

      Cocher la case 'Verify Remote Certificate'.

      Laisser la CRL à 'none' et la vérification du certificat client à 'Require'.

      Passer la 'Certificate Depth' à 'One (Client+Server)'.

      image.png

       

      Par défaut, pas d'authentification. Celle-ci sera vue ci-après.

      Laisser les autres options par défaut ou vides et passer directement à la partie 'Routing'.


      IV. Création des clients

       

       


      V. Authentification avec Active directory

       

      5.1 Mise en place du lien LDAP(s)

      5.2 Affectation des instances aux groupes

      5.3 Création des règles de pare-feu par groupe