OpenVPN sur pfSense : Le télétravail facile et sécurisé!
Vous croulez évidemment sous les demandes de mise en place de solutions de télétravail. Vous avez placé chez vos clients des firewall pfSense? Alors exploitez-les pour mettre en place facilement des accès VPN nomades, à l’aide d’OpenVPN.
J’ai déjà rédigé quelques articles sur OpenVPN. Une solution pour monter des tunnels que je privilégie dans le roadwarrior, c’est-à-dire pour les utilisateurs nomades.
Il peut être très intéressant d’utiliser OpenVPN sur un firewall pfSense, puisque le serveur OpenVPN est proposé dans le produit.
Voyons ensemble comment le mettre en place.
Serveur OpenVPN
Sur pfSense, on peut mettre en place un serveur OpenVPN facilement, par le biais d’un assistant. C’est ce que nous allons utiliser.
Sur ce tuto, pfSense est en version 2.4.4_3, la dernière de la branche stable à ce jour.
Pour lancer l’assistant de configuration du serveur OpenVPN, nous allons nous rendre dans VPN, puis OpenVPN, et enfin choisir « Assistants« .
Je choisis d’utiliser l’authentification des utilisateurs sur pfSense. On pourrait choisir l’authentification LDAP ou Radius.
On doit ensuite créer le certificat de l’autorité de certificat. Pour ça on remplit les champs avec le nom du certificat, la longueur de la clé de chiffrement, la durée de vie du certificat, et les informations régionales.
Même chose ensuite pour créer le certificat de la partie serveur OpenVPN.
Nous devons ensuite paramétrer la partie réseau.
En premier lieu, l’interface sur laquelle les connexions VPN entrantes se feront.
Ensuite la partie cryptographie. Je ne m’attarde pas dessus, tout est détaillé dans mes précédents articles sur OpenVPN. Et les options sont les mêmes, sauf qu’ici c’est plus graphique!
Puis enfin la partie réseau du tunnel. Pour ça nous devons renseigner le réseau IP utilisé pour les accès VPN (du type CIDR).
L’option passerelle de redirection permet de forcer tout le traffic du client à travers le VPN lorsqu’il est monté (tout son flux réseau donc, navigation internet compris, à vous de juger de l’utilité).
Le réseau local (celui que le client nomade cherche à joindre à distance) doit ensuite être renseigné, pour qu’une route lui soit poussé à la connexion.
Sur les paramètres clients, on peut notamment choisir de leur attribuer une IP dynamique, et d’isoler les clients ou non entre eux (masque en /30).
On peut aussi leur attribuer les DNS de l’entreprise pour atteindre les ressources réseaux par leur nom.
L’assistant propose ensuite de créer les règles de firewall. Cela permet d’autoriser les connections depuis Internet sur le port OpenVPN choisi précédemment, et d’autoriser le traffic des clients à travers le tunnel vers le réseau local ciblé.
Le serveur OpenVPN est bien configuré.
On peut éditer la configuration pour cocher l’option Forcer la mise à jour du cache DNS.
Ca permet de lancer automatiquement des commandes pour relancer le cache DNS sur le client, vider son cache, et réinscrire le bail DNS. Comme ca, pas de problème de cache DNS foireux qui empêcherait le bon fonctionnement à travers le tunnel. On est certain de s’adresser au serveur DNS de l’entreprise.
Configuration utilisateurs
Nous allons maintenant configurer la partie utilisateur.
La bonne pratique consiste à créer un utilisateur, et demander la création d’un certificat propre. Ce certificat est donc rattaché à l’utilisateur, et la révocation de l’accès d’un utilisateur est donc aisée. En cas de vol du pc portable d’un utilisateur par exemple, il suffira de révoquer son certificat ou son compte utilisateur. Les autres utilisateurs ne seront ainsi pas impactés.
Pour créer un utilisateur, rendez-vous dans Système/Gestionnaire d’usagers/Utilisateurs (on appréciera la traduction approximative, certainement améliorée dans une version à venir!!)
Ce qui est important ici, c’est de bien nommer son utilisateur, de l’associer à la bonne Autorité de certification, et de cocher la création d’un certificat propre à l’utilisateur.
Configuration client
Pour configurer le client OpenVPN, il faut exporter la configuration (ou le configurer manuellement, mais autant se faciliter un peu le boulot!)
Pour ca, rendez-vous dans le gestionnaire de paquets (menu Système) et dans paquets disponibles, cherchez « openvpn-client-export«
Une fois installé, vous pourrez vous rendre sur la gestion d’OpenVPN, puis le nouveau menu « Client Export Utility ». Vous trouvez en bas de page la liste des clients, et les différents packages téléchargeables.
On peut ainsi télécharger directement sur cette interface la dernière version du client OpenVPN, ou une version plus ancienne, mais aussi le fichier de configuration Windows ou iOS/Android, et Viscosity (client VPN Windows et Mac).
Vous êtes prêt à vous connecter à votre LAN entreprise!
Bug ?
J’ai eu un bug, durant la création d’utilisateurs. Parfois, même si la case qui demande la création d’un certificat pour l’utilisateur est cochée, le certificat n’est pas créé.
Pour remédier à ça, sur la configuration de l’utilisateur, dans la section Certificats, j’ai dû cliquer sur Ajouter, et créer son certificat. Rien de méchant, mais vous pouvez être confrontés à ce petit souci.