Openldap
freeradius 和 openldap:vlan 歸屬與 radtest 一起使用,但不適用於 wpa_supplicant
我的服務 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
.peap { use_tunneled_reply = yes }
現在交換機埠在相應的 vlan 中配置。