• Aucun résultat trouvé

Chapitre 2 : Choix techniques et Matériel

2.7. Serveur RADIUS

RADIUS (Remote Access Dial In User Service) est un protocole qui répond au modèle AAA. Ces initiales résument les trois fonctions du protocole :

• A = Authentication : authentifier l’identité du client ;

• A = Authorization : accorder des droits au client ;

• A = Accounting : enregistrer les données de comptabilité de l’usage du réseau par le client. Le protocole établit une couche applicative au-dessus de la couche de transport UDP (User Datagram Protocol). Les ports utilisés sont :

• 1812 pour recevoir les requêtes d’authentification et d’autorisation ;

• 1813 pour recevoir les requêtes de comptabilité [11].

2.7.1. Les différents types de paquets Radius

Le protocole est basé sur des échanges requêtes/réponses avec les clients Radius, c’est-à-dire les NAS (Network Access Server). Il n’y a jamais de communication directe entre le poste de travail et le serveur. L’authentification Radius se déroule suivant un dialogue entre le NAS et le serveur, qui met en jeu quatre types d’échanges.

Chacun est véhiculé au moyen d’un paquet spécifique :

21

• Access-Request

La conversation commence toujours par un paquet Access-Request émis par le NAS vers le serveur. Il contient au moins l’attribut User-Name et une liste d’autres attributs tels que Calling-Station-Id, Nas-Identifier, etc.

• Access-Accept

Ce paquet est renvoyé au NAS par le serveur Radius si l’authentification transmise par l’Access-Request a été correctement validée. Ce paquet contient alors des attributs qui spécifient au NAS les autorisations accordées par le serveur.

• Access-Reject

Envoyé par le serveur Radius au NAS si l’authentification a échoué.

• Access-Challenge

Après réception d’un paquet Access-Request, le serveur peut renvoyer un paquet Access-Challenge qui a pour but de demander d’autres informations et de provoquer l’émission d’un nouveau paquet Access-Request par le NAS. Access-Challenge sera toujours utilisé avec EAP (Extensible Authentification Protocol) puisqu’il permettra au serveur de demander un certificat ou un mot de passe au poste de travail [9].

2.7.2. FreeRadius

FreeRadius est une implémentation de Radius élaborée. Il doit son succès à sa compatibilité avec un grand nombre de standards couvrant les systèmes d’exploitation, les protocoles et les bases d’authentification. Cette large couverture offre une riche palette de possibilités qui lui permet de s’intégrer dans la plupart des architectures existantes. Il est annoncé comme testé et fonctionnel sur les systèmes Linux (toutes distributions), FreeBSD (Free Berkeley Software Distribution), NetBSD (Net Berkeley Software Distribution) et Solaris [11].

2.7.2.1. Principes généraux

Le processus exécuté par FreeRadius comprend principalement deux étapes : l’autorisation et l’authentification. Il va préparer le terrain en établissant la liste des autorisations qui sera envoyée au NAS quand l’authentification sera positive. Les étapes de l’autorisation et l’authentification peuvent être décomposés comme suit:

22

1 Soumission d’une requête.

2 Recherche dans la base de données.

3 Constitution de la liste des autorisations.

4 Authentification. [12]

2.7.2.2. Soumission d’une requête

Les requêtes arrivent au serveur par le biais de paquets Access-Request pouvant contenir plusieurs attributs. On y trouvera toujours l’attribut User-Name qui contient l’identifiant. Ces attributs sont appelés request-items [11].

2.7.2.3. Recherche dans la base de données

Le nœud central du système FreeRadius est la ou les bases de données où les informations d’autorisations et d’authentification sont puisées.

Une base d’autorisation est constituée d’une entrée par utilisateur ou par machine.

Chaque entrée est caractérisée par un identifiant ainsi que par trois catégories d’attributs appelées check-items, reply-items et config-items.

Une base d’authentification est aussi constituée d’une entrée par utilisateur ou par machine et contient les données d’authentification (mot de passe). Si les bases d’authentification et d’autorisation ne font qu’une, ces données d’authentification y seront présentes sous formes de check-items (User-Password). FreeRadius recherche dans la base d’autorisation un identifiant égal à la valeur de User-Name. S’il le trouve, il compare la liste des check-items à la liste des request-items. S’il y a équivalence, l’entrée est validée, sinon l’entrée suivante est vérifiée et ainsi de suite jusqu’à la fin.

Les check-items constituent donc une liste de critères supplémentaires auxquels la requête doit satisfaire. Chaque attribut de la liste des request-items devra avoir pour valeur la valeur du check-item correspondant. Pour qu’une entrée soit validée, il ne suffit donc pas de trouver l’identifiant mais il faut que les request-items soient équivalents aux check-items. Ce qui veut dire qu’il est parfaitement possible d’avoir le même identifiant pour plusieurs entrées mais avec des check-items différents. Il est même possible d’avoir plusieurs entrées strictement identiques. Dans ce cas, c’est la première qui est prise en compte.

23

2.7.2.4. Constitution de la liste des autorisations

Quand une entrée a été trouvée, FreeRadius en extrait la liste des reply-items et la met provisoirement de côté. Il s’agit là des autorisations qui seront accordées au poste qui se connecte. Un reply-item est un attribut auquel une valeur est affectée dans la base d’autorisation.

Quand l’authentification aura été réalisée, les reply-items seront écrits dans le paquet Access-Accept qui sera envoyé au NAS.

2.7.2.5. Authentification

Après l’étape d’autorisation, FreeRadius passe à l’authentification dont le processus demande plus ou moins d’échanges avec le NAS suivant la méthode mise en œuvre (EAP (Extensible Authentication Protocol), Radius-MAC...). Si l’authentification est positive, un paquet Access-Accept est construit avec, pour attributs, la liste des reply-items mise de côté précédemment. Si l’authentification est négative, c’est un paquet Access-Reject qui est envoyé.

2.7.2.6. Config-items

Les config-items sont des attributs internes du serveur liés à une requête. On peut les considérer comme des variables de configuration renseignées dans le fichier radiusd.conf ou par FreeRadius lui-même pendant son fonctionnement. Par exemple, on trouve l’item Auth-Type qui permet de spécifier quelle méthode d’authentification doit être associée à un identifiant. Auth-Type :=EAP, signifie qu’il s’agit d’une méthode EAP.

Documents relatifs