我有一个SonicWall,我想要启用RADIUS SSOfunction。 这篇文章描述了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时,它成功login。当转发事件到达SonicWall时,它没有Framed-IP-Address或Calling-Station-Id (仅MAC地址)中的IP。
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接入点不会在Calling-Station-Id发送分Framed-IP-Address或IP,他们推荐使用RADIUS来从DHCP获取这些信息。 我必须错过一些东西,因为我无法在NPS或DHCP服务的任何位置findconfiguration。
如何通过DHCP或NPS向我的SonicWall获取正确的信息?
其他人已经问Ubiquiti同样的事情无济于事。 它看起来,在审查代码后,需要一些合理的工程来做到这一点。 ( Ubiquiti也得出了同样的结论 。)
Ubiquiti接入点是基于Linux的,使用hostapd来提供他们的APfunction。 我挖了一点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中,从hostapd_allowed_address获得MAC,在src/ap/ieee802_1x.c函数add_common_radius_sta_attr )。
由于hostapd主要关心移动单元(MU)的身份validation(以及一些 RADIUS记账),并且在MUauthentication之后不处理任意的IPstream量,所以它不会真的拥有MU的IP地址半径。
我不认为你会得到你想要的书写代码。 从理论上讲,您可以在NPS服务和Sonicwall之间插入某种第7层RADIUS代理,并将该属性从MAC重写到IP地址(查询您的DHCP服务器)。 FreeRADIUS的政策可能只是能够做你想做的。
按照埃文的build议。 我终于用平静的方式使用unifi-api来写自己的代码。 我的项目分支包含有关如何使用FreeRADIUS进行设置的说明。
我去了FreeRADIUS> NPS(Auth)> Sonicwall(Acct)路线。