Comment mettre en oeuvre un serveur radius sur docker
Important
|
Article en cours de rédaction Je reprends tout un tas d’articles et de LABs en projets et mis en standby. Principalement des LABs autour de l’authentification, Radius, etc… |
Le serveur FreeRADIUS
Qu’est-ce que FreeRADIUS ?
FreeRADIUS est le serveur RADIUS le plus populaire et le plus largement déployé au monde. Il sert de base à plusieurs offres commerciales et répond aux besoins d’authentification, d’autorisation et de comptabilité (AAA) de nombreuses entreprises du Fortune 500 et des fournisseurs d’accès de niveau 1. Il est également largement utilisé par la communauté académique (par exemple, Eduroam, le service d’accès en itinérance dans le monde entier développé pour la communauté internationale de la recherche et de l’éducation, utilise le logiciel FreeRADIUS).
FreeRADIUS a été lancé en août 1999 par Alan DeKok et Miquel van Smoorenburg. Miquel avait précédemment développé le logiciel du serveur RADIUS Cistron, qui avait été largement adopté lorsque le serveur Livingston n’était plus en service. FreeRADIUS a été développé en utilisant une conception modulaire pour encourager la participation active de la communauté.
Avantages de FreeRADIUS
La popularité de FreeRADIUS peut s’expliquer par la multitude d’avantages supplémentaires qu’il offre, bien au-delà de ceux que l’on trouve dans la grande variété d’autres serveurs RADIUS. FreeRADIUS est basé sur un protocole de conception riche en fonctionnalités, modulaire et évolutif, qui offre les avantages et les avantages suivants aux administrateurs réseau :
Fonctionnalités
FreeRADIUS prend en charge plus de types d’authentification que tout autre serveur open source. Par exemple, FreeRADIUS est le seul serveur RADIUS open source à prendre en charge le protocole d’authentification extensible (EAP).
FreeRADIUS est également le seul serveur RADIUS (commercial ou open source) à prendre en charge les “serveurs virtuels”. L’utilisation de serveurs virtuels signifie que les implémentations complexes sont simplifiées et que les coûts de support et de maintenance continus pour les administrateurs réseau sont considérablement réduits ; ainsi, la capacité de FreeRADIUS à prendre en charge les serveurs virtuels lui confère un avantage considérable sur la concurrence.
Modularité
La conception modulaire rend FreeRADIUS facile à comprendre. L’interface modulaire simplifie également l’ajout ou la suppression de modules. Par exemple, si une fonctionnalité n’est pas nécessaire pour une configuration particulière, le module est facilement supprimé. Une fois le module supprimé, il n’affecte pas les performances du serveur, l’utilisation de la mémoire ou la sécurité. Cette flexibilité permet au serveur de fonctionner sur des plateformes allant des systèmes embarqués aux machines multicœurs avec des gigaoctets de RAM.
Évolutivité
Un seul serveur RADIUS peut facilement passer de la gestion d’une demande toutes les quelques secondes à la gestion de milliers de demandes par seconde, simplement en reconfigurant quelques paramètres par défaut. De nombreuses grandes organisations (celles ayant plus de 10 millions de clients) dépendent de FreeRADIUS pour leurs besoins en AAA.
Alors que de nombreux serveurs commerciaux proposent différentes versions de leur logiciel pour répondre à différents besoins, seule la dernière version de FreeRADIUS est nécessaire pour obtenir de meilleures performances, plus de domaines, plus de clients RADIUS et de nombreuses autres fonctionnalités, sans avoir besoin d’acheter des licences de produit supplémentaires.
Les concepts RADIUS
Qu’est ce que le AAA ?
Authorization, Authentication, Accounting (Autorisation, Authentification, Comptabilité)
RADIUS
est l’un des nombreux protocoles d’Authentification, d’Autorisation et de Comptabilité (AAA). D’autres exemples de protocoles AAA incluent TACACS+
et Diameter
.
AA définit une architecture qui authentifie et accorde des autorisations aux utilisateurs et tient compte de leurs activités. Lorsque AAA n’est pas utilisé, l’architecture réseau est “ouverte”, ce qui signifie que n’importe qui peut y accéder et faire ce qu’il veut, sans aucune traçabilité. L’architecture réseau ouverte est couramment utilisée dans les petites entreprises, où l’accès à un bureau peut être contrôlé physiquement. Cependant, l’architecture réseau ouverte ne convient pas aux fournisseurs de services Internet (FSI), où l’accès doit être strictement contrôlé et comptabilisé.
Il est possible d’incorporer seulement une partie du système AAA dans un réseau. Par exemple, si une entreprise ne se soucie pas de facturer les utilisateurs pour leur utilisation du réseau, elle peut décider d’authentifier et d’autoriser les utilisateurs, mais d’ignorer l’activité des utilisateurs et de ne pas gérer la comptabilité. De même, un système de surveillance recherchera des activités utilisateur inhabituelles (comptabilité), mais peut déléguer les décisions d’authentification et d’autorisation à une autre partie du réseau.
Sans AAA, un administrateur réseau devrait configurer statiquement un réseau. Même dans les premiers jours de l’accès par ligne commutée, les administrateurs réseau ont constaté que ce modèle statique était insuffisant. AAA garantit la flexibilité des politiques réseau. AAA donne également aux administrateurs réseau la capacité de déplacer des systèmes ; sans AAA, ils devraient définir clairement les options de connectivité.
Aujourd’hui, la prolifération des appareils mobiles, des utilisateurs de réseaux diversifiés et des méthodes d’accès variées créent un environnement qui impose des exigences accrues en matière de AAA. AAA joue un rôle dans presque toutes les façons dont nous accédons à un réseau : les points d’accès sans fil utilisent AAA pour la sécurité ; les réseaux partitionnés nécessitent AAA pour imposer l’accès ; toutes les formes d’accès à distance utilisent AAA pour autoriser les utilisateurs distants.
Les sections suivantes décrivent chaque partie de la solution AAA et comment chacune d’entre elles fonctionne.
- Authentication (Authentification) L’authentification fait référence au processus de validation de l’identité de l’utilisateur en comparant les informations d’identification fournies par l’utilisateur (par exemple, nom, mot de passe) à celles configurées sur le serveur AAA (par exemple, nom, mot de passe). Si les informations d’identification correspondent, l’utilisateur est authentifié et obtient l’accès au réseau. Si les informations d’identification ne correspondent pas, l’authentification échoue, et l’accès au réseau est refusé.
L’authentification peut également échouer si les informations d’identification de l’utilisateur sont entrées incorrectement. Par exemple, la politique du site peut autoriser un accès au réseau depuis un emplacement sur site en utilisant un mot de passe en clair. Cependant, si le même mot de passe est entré par l’utilisateur depuis un emplacement distant, l’accès peut être refusé.
Un fournisseur d’accès Internet peut également choisir de refuser l’accès au réseau aux utilisateurs authentifiés si le compte de l’utilisateur a été suspendu. Un administrateur peut également choisir d’autoriser un accès limité au réseau pour les utilisateurs inconnus. Par exemple, un administrateur peut autoriser l’accès à une zone où l’utilisateur peut acheter une connectivité réseau supplémentaire. Cet exemple est le plus souvent observé dans les hotspots Wi-Fi payants.
- Authorization (Autorisation) L’autorisation fait référence au processus de détermination des autorisations accordées à l’utilisateur. Par exemple, l’utilisateur peut être autorisé ou non à certaines formes d’accès au réseau ou autorisé à exécuter certaines commandes.
Le NAS envoie une “demande” - un paquet d’informations sur l’utilisateur - et le serveur RADIUS accorde ou refuse l’autorisation uniquement en fonction des informations contenues dans la “demande” envoyée par le NAS. Dans chaque cas, le serveur RADIUS gère la politique d’autorisation et le NAS fait respecter la politique.
La “demande” du NAS est en réalité un ensemble d’indications. Par exemple, le NAS peut envoyer au serveur RADIUS une “demande” contenant les informations suivantes sur l’utilisateur :
“le nom de l’utilisateur est Bob” “il a entré le mot de passe Bonjour” “il demande à utiliser l’adresse IP 192.0.2.34” Une fois que le serveur reçoit la demande, il utilise ces informations pour déterminer quelles propriétés l’utilisateur devrait avoir. Par exemple, l’utilisateur “Bob” dit qu’il souhaite utiliser l’adresse IP 192.0.2.34, mais la base de données indique-t-elle qu’il devrait utiliser une autre adresse IP ?
Le serveur envoie alors une réponse au NAS. La réponse contient une série d’indications sur les propriétés que l’utilisateur devrait avoir :
“le nom de l’utilisateur est Bob” “il devrait utiliser l’adresse IP 192.0.2.78” Il convient de noter que le serveur RADIUS ne peut pas demander des informations supplémentaires au NAS. Contrairement aux systèmes SQL, RADIUS est limité en ce sens qu’il ne peut pas effectuer de requêtes compliquées. En SQL, des requêtes telles que “SÉLECTIONNER le nom de la table où l’adresse IP est égale à 192.02.34” sont courantes. RADIUS n’a pas cette capacité. Au lieu de cela, RADIUS fait seulement des déclarations sur ce qui est et ce qui devrait être.
À la réception d’une réponse du serveur, le NAS tente de faire respecter ces propriétés par l’utilisateur. Si le NAS détermine que les propriétés ne peuvent pas être appliquées, il est censé fermer la connexion.
- Accounting (Comptabilité) La comptabilité fait référence à l’enregistrement des informations sur les ressources qu’un utilisateur consomme lorsqu’il est sur le réseau. Les informations collectées peuvent inclure la quantité de temps système utilisée, la quantité de données envoyées ou la quantité de données reçues par l’utilisateur pendant une session.
Pendant une session réseau, le NAS envoie périodiquement une comptabilité de l’activité de l’utilisateur au serveur. Cette comptabilité est un résumé, plutôt qu’une copie complète de tout le trafic. Ces données sont utilisées à des fins de facturation.
Les FAI sont de grands consommateurs de données comptables, car chaque utilisateur est facturé pour chaque minute d’accès au réseau. Cependant, les entreprises n’ont pas traditionnellement compté sur les informations de comptabilité réseau collectées par RADIUS car les employés n’étaient pas traditionnellement facturés pour l’accès au réseau. Cependant, à mesure que leur besoin de surveillance continue du réseau augmente, le besoin de stocker et de traiter les informations de comptabilité augmente également.
Le résumé comptable envoyé par le NAS au serveur ne comprend pas de détails tels que les sites web visités ou même le nombre d’octets transférés en utilisant un protocole particulier (SMTP, HTTP, etc.). Ce type d’information détaillée n’est disponible que pour le NAS, et il ne transmet pas ces données au serveur.
Si des informations détaillées sur l’activité de l’utilisateur sont nécessaires, les administrateurs réseau peuvent les obtenir via d’autres protocoles tels que sFlow ou NetFlow. Cependant, ces protocoles ne sont pas intégrés aux systèmes RADIUS. Les administrateurs réseau ont souvent du mal à faire le lien entre les éléments pour obtenir une compréhension plus complète de l’activité de l’utilisateur.
- Auditing (Audit) L’audit fait référence à l’analyse proactive des journaux de comptabilité et d’autres données (telles que les données sFlow ou NetFlow). Cette analyse est un processus à long terme et fait partie de la maintenance et de la surveillance continues. L’audit fournit des informations sur le comportement de l’utilisateur après l’authentification. Il peut fournir des indications sur le moment de mettre à jour la politique locale du site pour mieux correspondre au comportement de l’utilisateur.
L’audit peut également être utilisé pour déterminer quand un NAS a été compromis, en surveillant l’application par le NAS des politiques d’autorisation requises. Par exemple, si un utilisateur parvient à outrepasser la politique du site et à se connecter à un serveur particulier alors que l’intention de la politique du site était de refuser cet accès à l’utilisateur, un audit des enregistrements AAA mettrait en évidence cette violation de la politique. Étant donné que l’intention de la politique du site - refuser cet accès à l’utilisateur
- a été contournée par l’utilisateur, l’audit indiquerait que la politique du site devrait être mise à jour par l’administrateur réseau pour éviter de futures violations de la politique. Les audits ultérieurs surveilleraient le comportement à long terme et garantiraient ainsi que la politique est respectée.
Une petite analogie dans notre monde réel
L’analogie suivante illustre la différence entre Authentication (l’authentification) et Authorization (l’autorisation).
Imaginez que vous conduisez une voiture et que vous êtes arrêté par un agent de police. L’agent vous demande de fournir une pièce d’identité pour vous identifier. Vous pourriez, par exemple, utiliser votre passeport, votre permis de conduire ou votre carte d’identité pour prouver (c’est-à-dire authentifier) qui vous êtes. En termes de protocole RADIUS, le processus d’authentification permet d’identifier l’utilisateur en tant que personne connue du système. Cependant, le fait qu’un utilisateur soit connu ne signifie pas automatiquement qu’il a l’autorisation de faire quoi que ce soit.
Dans l’exemple ci-dessus, l’agent de police peut également vous demander de prouver que vous êtes autorisé à conduire. Dans ce cas, il n’y a qu’un seul document - un permis de conduire - qui prouve que vous êtes autorisé à conduire une voiture.
Le processus d’autorisation combine donc la politique sur le serveur RADIUS et les informations contenues dans la demande provenant du NAS (Network Access Server). Le NAS peut ajouter des informations supplémentaires à la demande, telles que l’adresse MAC (Media Access Control) de l’utilisateur. Le NAS envoie les informations au serveur, où une décision d’autorisation est prise.
Une fois que le serveur a traité ces informations, il envoie une réponse au NAS avec des instructions détaillant quelles actions sont autorisées ou refusées. Le NAS surveille alors le comportement de l’utilisateur et autorise ou refuse les activités en fonction de la définition de la politique envoyée par le serveur.
Important Pendant la session réseau de l’utilisateur, les politiques sont essentiellement statiques. Dans certains cas, le serveur peut modifier les politiques et informer le NAS. Il n’y a aucun moyen pour l’utilisateur de demander des changements de politique dans RADIUS. L’utilisateur doit plutôt se déconnecter et se reconnecter.
Installation de freeRadius
Le point de départ de l’image docker va être la même que celle qui servira pour le serveur LDAP, minideb
de Bitnami, une distribution se basant sur Debian
.
Il est possible de trouver des images Docker
se basant sur Alpine
mais n’étant pas plus que ça adepte de cette distribution, je préfére perdre un peu de temps et recréer une image se basant sur une ``Debian`, distribution que j’utilise depuis plus de 10 ans.
Dockerfile
Fichier Dockerfile