一、AAA 服務器概述
1. 核心定義
AAA 是認證(Authentication)、授權(Authorization)和計費(Accounting)?的簡稱,是網絡安全領域中實現訪問控制的核心安全管理機制,通過整合三種服務確保網絡資源的安全訪問。
2. 三大核心功能
- 認證(Authentication):驗證用戶身份的合法性,確認 “你是誰”。
核心動作包括核對用戶名、密碼、數字證書等用戶憑證。 - 授權(Authorization):在認證通過后,明確用戶可訪問的資源范圍,規定 “你能做什么”。
具體表現為下發用戶權限(如讀寫權限)、允許訪問的目錄 / 服務、用戶操作級別等規則。 - 計費(Accounting):記錄用戶對網絡資源的使用情況,統計 “你用了多少”。
主要記錄內容包括上網流量、連接時長、資源訪問次數等數據,為計費結算或審計提供依據。
3. 應用場景
AAA 服務器通過精細化配置,可對多種網絡服務提供安全保障,支持的典型服務包括 FTP、TELNET、PPP(點到點協議)、端口接入(如交換機端口準入)等。
二、RADIUS 協議詳解
1. 協議定義
RADIUS(Remote Authentication Dial-In User Service,遠程認證撥號用戶服務)是基于 AAA 模型的分布式網絡協議,專為遠程用戶接入認證場景設計,是實現 AAA 機制的最常用協議之一。
2. 核心特性
- 采用客戶端 / 服務器(C/S)架構,分工明確;
- 基于UDP 協議傳輸,默認使用端口:1812(認證與授權)、1813(計費);
- 通過共享密鑰實現客戶端與服務器的身份驗證,保障通信安全;
- 支持多種認證方式(如密碼認證、證書認證等);
- 采用TLV(Type-Length-Value)結構定義屬性,擴展性極強,可靈活適配不同場景需求。
3. 核心組件
- 用戶:遠程接入網絡的終端用戶(如撥號用戶、無線接入用戶等),需提供身份憑證(用戶名、密碼等)。
- RADIUS 客戶端(網絡接入服務器,NAS):直接接收用戶接入請求的設備(如路由器、交換機、無線 AP),負責將用戶憑證封裝為協議報文并轉發給 RADIUS 服務器。
- RADIUS 服務器:核心處理節點,負責接收客戶端轉發的認證 / 授權請求,查詢后端用戶數據庫(如 AD、LDAP)驗證身份,執行授權規則,并記錄計費信息;通常對接策略管理系統實現動態規則配置。
4. 完整交互流程
(1)認證與授權階段
- 用戶向 RADIUS 客戶端(如無線 AP)輸入用戶名和密碼等身份憑證;
- RADIUS 客戶端將憑證封裝為Access-Request(認證請求)?報文,通過共享密鑰加密后發送給 RADIUS 服務器;
- RADIUS 服務器從后端用戶數據庫查詢用戶信息,比對憑證合法性:
- 若認證通過,返回Access-Accept(認證通過)?報文,同時攜帶授權規則(如分配 IP 地址、會話超時時間);
- 若認證失敗,返回Access-Reject(認證拒絕)?報文,拒絕用戶接入。
(2)計費階段
- 認證通過后,RADIUS 客戶端發送Accounting-Request(Start)?報文給服務器,標記會話開始,觸發計費統計;
- 會話過程中,客戶端可定期發送計費更新報文(可選);
- 當用戶結束訪問時,RADIUS 客戶端發送Accounting-Request(Stop)?報文,攜帶完整的會話統計數據(如總流量、總時長);
- RADIUS 服務器接收后返回Accounting-Response?報文確認,完成計費記錄閉環。
5. 報文結構
RADIUS 報文由固定頭部和可變屬性兩部分組成,結構如下:
- Code(1 字節):定義報文類型,核心類型包括:
1=Access-Request(認證請求)、2=Access-Accept(認證通過)、3=Access-Reject(認證拒絕)、4=Accounting-Request(計費請求)、5=Accounting-Response(計費響應)。 - Identifier(1 字節):報文標識,用于匹配請求與響應,防止報文重復或亂序。
- Length(2 字節):整個報文的總長度(字節數),范圍為 20~4096 字節。
- Authenticator(16 字節):認證字段,由共享密鑰和報文內容計算生成,用于驗證報文完整性、防止篡改及客戶端 / 服務器身份校驗。
- Attributes(可變長度):攜帶具體業務數據的屬性列表,每個屬性格式為 “類型(1 字節)+ 長度(1 字節)+ 值(可變長度)”。
6. 核心屬性(Attributes)
屬性是 RADIUS 協議靈活性的核心,用于傳遞用戶信息、認證數據、授權規則等關鍵內容。常見核心屬性如下:
屬性類型 | 描述 | 示例值 |
---|---|---|
User-Name | 用戶名(用戶身份標識) | "alice@company.com" |
User-Password | 加密的用戶密碼(用共享密鑰加密) | 基于共享密鑰加密的字符串 |
NAS-IP-Address | NAS 設備(RADIUS 客戶端)的 IP 地址 | 192.168.1.1 |
Framed-IP-Address | 分配給用戶的 IP 地址 | 10.0.0.5 |
Session-Timeout | 會話超時時間(單位:秒) | 3600(即 1 小時) |
Service-Type | 允許用戶訪問的服務類型 | "Framed-User"(撥號用戶) |
Called-Station-Id | 接入點標識(如無線 AP 的 MAC 地址) | "AA-BB-CC-DD-EE-FF" |
這些屬性可根據實際需求擴展,支持自定義業務規則(如帶寬限制、VLAN 分配等)。