Configuration du pool d'adresses IP du serveur RADIUS

Avec le serveur RADIUS, vous pouvez affecter une adresse IP dynamiquement à partir d'un pool d'adresses IP.

L'allocation d'adresse IP fait partie du processus d'autorisation et est effectuée après l'authentification. L'administrateur système doit attribuer une adresse IP unique par utilisateur. Pour fournir à l'utilisateur une adresse IP de manière dynamique, le serveur RADIUS propose trois options :

  • Attribut de pool de fractionnement
  • Utilisation de l'attribut spécifique du fournisseur
  • Mise en commun d'adresses IP côté serveur RADIUS

Attribut de pool de fractionnement

Le pool d'adresses IP poolname doit être défini sur le serveur d'accès réseau (NAS). Le NAS doit être conforme à la norme RFC2869 pour que le serveur RADIUS puisse envoyer un attribut Framed-Pool dans un paquet Access-Accept (attribut de type 88). L'administrateur système doit configurer le NAS et mettre à jour les attributs d'autorisation pour l'utilisateur en incluant l'attribut framed-Pool dans le fichier default.auth global ou le fichier user.auth sur le serveur RADIUS. Le fichier dictionnaire du serveur RADIUS comprend cet attribut :

ATTRIBUTE    Framed-Pool    88       string

Si le NAS ne peut pas utiliser plusieurs pools d'adresses, le NAS ignore cet attribut. Le pool d'adresses du NAS contient une liste d'adresses IP. Le NAS sélectionne de manière dynamique l'une des adresses IP définies dans le pool spécifié et l'attribue à l'utilisateur.

Attributs spécifiques au fournisseur

Certains fournisseurs de logiciels indépendants (ISV) ne peuvent pas utiliser l'attribut Framed-Pool, mais peuvent définir des pools d'adresses IP. Le serveur RADIUS peut utiliser ces pools d'adresses à l'aide du modèle d'attribut de fournisseur (VSA). Par exemple, un NAS Cisco fournit un attribut appelé Cisco-AVPair. Le fichier dictionnaire du serveur RADIUS comprend cet attribut :

VENDOR     Cisco           9
ATTRIBUTE  Cisco-AVPair    1       string

Lorsque le NAS envoie un paquet de demande d'accès, il inclut cet attribut avec Cisco-AVPair=”ip:addr-pool=poolnamenom_pool est le nom du pool d'adresses défini sur le NAS. Une fois la demande authentifiée et autorisée, le serveur RADIUS renvoie l'attribut dans le paquet Access-Accept. Le NAS peut alors utiliser le pool défini pour attribuer l'adresse IP à l'utilisateur. L'administrateur système doit configurer le NAS et mettre à jour les attributs d'autorisation de l'utilisateur en incluant l'attribut VSA dans le fichier default.auth global ou le fichier user.auth sur le serveur RADIUS.

Mise en commun des IP côté serveur Radius

Le serveur RADIUS peut être configuré pour générer une adresse IP à partir d'un pool d'adresses IP. L'adresse IP est renvoyée dans l'attribut Framed-IP-Address du paquet Access-Accept.

L'administrateur système peut définir un pool d'adresses IP à l'aide de l'interface SMIT. Les adresses sont conservées dans le fichier /etc/radius/ippool_def . Les noms de pool sont définis dans le fichier etc/radius/clients . L'administrateur système doit également configurer le numéro du NAS-Port. Le daemon du serveur RADIUS utilise les informations des fichiers etc/radius/clients et /etc/radius/ippool_def pour créer des fichiers de données. Une fois le daemon lancé, l'administrateur système ne peut pas modifier ou ajouter les noms de poolnamesou les plages d'adresses IP tant que les serveurs RADIUS ne se sont pas arrêtés. Lorsque le daemon du serveur RADIUS est lancé, il lit le fichier de configuration (/etc/radius/radius.conf) et si l'attribution IP (Enable_IP_Pooling=YES) est activée, il définit le l'indicateur d'attribution IP global (IP_pool_flag) sur On. Le démon vérifie ensuite si le fichier poolname.data existe. Si c'est le cas, il lit le fichier et conserve cette information dans la mémoire partagée. Il met ensuite à jour le fichier et la mémoire partagée en fonction des demandes provenant des clients. Si le fichier n'existe pas, le daemon crée un nouveau fichier à l'aide des informations provenant des fichiers etc/radius/clients et /etc/radius/ippool_def. La taille maximale du fichier " poolname.data " est de 256 Mo (limite de taille du segmentAIX ). Si le fichier poolname.data est supérieur à 256 Mo, le serveur RADIUS consigne un message d'erreur et se ferme.

