Radius 快速指南
什麼是 AAA 和 NAS?
在開始學習 Radius 之前,瞭解以下內容非常重要
- 什麼是 AAA?
- 什麼是 NAS?
因此,讓我們首先對這兩個主題有一個基本瞭解。
什麼是 AAA?
AAA 代表身份驗證、授權和計費。
身份驗證
指的是確認請求服務的使用者是有效使用者。
透過提供身份和憑據來實現。
憑據示例包括密碼、一次性令牌、數字證書和電話號碼(呼叫/被呼叫)。
授權
指的是根據使用者的身份驗證,向用戶授予特定型別的服務(包括“無服務”)。
可以基於限制,例如,一天中的時間限制、物理位置限制或同一使用者多次登入的限制。
服務示例包括 IP 地址過濾、地址分配、路由分配、加密、QoS/差異化服務、頻寬控制/流量管理等。
計費
指的是跟蹤使用者對網路資源的消耗。
計費中通常收集的資訊包括使用者身份、提供的服務性質、服務開始時間和結束時間。
可用於管理、計劃、計費等。
AAA 伺服器向其客戶端提供所有上述服務。
AAA 協議
Radius 是一種用於網路訪問或 IP 移動性等應用程式的 AAA 協議。除了 Radius,我們在 AAA 中還有以下協議
終端訪問控制器訪問控制系統 (TACACS)
TACACS 是一種遠端身份驗證協議,用於與身份驗證伺服器通訊,通常用於 Unix 網路。TACACS 允許遠端訪問伺服器與身份驗證伺服器通訊,以確定使用者是否可以訪問網路。
TACACS+
TACACS+ 透過一個或多個集中式伺服器提供對路由器、網路訪問伺服器和其他聯網計算裝置的訪問控制。它使用 TCP 並提供單獨的身份驗證、授權和計費服務。它工作在 49 埠。
DIAMETER
Diameter 是 Radius 的計劃替代方案。
什麼是網路訪問伺服器?
網路訪問伺服器 (NAS) 是一種服務元素,客戶端撥入以獲取對網路的訪問許可權。NAS 是一種既有骨幹網介面又有 POTS 或 ISDN 介面的裝置,接收來自希望透過撥號服務訪問骨幹網的主機的呼叫。NAS 位於網際網路提供商的存在點,為其客戶提供網際網路接入。
網路訪問伺服器是
遠端資源的單一訪問點。
遠端訪問伺服器,因為它允許遠端訪問網路。
網路的初始入口點。
保護受保護資源的閘道器。
示例包括
使用使用者 ID 和密碼進行網際網路訪問驗證。
VoIP、FoIP 和 VMoIP 需要有效的電話號碼或 IP 地址。
電話預付卡使用預付卡號碼。
下圖顯示了 Radius 的基本架構。
RADIUS - 概述
RADIUS 是一種用於在希望對其連結進行身份驗證的網路訪問伺服器和共享身份驗證伺服器之間傳輸身份驗證、授權和配置資訊的協議。
RADIUS 代表遠端身份驗證撥入使用者服務。
RADIUS 是一種用於網路訪問或 IP 移動性等應用程式的 AAA 協議
在兩種情況下都有效:(a) 本地 (b) 移動。
使用 PAP、CHAP 或 EAP 協議對使用者進行身份驗證。
在文字檔案、LDAP 伺服器、資料庫中查詢身份驗證。
身份驗證服務完成後,將引數傳回 NAS。
會話開始和結束時會收到通知。這些資料將用於計費或統計目的。
SNMP 用於遠端監控
可用作代理。
簡單的 RADIUS 網路圖
RADIUS - 特性
以下是 Radius 所有關鍵特性的列表
客戶端/伺服器模型
NAS 充當 Radius 伺服器的客戶端。
Radius 伺服器負責獲取使用者連線請求、對使用者進行身份驗證,然後返回客戶端向用戶提供服務所需的所有配置資訊。
Radius 伺服器可以充當其他 Radius 伺服器的代理客戶端。
網路安全
客戶端和伺服器之間的交易透過使用共享金鑰進行身份驗證。此金鑰永遠不會透過網路傳送。
密碼在透過網路傳送之前會進行加密。
靈活的身份驗證機制
Radius 支援以下用於身份驗證目的的協議
點對點協議 - PPP
密碼身份驗證協議 - PAP
質詢握手身份驗證協議 - CHAP
簡單的 UNIX 登入
可擴充套件協議
Radius 是可擴充套件的;大多數 Radius 硬體和軟體供應商都實現了他們自己的方言。
無狀態協議,使用 UDP,在埠 1812 執行。
RADIUS - 操作
以下是 RADIUS 操作的詳細資訊。在客戶端開始與 RADIUS 伺服器通訊之前,需要在客戶端和伺服器之間共享共享金鑰,並且必須將客戶端配置為使用 RADIUS 伺服器來獲取服務。
一旦客戶端正確配置後,則
客戶端以 Access-Request 開始。
伺服器傳送 Access-Accept、Access-Reject 或 Access-Challenge。
Access-Accept 保留所有向用戶提供服務的必需屬性。
RADIUS 程式碼(十進位制)分配如下
1 Access-Request
2 Access-Accept
3 Access-Reject
4 Accounting-Request
5 Accounting-Response
11 Access-Challenge
12 Status-Server(實驗性)
13 Status-Client(實驗性)
255 保留
沒有保持活動的概念 - 好還是壞?
程式碼 4 和 5 與 RADIUS 計費功能相關。程式碼 12 和 13 保留以備將來使用,但此處不再贅述。
RADIUS - 資料包格式
Radius 的資料包格式如下所示
程式碼:此欄位長度為 1 個八位位元組 (1 個位元組),用於識別各種型別的資料包。通常 1 個八位位元組表示 1 個位元組。
識別符號:此欄位長度也為 1 個八位位元組,有助於將響應與請求匹配。
長度:此欄位長度為 2 個八位位元組,指定資料包的長度,包括程式碼、識別符號、長度和鑑別器。(最小資料包為 20 個八位位元組,最大為 4096 個八位位元組)。
鑑別器:此欄位長度為 16 個八位位元組,在某些請求和響應中填充。
屬性列表:有 63 個以上的屬性列表,Radius 屬性也將具有定義的格式,這將在下一章中描述。
RADIUS - 屬性
Radius 屬性包含以下三個部分
型別:長度為 1 個八位位元組,識別各種型別的屬性。它是下面列出的屬性程式碼。
長度:長度為 1 個八位位元組,包括型別的屬性長度。
值:長度為 0 個或多個八位位元組,包含特定於屬性的資訊。
RADIUS 屬性列表
| 程式碼 | 屬性 |
|---|---|
| 1 | 使用者名稱 |
| 2 | 使用者密碼 |
| 3 | CHAP 密碼 |
| 4 | NAS IP 地址 |
| 5 | NAS 埠 |
| 6 | 服務型別 |
| 7 | 幀協議 |
| 8 | 幀 IP 地址 |
| 9 | 幀 IP 子網掩碼 |
| 10 | 幀路由 |
| 11 | 過濾器 ID |
| 12 | 幀 MTU |
| 13 | 幀壓縮 |
| 14 | 登入 IP 主機 |
| 15 | 登入服務 |
| 16 | 登入 TCP 埠 |
| 17 | (未分配) |
| 18 | 回覆訊息 |
| 19 | 回撥號碼 |
| 20 | 回撥 ID |
| 21 | (未分配) |
| 22 | 幀路由 |
| 23 | 幀 IPX 網路 |
| 24 | 狀態 |
| 25 | 類 |
| 26 | 供應商特定 |
| 27 | 會話超時 |
| 28 | 空閒超時 |
| 29 | 終止操作 |
| 30 | 被叫站 ID |
| 31 | 主叫站 ID |
| 32 | NAS 識別符號 |
| 33 | 代理狀態 |
| 34 | 登入 LAT 服務 |
| 35 | 登入 LAT 節點 3 |
| 36 | 登入 LAT 組 |
| 37 | 幀 AppleTalk 鏈路 |
| 38 | 幀 AppleTalk 網路 |
| 39 | 幀 AppleTalk 區域 |
| 40-59 | (保留用於計費) |
| 60 | CHAP 質詢 |
| 61 | NAS 埠型別 |
| 62 | 埠限制 |
| 63 | 登入 LAT 埠 |
RADIUS - 示例
Radius 請求示例
讓我們看一下 Radius 請求示例
位於 192.168.1.16 的 NAS 向 RADIUS 伺服器傳送一個 Access-Request UDP 資料包,用於名為 Nemo 的使用者在埠 3 上使用密碼“arctangent”登入。
請求鑑別器是由 NAS 生成的 16 個八位位元組的隨機數。
使用者密碼為 16 個八位位元組,末尾用空值填充,並與 D5(共享金鑰|請求鑑別器)進行異或運算。
01 00 00 38 0f 40 3f 94 73 97 80 57 bd 83 d5 cb 98 f4 22 7a 01 06 6e 65 6d 6f 02 12 0d be 70 8d 93 d4 13 ce 31 96 e4 3f 78 2a 0a ee 04 06 c0 a8 01 10 05 06 00 00 00 03
1 程式碼 = Access-Request (1)
1 識別符號 = 0
2 長度 = 56
16 請求鑑別器
屬性列表
6 使用者名稱 = “Nemo”
18 使用者密碼
6 NAS IP 地址 = 192.168.1.16
6 NAS 埠 = 3
Radius 響應示例
這是一個響應資料包的示例
Radius 伺服器對 Nemo 進行身份驗證,並向 NAS 傳送一個 Access-Accept UDP 資料包,指示它將 Nemo 的 telnet 連線到主機 192.168.1.3
響應鑑別器是上述程式碼 (2)、ID (0)、長度 (38)、請求鑑別器、此回覆中的屬性和共享金鑰的 16 個八位位元組的 MD5 校驗和。
02 00 00 26 86 fe 22 0e 76 24 ba 2a 10 05 f6 bf 9b 55 e0 b2 06 06 00 00 00 01 0f 06 00 00 00 00 0e 06 c0 a8 01 03
1 程式碼 = Access-Accept (2)
1 識別符號 = 0(與 Access-Request 中相同)
2 長度 = 38
16 響應鑑別器
屬性列表
6 服務型別 (6) = 登入 (1)
6 登入服務 (15) = Telnet (0)
6 登入 IP 主機 (14) = 192.168.1.3
什麼是 DIAMETER
Diameter 是 RADIUS 的計劃替代方案。它是一種用於網路訪問和 IP 移動性等應用程式的 AAA 協議。以下列出了一些您需要了解的關於 Diameter 的要點
它旨在在本地和漫遊 AAA 情況下工作。
Diameter 只是其前身協議 Radius 的兩倍。
它使用 TCP 或 SCTP,而不是 UDP。
它使用傳輸級安全 (IPSEC 或 TLS)。
它具有 32 位識別符號,而不是 8 位。
它支援無狀態和有狀態模式。
它支援應用層確認,定義故障轉移。
它提供更好的漫遊支援。
它使用 AVP。
Diameter 允許定義新的命令和屬性。它易於擴充套件。
下一步是什麼?
現在您對 Radius 和 Diameter 有了基本的瞭解。要獲得有關這些協議的更多知識,您需要查閱各種 RFC 和資源部分中提到的其他資源。