虛擬機中centos 安裝和學習 radius2 版本是2.2.x 的使用等知識
為了測試方面,yum安裝
yum -y install freeradius*
配置文件的位置是 /etc/raddb/ 編譯安裝可能在 /usr/local/etc/raddb
# /etc/init.d/radiusd
用法:/etc/init.d/radiusd {start|stop|status|restart|condrestart|try-restart|reload|force-reload}
yum會自動生成服務腳本,然後可以把radius當做服務直接使用了
配置文件
[root@orangleliu raddb]# tree -L 1
.
├── acct_users
├── attrs
├── attrs.access_challenge
├── attrs.access_reject
├── attrs.accounting_response
├── attrs.pre-proxy
├── certs
├── clients.conf
├── dictionary
├── eap.conf
├── example.pl
├── hints
├── huntgroups
├── ldap.attrmap
├── modules
├── panic.gdb
├── policy.conf
├── policy.txt
├── preproxy_users
├── proxy.conf
├── radiusd.conf
├── sites-available
├── sites-enabled
├── sql
├── sql.conf
├── sqlippool.conf
├── templates.conf
└── users
5 directories, 23 files
配置文件結構大概這樣子,大部分的功能都是通過配置文件來完成的,對於配置文件的熟悉非常重要,每個配置文件中都有大量的說明,仔細閱讀一遍基本也知道如何操作。
radtest 是用來測試的工具,檢查和測試非常有用。
radiusd.conf 主配置文件
clients.conf 用來配置客戶端 裡面應該對應 NAS設備(例如BRAS),自帶了一個本地測試client
users 配置了用戶信息,針對某些用戶設置認證規則,只能使用pap的模式,可以設置密碼加密
sql.conf 配置使用哪種數據庫等,以及sql規則等
site-available site-enabled 是存放 virtual server的目錄,類似Apache的配置策略
概念
NAS 設備: 網絡接入設備,這裡一般是 Radius Client
認證和權鑒 使用 UDP 1812端口
計費 使用 UDP 1813端口
命令
radiusd freeradius主程序,一般調試調試模式 使用 radiusd -Xx 來啟動
radlast 用來查詢用戶通過NAS登錄的情況
radtest 用來模擬NAS設備發送請求
radwho 查看當前在線的用戶,可能因為配置編譯等原因不好使
radrap 關閉某個NAS的所有session
功能
認證
3個常用的認證協議,這三種協議都需要有用戶名和密碼,算是文本協議,所以還挺容易觀察和測試
PAP
redtest 命令默認就是使用這個協議,使用最廣泛的協議。
NAS會使用 用戶名和加密之後的密碼 和Radius服務器交互
密碼明文存儲
測試, 用戶信息在user文件中配置
radtest alice passme 127.0.0.1 100 testing123
Sending Access-Request of id 41 to 127.0.0.1 port 1812
User-Name = "alice"
User-Password = "passme"
NAS-IP-Address = 127.0.0.1
NAS-Port = 100
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=41, length=40
Framed-IP-Address = 192.168.59.103
Reply-Message = "Hello, alice"
CHAP
PAP 的升級版本
增加握手
密碼明文存儲 密碼交互使用密文
MS-CHAP
微軟版本的 CHAP 協議
EAP 拓展協議
用戶存儲
頭兩個種方式都不推薦
文件方式 使用配置文件 users 文件來存儲用戶和密碼
Unix 系統用戶 其實是使用 /etc/shadow 來存儲的用戶信息(但是要注意權限問題,需要再 site-enable 中authorize 中打開unix配置)
數據庫方式 例如Mysql。
安裝mysql插件 yum install freeradius2-mysql
創建數據庫,導入初始化輸入(根據文檔就好了)
編輯 radius.conf 中 # $INCLUDE sql.conf 行的注釋
編輯 sql.conf 中 msql 的認證信息
編輯 sites-enabled/default 中 authorize 部分 去掉 sql 的選項注釋
計費過程
計費和認證相對獨立的,需要NAS來控制整個過程。
可以用來統計用戶上網時間,以及流量數據等。
計費開始發送 Accounting-Request 請求, 開始一個session,分配一個session-id
計費請求中狀態字段 Acct-Status-Type 為 Start, Interim-Update, Stop 來操作session的生命周期
問題
配置多個數據庫
參考freeradius-checking-account-on-multiple
首先要編輯 數據庫配置文件 sql.conf 增加一個sql配置塊, sql dbname {} dbname類似別名,配置項照著原來的配置寫就好了
然後把 site-enable/default 原來的配置項sql 注釋掉 增加 dbname,就會使用 dbname中配置的數據庫了
學習資料
官方文檔
network radius
FreeRadius Beginner’s Guide