在開始學習Radius之前,必須了解:
- What is AAA?
- What is NAS?
所以,讓我們先對這兩個主題有一個基本的想法。
What is AAA?
AAA代表身份驗證、授權和記帳。
Authentication
指確認正在請求服務的用戶是有效用戶。
通過出示身份和證書來完成。
憑據的示例包括密碼、一次性令牌、數字證書和電話號碼(呼叫/呼叫)。
Authorization
指根據用戶的身份驗證,向用戶授予特定類型的服務(包括「無服務」)。
可能基於限制,例如時間限制、物理位置限制或對同一用戶多次登錄的限制。
服務的例子包括,IP位址過濾、地址分配、路由分配、加密、QoS/差分服務、帶寬控制/流量管理等。
Accounting
指用戶對網絡資源消耗的跟蹤。
在記帳中收集的典型信息包括用戶的身份、提供的服務的性質、服務何時開始以及何時結束。
可用於管理、規劃、計費等。
AAA伺服器爲其客戶提供上述所有服務。
AAA Protocols
Radius是一個AAA協議,用於網絡訪問或IP移動性等應用。除了Radius,我們在AAA中還有以下協議:
Terminal Access Controller Access Control System (TACACS)
TACACS是一種遠程身份驗證協議,用於與Unix網絡中常用的身份驗證伺服器通信。TACACS允許遠程訪問伺服器與身份驗證伺服器通信,以確定用戶是否有權訪問網絡。
TACACS+
TACACS+通過一個或多個集中式伺服器爲路由器、網絡訪問伺服器和其他網絡計算設備提供訪問控制。它使用TCP並提供單獨的身份驗證、授權和記帳服務。它在49號港工作。
DIAMETER
直徑是半徑的計劃替換。
What is Network Access Server?
網絡訪問伺服器(NAS)是一個服務元素,客戶端通過撥號來訪問網絡。NAS是一種既有與骨幹網的接口,又有與POTS或ISDN的接口的設備,它接收希望通過撥號服務訪問骨幹網的主機的呼叫。NAS位於網際網路提供商的服務點,爲其客戶提供網際網路接入。
網絡訪問伺服器是:
對遠程資源的單一訪問點。
遠程訪問伺服器,因爲它允許遠程訪問網絡。
網絡的初始入口點。
保護受保護資源的網關。
示例包括:
使用用戶ID和密碼進行Internet訪問驗證。
Voip,foip,and vmoip require a valid phone number or ip address.
電話預付卡使用預付卡號。
下圖顯示了Radius的基本架構。
RADIUS - Overview
RADIUS是一種協議,用於在希望對其鏈路進行身份驗證的網絡訪問伺服器和共享身份驗證伺服器之間傳輸與身份驗證、授權和配置相關的信息。
RADIUS代表遠程身份驗證撥入用戶服務。
RADIUS是一個AAA協議,用於網絡訪問或IP移動性等應用程式
它適用於本地和移動兩種情況。
它使用密碼認證協議(PAP)、質詢握手認證協議(CHAP)或可擴展認證協議(EAP)對用戶進行認證。
它在文本文件、LDAP伺服器、資料庫中查找身份驗證。
在身份驗證服務參數傳遞迴NAS之後。
它通知會話何時開始和停止。此數據用於計費或統計目的。
SNMP用於遠程監控。
它可以用作代理。
下面是一個簡單的Radius網絡圖:
RADIUS - Features
以下是Radius的所有主要功能:
Client/Server Model
NAS用作Radius伺服器的客戶端。
Radius伺服器負責獲取用戶連接請求,對用戶進行身份驗證,然後返回客戶端向用戶提供服務所需的所有配置信息。
Radius伺服器可以充當其他Radius伺服器的代理客戶端。
Network Security
客戶機和伺服器之間的事務通過使用共享密鑰進行身份驗證。此密鑰從不通過網絡發送。
密碼在通過網絡發送之前已加密。
Flexible Authentication Mechanisms
出於身份驗證目的,Radius支持以下協議:
點對點協議
密碼認證協議
質詢握手身份驗證協議-CHAP
簡單UNIX登錄
Extensible Protocol
Radius是可擴展的;大多數Radius硬體和軟體供應商都實現自己的方言。
無狀態協議,使用UDP,在埠1812運行。
RADIUS - Operations
在客戶端開始與Radius伺服器通信之前,需要在客戶端和伺服器之間共享密鑰,並且客戶端必須配置爲使用Radius伺服器獲取服務。
正確配置客戶端後:
客戶端從訪問請求開始。
伺服器發送訪問接受、訪問拒絕或訪問質詢。
Access Accept保留向用戶提供服務所需的所有屬性。
半徑代碼(十進位)分配如下:
- 1 Access-Request
- 2 Access-Accept
- 3 Access-Reject
- 4 Accounting-Request
- 5 Accounting-Response
- 11 Access-Challenge
- 12 Status-Server (experimental)
- 13 Status-Client (experimental)
- 255 Reserved
- No Keep Alive concept - Good or Bad??
代碼4和5與Radius記帳功能有關。代碼12和13爲可能使用而保留。
RADIUS - Packet Format
Radius的數據包格式如下:
代碼:這是1個八位字節(1個字節)長,用於標識各種類型的數據包。通常1個八位字節表示1個字節。
標識符:這又是一個八位字節長,有助於將響應與請求匹配。
長度:這是2個八位字節長,指定數據包的長度,包括代碼、標識符、長度和驗證器。(最小數據包爲20個八位字節,最大爲4096個八位字節)。
身份驗證器:這是16個八位字節長,在某些請求和響應的情況下填充。
屬性列表:有一個63+屬性的列表,Radius屬性也有一個定義的格式,將在下一章中介紹。
RADIUS - Attributes Format
Radius屬性由以下三部分組成:
類型:1個八位字節長,標識各種類型的屬性。它是下面列出的屬性代碼。
長度:1個八位字節長,包含類型的屬性的長度。
值:0個或多個八位字節長,包含特定於屬性的信息。
RADIUS Attributes List
Code | Attributes |
---|---|
1 | User-Name |
2 | User-Password |
3 | CHAP-Password |
4 | NAS-IP-Address |
5 | NAS-Port |
6 | Service-Type |
7 | Framed-Protocol |
8 | Framed-IP-Address |
9 | Framed-IP-Netmask |
10 | Framed-Routing |
11 | Filter-Id |
12 | Framed-MTU |
13 | Framed-Compression |
14 | Login-IP-Host |
15 | Login-Service |
16 | Login-TCP-Port |
17 | (unassigned) |
18 | Reply-Message |
19 | Callback-Number |
20 | Callback-Id |
21 | (unassigned) |
22 | Framed-Route |
23 | Framed-IPX-Network |
24 | State |
25 | Class |
26 | Vendor-Specific |
27 | Session-Timeout |
28 | Idle-Timeout |
29 | Termination-Action |
30 | Called-Station-Id |
31 | Calling-Station-Id |
32 | NAS-Identifier |
33 | Proxy-State |
34 | Login-LAT-Service |
35 | Login-LAT-Node 3 |
36 | Login-LAT-Group |
37 | Framed-AppleTalk-Link |
38 | Framed-AppleTalk-Network |
39 | Framed-AppleTalk-Zone |
40-59 | (reserved for accounting) |
60 | CHAP-Challenge |
61 | NAS-Port-Type |
62 | Port-Limit |
63 | Login-LAT-Port |
RADIUS - Request Example
Radius Request Example
讓我們看看Radius請求示例:
位於192.168.1.16的NAS向RADIUS伺服器發送一個訪問請求UDP包,供名爲Nemo的用戶使用密碼「arctanent」登錄埠3。
請求認證器是由NAS生成的16個八位隨機數。
The user-password is 16 octets padded at end with nulls,xored with D5(「shared secret \ 124 request authoricator」).
01 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 03
1代碼=訪問請求(1)
1標識符=0
2長度=56
16請求驗證器
屬性列表
6 User Name=「尼莫」
18用戶密碼
6 NAS IP位址=192.168.1.16
6 NAS埠=3
Radius Response Example
下面是響應包的示例:
橈骨伺服器認證NEMO,並向NAS Telling it to tellnet nemo to host 192.168.1.3提供訪問-接受UDP包
響應驗證器是代碼(2)、id(0)、長度(38)、上面的請求驗證器、此回覆中的屬性和共享機密的16位MD5校驗和。
02 00 26 86鐵22 0e 76 24 ba 2a 10 05 f6 bf 9b 55 e0 b2 06 00 00 01 0f 06 00 06 c0 a8 01 03
1代碼=訪問接受(2)
1標識符=0 (same as in Access-Request)
2長度=38
16響應驗證器
屬性列表:
6服務類型(6)=登錄(1)
6 Login-Service(
6登錄IP主機(14)=192.168.1.3
What is DIAMETER
直徑是半徑的計劃替換。它是一個AAA協議,適用於網絡接入和IP移動性等應用。下面列出了一些關於直徑的要點:
它旨在工作在本地和漫遊AAA的情況下。
直徑是先前協議半徑的兩倍。
It uses TCP or SCTP and not UDP.
它使用傳輸級安全性(IPSEC或TLS)。
它有32位標識符,而不是8位。
它支持無狀態模式和有狀態模式。
支持應用層確認,定義故障轉移。
它提供更好的漫遊支持。
它使用AVPs。
Diameter允許定義新的命令和屬性。很容易擴展。
What is Next?
現在你對半徑和直徑有了基本的了解。爲了獲得更多關於這些協議的知識,您需要瀏覽各種rfc和參考資料部分中提到的其他資源。