Configuration du VPN SSL pour utilisateurs nomades

Illustration SSL VPN Wikimédia

Les utilisateurs nomades sont des utilisateurs distants qui ont besoin d’un accès sécurisé au réseau de l’entreprise. Dynfi Firewall implémente OpenVPN pour l’installation de son VPN SSL nomade et offre une intégration OTP (One Time Password) avec des jetons compatibles avec l’authentification 2FA standard.

Tip

Saviez-vous que DynFi Firewall offre une authentification à deux facteurs dans l’ensemble du système ? Voir pour plus d’informations : l’authentification 2FA et le guide pratique de l’authentification 2FA.

Les principaux avantages de l’utilisation du VPN SSL pour les Road Warriors au lieu de l’IPsec sont les suivants :

  • Installation facile sur presque tous les clients mobiles à l’aide du Client Configuration Export de DynFi Firewall.

  • Contrôle d’accès précis en utilisant plusieurs serveurs ou des dérogations spécifiques au client.

  • Pas de problèmes de NAT sans recours au NAT-T

Dans ce guide pratique, nous vous montrerons comment configurer le VPN SSL de DynFi Firewall pour les utilisateurs nomades et nous vous donnerons des exemples de configuration pour :

  • Authentification à deux facteurs (2FA)

  • Authentification à plusieurs facteurs (Certificat client + Mot de passe + OTP)

  • Configuration du client sur Windows, MacOS, iOS et Android

Note

Pour l’exemple, nous utiliserons une IP privée pour notre connexion WAN. Pour ce faire, nous devons désactiver la règle de blocage par défaut sur le réseau étendu afin d’autoriser le trafic privé. Pour ce faire, allez dans Interfaces >> WAN et décochez “Bloquer les réseaux privés”. (N’oubliez pas de sauvegarder et d’appliquer).

Débloquer les réseaux privés dans Dynfi Firewall au niveau de l'interface WAN.

Exemple de configuration

Pour l’exemple de configuration, nous configurons DynFi Firewall

Réseau d’entreprise avec client à distance

Shéma réseau d'une connexion d'un client distant à un serveur de fichier

Détail du réseau d’entreprise

Hostname

fw1

WAN IP

172.18.0.129

LAN IP

192.168.1.1/24

LAN DHCP Range

192.168.1.100-192.168.1.200

SSL VPN Clients

10.10.0.0/24


Étape 0 - Préparation

Configuration du serveur TOTP

Pour configurer un serveur de mot de passe unique basé sur le temps, allez dans Système >> Accès >> Serveurs et cliquez sur Ajouter dans le coin supérieur droit du formulaire.

Tip

Vous pouvez également utiliser la recherche rapide pour accéder directement à la configuration du serveur Access. Essayez-le en tapant Ac… et voyez par vous-même :

barre de navigation pour accéder aux serveurs dans Dynfi Firewall.

Changez d’abord le Type en Local + Timebased One time Password et entrez un Nom descriptif tel que TOTP VPN Access Server.

