Как использовать Calling-Station-Id для каждого пользователя в freeRADIUS?

Как использовать Calling-Station-Id для каждого пользователя в freeRADIUS?

Я пытаюсь ограничить каждого пользователя небольшим набором Mac-ID в RADIUS, напрямую включив соответствующую информацию в файл users. Это было бы приемлемо, даже если бы каждый пользователь был ограничен одним mac. На сервере работает FreeRADIUS версии 2.1.12 из репозиториев Ubuntu 13.10. Используемая аутентификация — PEAP и MSCHAPv2.

Когда физический клиент (Nexus 5) пытается подключиться через точку доступа (Netgear WG-102), то FreeRADIUS, похоже, идентифицирует Mac-id в запросе на доступ, но не использует его в проверках. Единственными устройствами в сети в моей текущей тестовой настройке являются сервер Radius, точка доступа и тестовый клиент. Записи в файле usersнастроены следующим образом:

testuser   NT-Password := "<hash>", Calling-Station-Id == "a1b2c3d4e5f6"

Файл policy.confсодержит rewrite.calling_station_idфункцию, которая нормализует идентификаторы Mac в указанном выше формате, и она вызывается available-sites/defaultсразу после preprocess. Правильно отформатированные идентификаторы Mac отображаются в журнале при запуске freeradius -X. Однако запросы отклоняются. Даже если проверка заменена на Calling-Station-Id =* "a1b2c3d4e5f6", которая должна проходить, когда атрибут просто существует, запросы отклоняются. Однако если она заменена на Calling-Station-Id !* "a1b2c3d4e5f6", которая должна проходить, только если атрибутнетприсутствуют в запросе, запросы принимаются.

Напротив, если я использую radclient, то наблюдается ожидаемое поведение. Файлы конфигурации и соответствующие журналы приведены ниже. Вся /etc/freeradiusпапка приведена в ссылке, а также содержит журналы для следующих четырех случаев. Обратите внимание, что номер 2 — единственное неожиданное поведение:

  1. nexus-without-mac-success: usersФайл не прошел проверку MAC, аутентификация прошла успешно
  2. nexus-with-mac-fail: usersФайл имел правильный MAC-адрес, но аутентификация не пройдена
  3. radclient-with-mac-expected-behaviour-fail-with-wrong: radclient запущен с неправильным mac-адресом и отклонен:echo "User-Name=testuser,User-Password=test,Calling-Station-Id=8c:3a:e3:19:70:0e" | radclient localhost auth testing123
  4. radclient-with-mac-expected-behaviour-success-with-correct: radclient запущен с правильным mac-адресом и принят:echo "User-Name=testuser,User-Password=test,Calling-Station-Id=8c:3a:e3:19:70:0f" | radclient localhost auth testing123

Разве нельзя использовать Calling-Station-Idэтот способ? Вопрекиhttp://wiki.freeradius.org/guide/Mac-AuthЯ хочу ограничить количество Mac-Id для каждого пользователя, поэтому если у вас есть альтернативный способ сделать это, это также будет полезно.

http://portmasters.com/tech/docs/radius/userinfo.html#1004825кажется, говорится, что это правильный способ сделать это, хотя написано в 1999 году.

http://www.cmi.ac.in/~ronno/freeradius-testсодержит следующее:

  • freeradius- содержание/etc/freeradius
  • logs- четыре журнала, описанные выше
  • wg102.cfg- конфигурация точки доступа
  • snapshot.tar.gz- tarball, содержащий все вышеперечисленное

решение1

Вы не передали атрибуты внешнего запроса внутреннему серверу.

Устанавливается (в copy_tunnel_request = yeseap.conf eap{peap{}}или mods-available/eap).

https://github.com/FreeRADIUS/freeradius-server/blob/master/raddb/mods-available/eap#L594

Вызов файлов на внутреннем сервере не имеет доступа к атрибуту Calling-Station-ID во внешнем запросе, не соответствует ни одной записи и, следовательно, не устанавливает атрибут управления NT-Password.

Связанный контент