1 votes

Séparer les utilisateurs en deux groupes (personnel et invités) dans FreeRADIUS 3

J'ai un serveur FreeRADIUS (3.0.15) pour l'authentification WPA (PEAP + MSCHAPv2) et tout fonctionne dès le départ même si cela semble nécessiter une vie entière d'étude dans un monastère clos pour maîtriser chaque aspect de la configuration.

J'ai mes utilisateurs dans le fichier users et je souhaite le conserver ainsi (par rapport à sql ou ldap) car j'apprécie la facilité de les éditer avec un simple éditeur de texte.

Ce que j'essaie de réaliser :

J'ai deux SSID (staff et guests) et je souhaite séparer mes utilisateurs en deux groupes de sorte qu'un utilisateur invité soit rejeté s'il essaie de s'authentifier sur le SSID staff.

Ce que j'ai jusqu'à présent :

Dans mon fichier users :

DEFAULT
    MyGroup := 'guests',
    Fall-Through := Yes

# Utilisateurs invités
guest1 Cleartext-Password := 'mot de passe 1'
# Fin des utilisateurs invités

DEFAULT
    MyGroup := 'staff',
    Fall-Through := Yes

# Utilisateurs du staff
staff1 Cleartext-Password := 'kdjsfhksf'
# Fin des utilisateurs du staff

J'espère que, après l'analyse du fichier, l'attribut reply:MyGroup aura soit staff soit guest en fonction de l'utilisateur ayant correspondu à la demande.

Mon fichier dictionary contient ceci :

ATTRIBUTE MyGroup 3000 string

Et mon site default a ceci dans le groupe authorize, juste après le module files. Le rewrite_called_station_id crée un nouvel attribut Called-Station-SSID, que j'utilise avec l'attribut MyGroup créé par le module files pour essayer de filtrer les utilisateurs :

# Obtenir le SSID de Called-Station-Id
rewrite_called_station_id

# Vérifier si un invité se connecte au SSID staff et rejeter le cas échéant
if (&MyGroup == 'guests' && &Called-Station-SSID == 'STAFF') {
        reject
}

J'ai également essayé ceci :

if (&reply:MyGroup == 'guests' && &Called-Station-SSID == 'STAFF') {

Mais dans tous les cas, j'obtiens l'erreur suivante :

if (&reply:MyGroup == 'guests' && &Called-Station-SSID == 'STAFF') {
ERREUR: Échec de la récupération des valeurs nécessaires pour évaluer la condition

À ce stade, je n'ai aucune idée de ce qui se passe et de comment résoudre le problème.

2voto

Arran Cudbard-Bell Points 1504

Si vous souhaitez attribuer des groupes à des utilisateurs, faites-le avec des éléments à cocher qui insèrent des éléments dans la liste &control, c'est-à-dire :

guest1  Mygroup := 'guests', Cleartext-Password := 'password1'

staff1  Mygroup := 'staff', Cleartext-Password := 'kdjsfhksf'

et ensuite

if ((&control:MyGroup == 'guests') && (&Called-Station-SSID == 'STAFF')) {

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X