Radius

如何使用 EAP-TLS 和基於組的授權配置 FreeRADIUS?

  • November 8, 2019

我將 FreeRADIUS 配置為使用 EAP-TLS 進行基於證書的身份驗證(自簽名證書)。身份驗證工作正常,除了我想添加基於組的授權。

更具體地說,我需要Class在回復中使用要發送回 NAS 的屬性。該屬性將被 NAS 讀取並解釋為組成員資訊(例如Class= myclass)。

一些背景資料: 我將 FreeRADIUS 與 strongSwan 一起使用;這就是解釋組成員資訊的地方。

我正在尋找一種讓 FreeRADIUS 了解這些組的簡單方法。我嘗試Class在 rlm_files 模組 ( freeradius/3.0/mods_config/files/authorize) 的配置文件中設置屬性,如下所示:

username     
           Reply-Message := "Hello, %{User-Name}",
           Class := "myclass"

我將第一行留空,因為不需要“檢查項目”

EAP-TLS 身份驗證成功,但該Class屬性未附加到回復中。

我什至不確定 FreeRADIUS 是否在 EAP-TLS 身份驗證完成後處理user(或)文件。authorize我對此表示懷疑。

有沒有一種簡單的方法來Class根據使用者名指定屬性(假設有多個使用者和幾個組)?

FreeRADIUS 可能不會處理使用者文件,因為它使大多數 EAP 數據包的授權部分短路。

您需要在 post-auth 部分中使用 呼叫 users 文件files.authorize,即

Post-auth {
   files.authorize
}

User-Name可以設置為任何值並且授權仍然會成功,因此在為 EAP-TLS 制定策略決策時使用它並不好。

IIRC 證書屬性被解碼並放置在&session-state:列表中。

在這種情況下你可以做

Post-auth {
   update request {
       &request: += &session-state:[*]
   }
   files.authorize
}

這應該使使用者文件中的所有屬性都可用於匹配。它還應該在處理身份驗證嘗試結束時列印出調試輸出中可用的屬性。

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