Windows Server 2016 : Serveur RADIUS et pfSense

Windows Server 2016 : Serveur RADIUS et pfSense

16 février 2020 0 Par Mairien Anthony

Petit tutoriel expliquant pas à pas ce qu’est RADIUS et son installation sur un Windows Server 2016 ainsi que sa liaison avec routeur pfSense.

RADIUS… peut être en avez-vous déjà entendu parlé ou peut être que pas du tout, mais le fait est que ce protocole est un incontournable quand il s’agit de sécuriser des réseaux informatique. Nous allons donc voir comment celui-ci fonctionne puis nous l’installerons sur un Windows Server 2016 et enfin nous le testerons en reliant à un routeur/pare-feu pfSense !

I) Le protocole RADIUS

Le protocole RADIUS pour Remote Authentication Dial-In User Service est donc un protocole réseau de type AAA (Authentication, Authorization, Accounting/Auditing) reconnu et ratifié dans plusieurs RFC. Il va donc permettre de gérer l’authentification, l’autorisation, et la traçabilité des échanges, par exemple : Le client a-t-il le droit de se connecter ? A-t-il le droit d’effectuer X action ? A quelle heure et combien de temps sa connexion a-t-elle durée ?

Son fonctionnement est basé sur un système de client/serveur permettant donc de gérer les accès utilisateurs sur un réseau, il est d’ailleurs extrêmement utilisé par les différents FAI.

RADIUS se constitue donc :

  • D’un serveur (le serveur RADIUS), qui est relié à une base d’identification (annuaire LDAP comme un Active Directory ou base de données comme MySQL par exemple) ;
  • D’un client RADIUS, appelé NAS (Network Access Server), faisant office d’intermédiaire entre l’utilisateur et le serveur, dans notre lab ce sera notre routeur pfSense ;

Bon à savoir: un serveur RADIUS peut faire office de proxy pour simplement rediriger les requêtes des clients à d’autres serveurs RADIUS.

Pour y voir plus clair, voici un schéma repris d’un site universitaire :

Schéma d'un système RADIUS

On peut donc voir que le client demande une autorisation de connexion au NAS, qui la redirige ensuite au serveur RADIUS, celui-ci vérifier dans sa base de données/annuaire, et retourne ensuite la réponse au NAS qui la transmet au client. Soit la demande est validée, soit elle n’est pas validée, soit le serveur peut demander un « challenge » au client (demande d’un token, d’un mot de passe, ou autre).

II) Ok pour les utilisateurs finaux, mais quid pfSense ?

Et bien c’est là que ça peut devenir terriblement intéressant ! En règle général, on devrait créer un utilisateur (ou plus) sur chacun de nos périphériques réseau par exemple des commutateurs Cisco ou des routeurs pfSense… ça va encore pour un appareil, deux, éventuellement cinq ou six, mais quand nous devons en configurer une vingtaine, cela peut devenir sacrément pénible. Ici nous pourrons créer nos utilisateurs directement sur le serveur RADIUS et configurer nos équipements pour leur dire d’aller plutôt chercher les utilisateurs sur ce dernier, de cette manière on gagne du temps et la centralisation des utilisateurs est un atout non négligeable en terme de sécurité !

Autre chose très intéressante mais que nous n’aborderons pas dans cet article, c’est la possibilité d’utiliser RADIUS pour sécuriser des réseaux wi-fi, en demandant un couple utilisateur/mot de passe au lieu d’une simple clé.

III) Installation du rôle NPS

Nous partirons donc sur un Windows Server 2016 fraîchement installé avec un Active Directory et domaine créé, le serveur sera aussi configuré avec une adresse IP statique (192.168.2.50/24 dans ce lab). Une fois fait, nous nous rendons sur le tableau de bord du gestionnaire de serveur pour installer le rôle NPS, pour Network Policy Server qui permettra donc d’utiliser l’authentification RADIUS tant désirée.

Ici ce sera donc une installation basée sur un rôle ou une fonctionnalité :

Ici on sélectionne donc les services de stratégie et d’accès réseau :

S’enchaîne ensuite le classique « Suivant suivant« , puis on autorise le redémarrage du serveur cible, et on patiente un peu, et le tour est joué !

*Bon à savoir: si jamais vous obtenez une erreur « 0x800f0922 » lors de l’installation, passez par Powershell :

On peut ensuite se rendre sur l’onglet Outil puis Serveur NPS. A partir de là, nous cliquons sur Clients RADIUS, puis Nouveau :

Ici rien de très compliqué, on coche bien la case Activer ce client RADIUS puis on lui renseigne un nom, son adresse IP ou FQDN, et enfin le mot de passe qui permettra d’effectuer la liaison.

