У меня есть сервер FreeRADIUS (3.0.15) для аутентификации WPA (PEAP + MSCHAPv2), и все работает из коробки, хотя мне кажется, что потребуется целая жизнь обучения в закрытом монастыре, чтобы освоить каждый бит конфигурации.
У меня есть пользователи в users
файл, и я хотел бы сохранить его таким образом (по сравнению с sql или ldap), потому что мне нравится удобство редактирования пользователей с помощью простого текстового редактора.
Чего я пытаюсь достичь:
У меня два SSID (staff
и guests
), и я хотел бы разделить моих пользователей на две группы, чтобы гостевой пользователь был отклонен, если они попытаются пройти аутентификацию на staff
SSID.
Что у меня есть на данный момент:
В моем users
файл:
DEFAULT
MyGroup := 'guests',
Fall-Through := Yes
# Guest users
guest1 Cleartext-Password := 'password1'
# End of guest users
DEFAULT
MyGroup := 'staff',
Fall-Through := Yes
# Staff users
staff1 Cleartext-Password := 'kdjsfhksf'
# End of staff users
Я надеюсь, что после анализа файла reply:MyGroup
атрибут имеет staff
или guest
в зависимости от того, какой пользователь соответствует запросу.
Мой dictionary
файл имеет это:
ATTRIBUTE MyGroup 3000 string
И мой default
сайт имеет это в authorize
группа, сразу после files
модуль. В rewrite_called_station_id
создает новый атрибут Called-Station-SSID
, который я использую вместе MyGroup
attr, созданный files
мод, чтобы попытаться отфильтровать пользователей:
# get SSID from Called-Station-Id
rewrite_called_station_id
# check guest connecting to staff SSID and reject if so
if (&MyGroup == 'guests' && &Called-Station-SSID == 'STAFF') {
reject
}
Я тоже пробовал это:
if (&reply:MyGroup == 'guests' && &Called-Station-SSID == 'STAFF') {
Но в любом случае я получаю следующую ошибку:
if (&reply:MyGroup == 'guests' && &Called-Station-SSID == 'STAFF') {
ERROR: Failed retrieving values required to evaluate condition
На данный момент я понятия не имею, что происходит и как это исправить.
Если вы хотите назначать группы для пользователей, сделайте это с помощью элементов флажка, которые вставляют элементы в &control
список, т.е.
guest1 Mygroup := 'guests', Cleartext-Password := 'password1'
staff1 Mygroup := 'staff', Cleartext-Password := 'kdjsfhksf'
а потом
if ((&control:MyGroup == 'guests') && (&Called-Station-SSID == 'STAFF')) {