Pour notre exemple, nous laissons tout le reste par défaut car nous utiliserons une Authentification à deux factuers de type FreeOTP` ou Google Authenticator et les valeurs par défaut sont correctes. Si vous utilisez d’autres type de jetons, vous devrez peut-être modifier la Longueur du jeton.

Cliquez sur Sauvegarde pour ajouter le nouveau serveur.

Confiance

Ajouter une autorité de certification

Afin de mettre en place un tunnel aux deux extrémités, nous devons configurer des certificats pour garantir la confiance entre le client et ce serveur.

  • Tout d’abord, nous avons besoin d’une Autorité que nous allons créer dans Système >> Confiance >> Autorités

    • Cliquer sur Ajouter en haut à droite de la page

    • Sélectionnez Créer une Autorité de certification interne

    • Choisissez les paramètres cryptographiques et une durée de vie (vous pouvez augmenter la valeur par défaut car après cette période, vous devez redistribuer les certificats au serveur et au client).

    • Ajoutez des informations descriptives pour cette autorité de certification (Nom descriptif, Ville, Email, …).

    • Définissez le Nom commun à quelque chose de descriptif pour ce certificat, comme “Office-ovpn”

Créer un certificat de serveur

  • Générer ensuite un Certficat pour le serveur en utilisant Système >> Confiance >> Certificats

    • Cliquer sur Ajouter en haut à droite de la page

    • Sélectionnez Créer un certificat interne

    • Choisissez l’autorité qui vient d’être créée dans Autorité de certification

    • Ajoutez des informations descriptives pour cette autorité de certification (Nom descriptif, coordonnées copiées à partir de l’autorité de certification).

    • Définir le type à “Certificat de serveur”

    • Choisir les paramètres cryptographiques, la durée de vie détermine la validité du certificat du serveur (vous devez suivre cela vous-même), il est possible de choisir une période plus longue ici.

    • Définissez le Nom Commun au fqdn de cette machine.

Ajout d’un utilisateur

  • Pour le PC client, nous allons créer un utilisateur et un certificat, à partir du menu Système >> Accès >> Utilisateurs

    • Cliquez sur Ajouter pour créer un nouvel utilisateur, pour ce test nous l’appellerons test1

    • Entrez les informations de l’utilisateur.

    • Cochez l’option Certificat > “Cliquer pour créer un certificat utilisateur” et cliquez sur Sauvegarde.

    • Dans la fenêtre de certificat, sélectionnez Créer un certificat interne et cliquez sur Sauvegarde.

La règle de l’art consiste à créer pour chaque utilisateur son propre certificat en utilisant le même nom commun que le nom d’utilisateur. Il est également possible pour les clients de partager un même certificat, mais cette solution est peu sécurisée et ne permet pas une identification précise des utilisateurs. Par ailleurs si un client venait à égarer son ordinateur, il faudrait re-créer tous les certificats de l’ensemble des clients !

Lors de l’ajout d’un certificat à partir du gestionnaire d’utilisateurs, le CN est automatiquement défini à son nom. Dans cet exemple, nous nous authentifierons uniquement à l’aide du certificat, aucun utilisateur ou mot de passe supplémentaire ne sera requis.

Pour notre exemple, nous utiliserons l’authentification à deux facteurs 2FA. Avant de commencer la configuration du VPN SSL, nous aurons donc besoin d’un serveur TOTP et d’une autorité de certification valide.

Pour être exhaustif, nous configurerons également un utilisateur.

Étape 1 - Ajouter un serveur SSL

L’ajout d’un nouveau serveur VPN SSL est relativement simple. Nous allons commencer par en ajouter un qui utilise notre authentification à deux facteurs. Cette configuration offre une bonne protection et elle est facile à mettre en œuvre sur les clients car chaque client peut utiliser la même configuration.

Allez dans VPN >> OpenVPN >> Serveurs et cliquez sur Ajouter dans le coin supérieur droit.

Pour notre exemple, nous utiliserons les paramètres suivants :

Description

Mon Serveur VPN SSL

Mode Serveur

Accès Distant (SSL/TLS + Auth utilisateur)

Backend pour l’authentification

TOTP VPN Access Server

Protocole

UDP

interface en mode

tun

Interface

WAN

Port local

1194

Authentification TLS

Authentification et cryptage

Liste de révocation de Certificats

None

Certificat du serveur

Choisir le Certificat nouvellement crée

Longueur des paramètres DH

4096 bits

Algorithme de chiffrement

AES-256-CBC (256 bit key, 128 bit block)

Algorithme Auth Digest

SHA512 (512 bits)

Profondeur du certificat

Un(Client+Serveur)

Réseau tunnel IPv4

10.10.0.0/24

Réseau de tunnels IPv6

Laisser décoché

Passerelle de redirection

Laisser décoché

Réseau local IPv4

192.168.1.0/24

Réseau local IPv6

Laisser décoché

Réseau distant IPv4

Laisser décoché

Réseau distant IPv6

Laisser décoché

Connexions simultanées

Laisser décoché

Compression

Activée avec la compression adaptative

Type de service

Laisser décoché

Dupliquer les connexions

Laisser décoché

IP dynamique

Laisser décoché

Topologie

coché

DNS Domaine par défaut

Laisser décoché

Prévenir les serveurs DNS

Laisser décoché

Forcer la mise à jour du cache DNS

Laisser décoché

Serveurs NTP

Laisser décoché

Options NetBIOS

Laisser décoché

Port de gestion du client

Laisser décoché

Note

Temps de renégociation est utilisé pour renégocier la clé du canal de données après n secondes (par défaut = 3600). Si vous utilisez un mot de passe unique, sachez que votre connexion sera automatiquement interrompue car votre mot de passe ne sera plus valide après ce laps de temps. Définissez 0 pour désactiver, n’oubliez pas de recharger la configuration après ce type de changement.

Cliquez sur Sauvegarde pour ajouter le nouveau serveur.

Ajout d'un serveur VPN SSL.

Tip

Utilisez Correspondance Exacte Utilisateur/CN pour forcer l’utilisation du même nom d’utilisateur que le CN du certificat, cela empêche les gens de se connecter en utilisant d’autres informations d’identification que le nom du certificat fourni. (par exemple, fred ne peut pas se connecter en tant que root)

Tip

L’option Renforcer les groupes locaux peut être utilisée pour restreindre l’accès aux seuls utilisateurs d’un ensemble de groupe(s) spécifique(s).

Étape 2 - Règles de pare-feu

Pour permettre les connexions des clients VPN SSL, nous devons autoriser l’accès au port du serveur OpenVPN sur l’interface WAN. Lorsque l’on utilise plusieurs serveurs, il est nécessaire d’ouvrir chacun de ces ports.

Dans notre configuration, nous n’utilisons qu’un seul serveur, accessible sur le port UDP 1194.

Ajout d'une règle de firewall à l'interface WAN qui accepte l'accès au port 1194 en utilisant le protocole UDP.

Ensuite, nous devons également autoriser le trafic des clients VPN vers notre interface LAN. Pour notre exemple, nous allons permettre aux clients d’accéder à tout ce qui se trouve sur notre réseau local, mais vous pouvez décider de n’autoriser que le trafic vers un ou plusieurs serveurs.

Ajout d'une règle de firewall qui accepte l'accès à une ip d'accéder au serveur vpn.

Étape 3 - Exporter la configuration du client

En utilisant le menu déroulant Serveur d’accès à distance, vous pouvez sélectionner le serveur pour lequel vous souhaitez télécharger les fichiers clients. Lorsque des certificats sont connectés (en utilisant la même autorité), la liste de tous les certificats clients disponibles et des utilisateurs attachés s’affichera.

MacOS et Windows

Pour les utilisateurs de MacOS et de Windows, nous recommandons d’utiliser Viscosity de Sparklabs. Viscosity est très facile à configurer et à utiliser et fonctionne bien sur ces deux plateformes.

Allez dans VPN >> OpenVPN >> Exportation du client et sélectionnez le serveur VPN nouvellement créé dans la liste. Laissez tout par défaut et téléchargez le type Viscosity (visz) de la liste des options d’exportation sous Type d’exportation.

Maintenant, sur votre Mac ou PC Windows, décompressez le paquet et importez le fichier Viscosity.visc. Un double clic sur le fichier devrait suffire à l’importer. Lorsque l’on vous demande une application pour ouvrir le fichier, recherchez et sélectionnez Viscosity.

Vous pouvez télécharger le fichier en choisissant le certificat lié à l’utilisateur:

Télécharger les fichiers d'export du client dans Dynfi Firewall

Quelques exemples de captures d’écran (sous MacOS) :

Veuilliez télécharger le zip et cliquer sur le fichier dont l’extension est .visz

Importation de la configuration

Confirmation de l'importation de la connexion à Viscosity.

Connexion et login

Dans le champ du mot de passe, entrez d’abord votre TOTP token suivi de votre mot de passe.

Confirmation de l'établissement de la connexion.

Vous êtes maintenant connecté.

Android

Pour les utilisateurs d’Android, nous recommandons d’utiliser OpenVPN pour Android d’Arne Schwabe.

Allez dans VPN >> OpenVPN >> Exportation du client et sélectionnez le serveur VPN nouvellement créé dans la liste. Laissez tout par défaut et téléchargez la configuration inline File only depuis la liste des options d’exportation sous Exportation.

Importez le fichier hostname-udp-1194-android-config.ovpn dans OpenVPN pour Android. Cliquer sur le fichier devrait suffire à l’importer. Si l’on vous demande une application pour ouvrir le fichier, sélectionnez OpenVPN pour Android.

iOS

Pour les utilisateurs iOS, nous recommandons d’utiliser OpenVPN Connect d’OpenVPN Technologies.

Allez dans VPN >> OpenVPN >> Exportation du client et sélectionnez le serveur VPN nouvellement créé dans la liste. Laissez les options par défaut et téléchargez la configuration inline File only depuis la liste des options d’exportation sous Exportation.

Importez le fichier hostname-udp-1194-ios-config.ovpn dans OpenVPN Connect. Cliquer sur le fichier devrait suffire à l’importer. Lorsque l’on vous demande une application pour ouvrir le fichier, sélectionnez OpenVPN Connect.


Étape 4 - Authentification multi-facteurs

Pour l’authentification à deux facteurs, vous avez besoin des facteurs nom d’utilisateur/mot de passe et d’un jeton. DynFi Firewall prend en charge une autre couche, à savoir un certificat d’utilisateur.

Cela signifie que chaque utilisateur sera identifié de manière unique par son certificat utilisateur. Dans ce cas, les facteurs multifacteurs sont les suivants :

  • Certificat d’utilisateur

  • Nom d’utilisateur/mot de passe

  • Jeton (TOTP)

Allez dans VPN >> OpenVPN >> Serveurs et cliquez sur l’icône crayon à côté du serveur que nous venons de créer pour changer le 2FA en authentification multi-facteurs.

Maintenant, changez Mode serveur en Accès Distant (SSL/TLS + Authentification utilisateur) et laissez tout le reste inchangé. Cliquez sur Sauvegarde en bas du formulaire.

Maintenant, lorsque vous allez dans l’exportateur client, vous verrez que chaque utilisateur est listé séparément. Dans notre cas, Donald est listé. L’exportation et l’importation de cette configuration fonctionnent exactement de la même manière que précédemment, la seule différence étant que chaque utilisateur a besoin d’un certificat utilisateur et donc de sa propre configuration.

Options multi-facteurs dans exportation du client.