带有 NPS 的 Sonicwall SSO

带有 NPS 的 Sonicwall SSO

我有一个 SonicWall,我想在其上启用 RADIUS SSO 功能。做这个的文章声明 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 AP 不会发送Framed-IP-Address或 IP,Calling-Station-Id他们建议使用 RADIUS 从 DHCP 获取此信息。我一定是遗漏了什么,因为我在 NPS 或 DHCP 服务的任何地方都找不到配置。

如何通过 DHCP 或 NPS 将正确的信息传送至我的 SonicWall?

答案1

其他人有向 Ubiquiti 询问过同样的事情毫无效果。检查代码后,似乎需要一些合理的工程来实现这一点。(Ubiquiti 也得出了同样的结论

Ubiquiti AP 基于 Linux,使用hostapd提供其 AP 功能。我深入研究了 hostapd 的源代码,发现它不支持填充Framed-IP-AddressRADIUS 属性(src/radius/radius.cradius_attr_type radius_attrs结构)。至于填充属性,就我所见(在从中获取 MAC 的函数中,以及在函数中),Calling-Station-Idhostpad 仅使用 MAC 地址填充该属性。src/ap/ieee802_11_auth.chostapd_radius_acl_queryhostapd_allowed_addresssrc/ap/ieee802_1x.cadd_common_radius_sta_attr

由于 hostapd 主要关注的是验证移动单元 (MU)(以及小的由于 MU 仅支持部分 RADIUS 计费,因此它不会为 MU 处理任意 IP 流量,一旦通过身份验证,它就不会真正拥有 MU 的 IP 来提供给 RADIUS。

我认为如果不编写代码,您就无法获得想要的结果。理论上,您可以在 NPS 服务和 Sonicwall 之间粘贴某种第 7 层 RADIUS 代理,并将该属性从 MAC 重写为 IP 地址(查询您的 DHCP 服务器)。FreeRADIUS政策也许就能做你想做的事。

答案2

按照 Evan 的建议,我最终使用unifi-api作者: calmh。我对这个项目的 fork包括如何使用 FreeRADIUS 进行设置的说明。

我走了 FreeRADIUS > NPS (Auth) > Sonicwall (Acct) 路线。

相关内容