У меня есть SonicWall, где я хочу включить возможность единого входа RADIUS. Статья для этого заявляет сервер RADIUS Send the user’s IP address in either Framed-IP-Address or Calling-Station-Id attribute in both Start and Stop messages.
Моя установка выглядит следующим образом: AP -> NPS -> (RADIUS Accounting forwarded) Sonicwall
При подключении к AP он успешно входит в систему. Когда перенаправленное событие достигает SonicWall, у него нет Framed-IP-Address
или IP в Calling-Station-Id
(только MAC-адрес).
Attribute Value Pairs
AVP: l=19 t=Acct-Session-Id(44): 53AB6162-00000010
AVP: l=6 t=Acct-Status-Type(40): Stop(2)
AVP: l=6 t=Acct-Authentic(45): RADIUS(1)
AVP: l=10 t=User-Name(1): user
AVP: l=6 t=NAS-IP-Address(4): 10.10.0.150
AVP: l=14 t=NAS-Identifier(32): xxxxxxxxx
AVP: l=6 t=NAS-Port(5): 0
AVP: l=35 t=Called-Station-Id(30): XX-XX-XX-XX-XX-XX:SSID
AVP: l=19 t=Calling-Station-Id(31): XX-XX-XX-XX-XX-XX
AVP: l=6 t=NAS-Port-Type(61): Wireless-802.11(19)
AVP: l=23 t=Connect-Info(77): CONNECT 0Mbps 802.11b
AVP: l=46 t=Class(25): 420e04e70000013700011700000000000000000000000000...
AVP: l=6 t=Acct-Session-Time(46): 604
AVP: l=6 t=Acct-Input-Packets(47): 182
AVP: l=6 t=Acct-Output-Packets(48): 145
AVP: l=6 t=Acct-Input-Octets(42): 32797
AVP: l=6 t=Acct-Output-Octets(43): 47272
AVP: l=6 t=Event-Timestamp(55): Jun 26, 2014 09:47:54.000000000 PDT
AVP: l=6 t=Acct-Terminate-Cause(49): User-Request(1)
AVP: l=22 t=Proxy-State(33): 1700000000000000000000000000000000000039
Я обнаружил, что мои точки доступа Ubiquiti не отправляют Framed-IP-Address
или IP в Calling-Station-Id
и они рекомендуют RADIUS получать эту информацию от DHCP. Мне должно быть что-то не хватает, так как я не могу найти конфигурацию нигде в NPS или службе DHCP.
Как мне получить правильную информацию на мой SonicWall через DHCP или NPS?
У других людей есть попросил Ubiquiti о том же но безрезультатно. После изучения кода выяснилось, что для этого потребуются разумные инженерные решения. (Ubiquiti пришла к такому же выводу.)
Точки доступа Ubiquiti основаны на Linux и используют hostapd для обеспечения их функциональности AP. Я немного покопался в исходном коде hostapd и не обнаружил, что он поддерживает заполнение Framed-IP-Address
Атрибут RADIUS (src/radius/radius.c
, то radius_attr_type radius_attrs
структура). Что касается заполнения Calling-Station-Id
атрибут, hostpad заполняет его только MAC-адресом, насколько я могу судить (src/ap/ieee802_11_auth.c
в функции hostapd_radius_acl_query
откуда он получает MAC hostapd_allowed_address
, И в src/ap/ieee802_1x.c
в функции add_common_radius_sta_attr
).
Поскольку hostapd в первую очередь занимается аутентификацией мобильного устройства (MU) (и маленький бит учета RADIUS) и не обрабатывает произвольный IP-трафик для MU после аутентификации у него действительно не будет IP-адрес MU, который нужно передать RADIUS.
Я не думаю, что вы получите то, что хотите, без написания кода. Теоретически вы можете установить какой-то прокси-сервер RADIUS уровня 7 между службой NPS и Sonicwall и переписать этот атрибут с MAC на IP-адрес (запрашивая ваши DHCP-серверы). FreeRADIUS политика может просто уметь делать то, что хочешь.
По предложению Эвана. В итоге я написал свой собственный код, используя unifi-api пользователем спокойствие. Моя вилка проекта включает инструкции по настройке с помощью FreeRADIUS.
Я пошел по маршруту FreeRADIUS> NPS (Auth)> Sonicwall (Acct).