Une fois fait on se rend sur Stratégies, puis Stratégies réseau :

Ici je l’ai sobrement appelé connexion_techniciens_pfsense, mais rien ne vous empêche de mettre un autre nom. On clique ensuite sur Suivant :

Ici il convient de choisir le type de groupe, dans notre cas ce sera Groupe d’utilisateurs (l’utilisateur qui va se connecter sur le routeur pfSense devra être membre d’un groupe que l’on appellera Techniciens par exemple) :

Avant de directement poursuivre, nous allons justement créer ce groupe d’utilisateurs et y rajouter un utilisateur de test. Une fois fait, on peut donc choisir notre fameux groupe :

On choisit ensuite la règle à effectuer lorsqu’un utilisateur membre de ce groupe se connectera avec succès sur l’équipement :

Ici on va donc accorder l’accès, puis on poursuit en cliquant sur Suivant encore une fois. Ensuite vient le choix des méthodes d’authentification, je ne vais pas expliquer ce qu’est un protocole EAP surtout qu’il n’est pas indispensable dans notre cas de figure, donc nous allons simplement utiliser les paramètres par défaut (à savoir utiliser l’authentification MS-CHAP v2 et MS-CHAP chiffré) :

Ici même chose, on ne va pas rajouter de contraintes supplémentaires, même si une éventuelle déconnexion de l’appareil après X minutes est une très bonne chose. Personnellement, à l’heure où j’écris ces lignes je ne l’ai encore jamais testé, sauf sur les équipements directement (voir mon TFE par exemple) :

Ici, il convient simplement de cliquer sur Ajouter puis de choisir l’attribut Class, qui va simplement indiquer le groupe en question soumis à cette stratégie :

La dernière étape est donc d’inscrire (relier) notre serveur NPS à notre domaine, histoire que celui-ci puisse aller consulter notre annuaire et faire ce qu’il a à faire :

IV) Configuration du pfSense

Bien, on approche de la fin ! Nous nous connectons donc sur notre pfSense et nous nous rendons dans l’onglet System, puis User Manager et enfin nous cliquons sur Add dans la partie Authentification Servers, pour rajouter donc notre serveur RADIUS :

Ensuite nous renseignons un nom, puis l’adresse IP ou le FQDN, le secret que l’on avait créé auparavant, et le choix de l’interface qui transmettra les requêtes (ici l’interface LAN) :

On se rend ensuite dans l’onglet Settings et ici on choisi notre serveur RADIUS et non plus la database locale :

A partir de là, il nous suffit ensuite de créer un groupe avec une scope Remote, c’est-à-dire un groupe qui sera distant. Ici je l’appelle Techniciens, comme le groupe créé sur mon AD (histoire d’être cohérent). Ensuite, on y met une description et une fois fait on peut sauvegarder.

On clique ensuite sur Add dans l’onglet Assigned Privileges pour donner des droits à ce fameux groupe :

Comme vous pouvez le voir, pfSense nous permet de filtrer de façon très précise les droits octroyés à nos utilisateurs et groupes. Ici, on va se contenter de quelque chose de basique, ce n’est qu’un lab. On peut donc soit tout sélectionner (l’équivalent d’être dans le groupe admin), soit simplement sélectionner les droits par rapport au dashboard.

V) Test et connexion

Avant de pleinement tester notre nouvelle authentification, on peut rapidement se rendre sur l’onglet Diagnostics puis Authentification, pour vérifier que tout est bon. Si c’est le cas, vous devriez obtenir ceci : un joli message vert vous disant que l’utilisateur/mot de passe est ok et qu’il fait parti du groupe créé précédemment :

On peut donc se déconnecter et tester, et pour vous montrer que tout est correct, on peut même aller vérifier les logs 😉

Bingo ! Tout est donc fonctionnel, désormais si ce fameux utilisateur vient à quitter l’entreprise, on peut aisément le supprimer directement sur notre serveur RADIUS, et on peut même créer d’autres groupes, par exemple un groupe de techniciens ne sachant que configurer/modifier tout ce qui touche aux liaisons VPN, un autre par rapport au Firewall… les possibilités sont nombreuses.

Et bien voilà donc qui conclut ce premier article traitant du protocole RADIUS, j’espère vous avoir appris deux trois bricoles, en sachant que concernant sa liaison avec pfSense, peu de guides/doc dispos dans la langue de Molière :p

D’autres articles arriveront sûrement autour de ce protocole, je verrais par exemple la configuration d’un serveur RADIUS sous GNU/Linux via FreeRADIUS, ou encore la configuration de réseaux Wi-Fi avec le support de celui-ci.

Une bonne journée/soirée à vous !