我的服务 freeradius 和 openldap 都在同一台服务器上。模式 Freeradius 被加载到 openldap 中。
我将radiusProfileDN
用户配置为链接到组。在这个组中,我已经radiusReplyAttribute
设置了vlan的信息。
radtest
当我在本地(或从远程且已通过身份验证的客户端)使用该命令时,我收到一个包含 vlan 信息的 Access-Accept 数据包(半径协议)。Wireshark 捕获显示数据包中的 vlan 信息。
LDAP + Radius LDAP + Radius ----- Switch ----- Client
<-------- <-----------------------------
--------> or ----------------------------->
*vlan info* *vlan info*
- 当我使用该工具
wpa_supplicant
(peap-gtc 协议)时,我成功进行了身份验证,但客户端端口未添加到 vlan 组。Wireshark 捕获显示交换机和 Radius 服务器之间交换的 Access-Accept 数据包中没有 vlan 信息。
LDAP + Radius ----- Switch ----- Client
<------------------ <----------
------------------> ---------->
*no vlan info* wpa_supplicant
从 openldap 的日志中,使用 radtest 或 wpa_supplicant 进行身份验证的步骤相同:
- 'mygroup' 上的 radiusReplyAttribute 允许读取访问权限
- 结果在缓存中(radiusReplyAttribute)
- send_search_entry 退出
- send_ldap_result & send_ldap_response
在 ldap 服务器中,我尝试将 vlan 信息直接放在用户中,或者放在已经为 vlan 信息制作的“变量”中,但我得到了相同的结果。
你知道我的问题来自哪里吗?它似乎与 wpa_supplicant 使用不同的协议有关,而不是 radtest 命令和 freeradius (也许我错过了配置中的一行)?
我正在使用 peap-gtc 协议进行身份验证。
要传递 Access-Accept 数据包中的属性信息,我必须编辑以下 freeradius 文件:
mods-enabled/eap
.现在交换机端口在相应的 vlan 中配置。