Le démon obtient les détails du pool IP à partir du fichier /etc/radius/ippool_def et maintient une table d'adresses IP pour chaque nom de pool dans la mémoire partagée. Le tableau comporte des entrées pour l'adresse IP du NAS, le NAS-port et l’indicateur IN USE. Le daemon maintient une table de hachage dont la clé est le NAS-IP NAS-port. Lorsque les demandes proviennent de plusieurs utilisateurs, l'UDP met les requêtes en file d'attente et le daemon extrait les données NAS-IP et NAS-port de la demande. En utilisant ces informations, il vérifie si un poolname a été défini pour ce NAS en vérifiant les informations lues dans le fichier etc/radius/clients.

Le daemon tente d'obtenir une adresse inutilisée du pool. Si une adresse inutilisée est disponible, elle est marquée comme étant « in use » par les indicateurs NAS-IP et NAS-port et est renvoyée au serveur RADIUS. L'adresse IP est mise dans l'attribut Framed-IP-Address par le daemon et renvoyée au NAS dans le paquet accept. Le fichier poolname.data est également mis à jour pour être synchronisé avec les informations de la mémoire partagée.

Si le pool n'existe pas ou existe mais qu'il n'a plus d'adresses inutilisées, une erreur est renvoyée au serveur RADIUS. L'erreur Could not allocate IP address est consignée dans le fichier journal et un paquet Access-Reject est envoyé au NAS par le serveur RADIUS.

Les codes d'erreur sont les suivants :

  • NOT_POOL- Aucun pool n'est défini pour le nas_ip.
  • POOL_ÉPUISÉE-Le pool est défini pour le nas_ip, mais toutes les adresses du pool sont en cours d'utilisation.

Lorsque la demande d'authentification provient d'une combinaison NAS et NAS-port qui a déjà une adresse IP attribuée, le daemon rend l'attribution précédente au pool, en marquant l'indicateur IN USE sur Off, et en effaçant les entrées NAS-IP-address et NAS-port dans la table. Il attribue ensuite une nouvelle adresse IP à partir du pool.

L'adresse IP est également renvoyée au pool lorsque le serveur RADIUS reçoit un paquet Accounting-Stop du NAS. Le paquet Accounting-Stop doit contenir les entrées NAS-IP-address et NAS-port. Le daemon accède au fichier ippool_mem pour les cas suivants :

  • La demande est présentée pour obtenir une nouvelle adresse IP. Définit le paramètre IN USE sur true.
  • Un paquet Accounting-Stop est reçu. Il libère l'adresse IP en définissant l'indicateur « in use » sur false.

Dans chaque cas, les appels du système de mémoire partagée garantissent que les données de la mémoire partagée et les fichiers poolname.data sont synchronisés. L'administration système peut activer l'allocation IP ON ou OFF à l'aide du paramètre Enable_IP_Pooling dans le fichier de configuration du serveur RADIUS (radiusd.conf). Cela est utile dans les cas où l'administrateur système a une adresse IP affectée dans le fichier global default.auth ou user.auth . Pour utiliser cette adresse IP affectée, l'administrateur système doit définir Enable_IP_Pool = NO.

Exemple de fichier /etc/radius/ippool_def créé via SMIT :
Nom de pool Plage de départ Plage de fin
Floor5 192.165.1.1 192.165.1.125
Floor6 192.165.1.200 192.165.1.253
Voici un exemple de fichier /etc/radiusclients créé via SMIT :
NAS-IP code partagé Nom de pool
1.2.3.4 Secret1 Floor5
1.2.3.5 Secret2 Floor6
1.2.3.6 Secret3 Floor5
1.2.3.7 Secret4  
Dans l'exemple ci-dessus concernant le NAS-IP-Address 1.2.3.7, le nom du pool est vide. Dans ce cas, la mise en commun d'un pool IP n'est pas effectuée pour ce NAS (même si le fichier global IP_pool_flag = True). Lorsque le paquet Access-Request est fourni, le serveur RADIUS effectue l'authentification et l'autorisation. En cas de succès, il envoie l'adresse IP statique définie dans la requête, ou provenant du fichier global default.auth ou du fichier user.auth, dans le paquet Access-Accept. Dans ce cas, l'attribut NAS-Port n'est pas requis.

Si la mise en commun d'adresses IP est True, l'administrateur système a également défini une adresse IP statique dans le cadre du système global default.auth ou user.auth, ou dans le cadre du paquet Access-Request. Le serveur RADIUS remplace cette adresse IP par l'adresse IP attribuée à partir du nom de pool défini pour cette NAS. Si toutes les adresses IP du pool sont utilisées, le serveur consigne l'erreur (pool is full) et envoie un paquet Access-Reject. Le serveur ignore toute adresse IP statique définie dans les fichiers auth.

