Назад | Перейти на главную страницу

Sonicwall SSO с NPS

У меня есть 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).