Groups

在 FreeRADIUS 3 中將使用者分成兩組(員工和客人)

  • September 20, 2017

我有一個用於 WPA 身份驗證(PEAP + MSCHAPv2)的 FreeRADIUS (3.0.15) 伺服器,一切都是開箱即用的,儘管感覺就像在封閉的修道院中學習一輩子才能掌握配置的每一點。

我在文件中有我的使用者,users我想保持這種方式(相對於 sql 或 ldap),因為我喜歡使用簡單的文本編輯器編輯使用者的便利。

我要完成的工作:

我有兩個 SSID (staffguests),我想將我的使用者分成兩組,這樣如果來賓使用者嘗試在staffSSID 上進行身份驗證,就會被拒絕。

到目前為止我所擁有的:

在我的users文件中:

DEFAULT
   MyGroup := 'guests',
   Fall-Through := Yes

# Guest users
guest1 Cleartext-Password := 'password1'
# End of guest users

DEFAULT
   MyGroup := 'staff',
   Fall-Through := Yes

# Staff users
staff1 Cleartext-Password := 'kdjsfhksf'
# End of staff users

我的希望是,在解析文件之後,該reply:MyGroup屬性具有staffguest取決於與請求匹配的使用者。

我的dictionary文件有這個:

ATTRIBUTE MyGroup 3000 string

我的default網站在authorize組中就有這個,就在files模組之後。rewrite_called_station_id創建了一個新屬性Called-Station-SSID,我使用它沿著 mod 創建的attrMyGroupfiles嘗試過濾使用者:

# get SSID from Called-Station-Id
rewrite_called_station_id

# check guest connecting to staff SSID and reject if so
if (&MyGroup == 'guests' && &Called-Station-SSID == 'STAFF') {
       reject
}

我也試過這個:

if (&reply:MyGroup == 'guests' && &Called-Station-SSID == 'STAFF') {

但無論如何我都會收到以下錯誤:

if (&reply:MyGroup == 'guests' && &Called-Station-SSID == 'STAFF') {
ERROR: Failed retrieving values required to evaluate condition

在這一點上,我不知道發生了什麼以及如何解決它。

如果您想將組分配給使用者,請檢查將項目插入&control列表的項目,即

guest1  Mygroup := 'guests', Cleartext-Password := 'password1'

staff1  Mygroup := 'staff', Cleartext-Password := 'kdjsfhksf'

進而

if ((&control:MyGroup == 'guests') && (&Called-Station-SSID == 'STAFF')) {

引用自:https://serverfault.com/questions/874613