Si la mise en commun d'adresses IP est True et qu'un nom de pool valide est défini pour NAS, lorsqu'un paquet Access-Request provient de ce NAS-IP et qu'il n'a pas de NAS-Port défini, le serveur envoie un paquet Access-Reject.

Voici un exemple de fichierFloor5.data créé par le daemon :
Adresse IP NAS-IP NAS-Port In Use
192.165.1.1 1.2.3.4 2 1
192.165.1.2 1.2.3.4 3 0
............ ....... .... ....
192.165.1.124 1.2.3.6 1 1
192.165.1.125 1.2.3.6 6 1
Voici un exemple de fichierFloor6.data créé par le daemon :
Adresse IP NAS-IP NAS-Port In Use
192.165.200 1.2.3.4 1 1
192.165.201 1.2.3.4 4 1
............ ....... .... ....
192.165.1.252 1.2.3.4 5 0
192.165.1.253 1.2.3.4 6 1
Lorsqu'il est nécessaire de libérer toutes les adresses IP attribuées pour un NAS spécifié (par exemple, lorsqu'un NAS s'arrête), il peut être nécessaire de libérer toutes les adresses IP de tous les pools pour initialiser le fichier poolname.data. L'administrateur système peut effectuer les actions de menu suivantes à l'aide de SMIT :
  • Effacer le pool IP pour un client
  • Effacer l'intégralité du pool IP

Panneaux SMIT pour pool IP

Dans Client Configuration, Add a client, vous pouvez entrer le Nom du pool facultatif. Le nom ne peut pas contenir plus de 64 caractères. Lorsque le champ Pool Name est vide, le La mise en commun des adresses IP n'est pas effectuée et le serveur RADIUS attribue l'adresse IP définie par l'administrateur système via l'attribut d'autorisation Framed-IP-Address.

Lorsque le IP Pool est sélectionné, les options suivantes s'affichent :

  • Lister de tous les pools IP
  • Créer un pool d'adresses IP
  • Modifier/afficher les caractéristiques d'un pool IP
  • Supprimer un pool d'adresses IP
  • Effacer le pool IP pour un client
  • Effacer l'intégralité du pool IP

Lister de tous les pools IP: Utilisez cette option pour répertorier les Nom du pool, Adresse IP de la plage de départ et Adresse IP de la plage d'arrivée.

Créer un pool d'adresses IP : Utilisez cette option pour ajouter le nom du pool, la plage de départ et la plage d'arrivée. Ces données sont ajoutées au bas du fichier ippool_def. Des vérifications sont effectuées pour s'assurer qu'il n'existe pas de noms de pools en double et que les plages d'adresses IP sont disjointes. Cette action ne peut être exécutée que lorsque les daemons du serveur RADIUS ne sont pas en cours d'exécution.

Modifier/afficher les caractéristiques d'un pool IP : Cette option affiche la liste des noms de pool dans un panneau en incrustation. Dans ce panneau, vous devez sélectionner un nom de pool spécifique. Lorsque vous sélectionnez un nom de pool, un panneau contenant le nom sélectionné s'affiche. Lorsque vous appuyez sur ENTREE, les données de ce nom de pool sont mises à jour dans le fichier ippool_def. Cette action ne peut être exécutée que lorsque les daemons du serveur RADIUS ne sont pas en cours d'exécution.

Supprimer un pool d'adresses IP : la sélection de cette option affiche la liste des noms de pool que vous pouvez sélectionner. Lorsque vous sélectionnez le nom de pool, le panneau en incrustation Are You Sure s'affiche pour vous permettre de confirmer la suppression du nom de pool sélectionné. Le script rmippool est appelé pour supprimer le nom de pool sélectionné du fichier ippool_def. Cette action ne peut être exécutée que lorsque les daemons du serveur RADIUS ne sont pas en cours d'exécution.

Effacer le pool IP pour un client: cette option marque l'entrée IN-USE sur 0 pour les adresses IP qui appartiennent au NAS, ce qui signifie que toutes les adresses IP de ce NAS sont désormais disponibles. Cette action ne peut être effectuée que lorsque les daemons du serveur RADIUS ne sont pas en cours d'exécution.

Effacer l'intégralité du pool IP: Lorsque cette option est sélectionnée, un panneau en incrustation Are You Sure s'affiche pour fournir une confirmation avant que l'intégralité du fichier ippool_mem ne soit effacée. Cette action ne peut être exécutée que lorsque les daemons du serveur RADIUS ne sont pas en cours d'exécution.