2011年3月11日 星期五

編輯 FreeRADIUS 的 users 設定檔

users 設定檔位於 /usr/local/etc/raddb/ 或是 /etc/raddb/,負責記錄 Server 端的帳號,與各種認證方式的 default 設定。

1. 每一行若是以 '#' 開頭將視為註解,FreeRADIUS 處理時將會略過該行的內容。

2. 每一筆 user 的記錄都分為三部分
a. Username
b. Check items
c. Reply items

以下為一筆帳號記錄的範例,對照相同的背景顏色即可了解該部分為何
##
vlan2 Auth-Type := EAP, Cleartext-Password := "vlan2"
    Service-Type = Framed-User,
    Tunnel-Type = 13,
    Tunnel-Medium-Type = 6,
    Tunnel-Private-Group-ID := "2p"
##

3. Check items 中的項目必須位於同一行,項目間必須以 ',' 分隔,最後一個項目之後不加 ','。

4. Check items 和 Reply items 間必須換行,每個 Reply items 位於不同行,且每行必須先以 [Tab] 開頭再加 Reply items 的項目。每一行的結尾則以 ',' 分隔,最後一個項目之後不加 ','。

5. 當 Server 收到 RADIUS-Request 後,首先判斷是否來自合法的 client 端 (clients.conf),再來判斷是否在本地端作驗證或是轉發到其他 server (proxy.conf),若是在本地端作驗證就會以 users 中的記錄依序來逐一比對。首先帳號是否存在,有符合的帳號就會進一步比對 Check items 中的項目是否吻合,若是 Check items 中的項目吻合,就會將 Reply items 中的項目以 RADIUS attribute 的方式加在 RADIUS-Response 中。

6. RADIUS-Request 無論夾帶的帳號為何,都會與 DEFAULT 的記錄作比對。

7. 若是 Reply items 的結尾加入 Fall-Through = No 則不會再比對下一筆記錄;Fall-Through =Yes 則會繼續比對下一筆記錄。

8.  Check items 中的 Auth-Type 可以指定以認證方式作為確認的條件。

9. '=' 僅用於 Reply items 中,當 RADIUS-Response 中沒有相同的 attribute 時會新增此 attribute。

10. ':=' 用於 Check items 中,會先比對此 attribute,但是當 RADIUS-Request 中沒有此 attribute 時,則會加入此 attribute。

11. ':=' 用於 Reply items 中,會先比對此 attribute,但是當 RADIUS-Response 中沒有此 attribute 時,則會加入此 attribute。當 RADIUS-Response 已有此 attribute 時,則會以新值取代此 attribute。

12. '==' 僅用於 Check items,比對此 attribute。


Reference:
Man page of users
RFC attributes
Radius Types

沒有留言:

張貼留言