Configuration du VPN SSL pour utilisateurs nomades
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).
Exemple de configuration
Pour l’exemple de configuration, nous configurons DynFi Firewall
Réseau d’entreprise avec client à distance
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 :
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.
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.
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.
É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:
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
Connexion et login
Dans le champ du mot de passe, entrez d’abord votre TOTP token suivi de votre mot de passe.
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.