Part 1 - 原理介紹
1.1 什么是AAA
AAA是Authentication(驗(yàn)證)、Authorization(授權(quán))和Accounting(審計(jì))的簡(jiǎn)稱。
AAA是一種提供驗(yàn)證、授權(quán)和審計(jì)的安全技術(shù)。該技術(shù)可以用于驗(yàn)證用戶是否合法,授權(quán)用戶可以訪問(wèn)哪些服務(wù),并記錄用戶使用網(wǎng)絡(luò)資源的情況。
例如,企業(yè)總部需要對(duì)服務(wù)器的資源訪問(wèn)進(jìn)行控制,只有通過(guò)驗(yàn)證的用戶才能訪問(wèn)特定的資源,并對(duì)用戶使用資源的情況進(jìn)行記錄。在這種場(chǎng)景下,可以按照如圖1-1所示的方案進(jìn)行AAA部署。NAS為網(wǎng)絡(luò)接入服務(wù)器,也稱為AAA的客戶端,負(fù)責(zé)集中收集和管理用戶的訪問(wèn)請(qǐng)求。AAA服務(wù)器可以一臺(tái)專屬的硬件設(shè)備,也可以是以軟件的形式安裝在服務(wù)器操作系統(tǒng)上(本文將使用思科的ACS軟件來(lái)實(shí)現(xiàn)AAA服務(wù)器),用戶的驗(yàn)證、授權(quán)和審計(jì)服務(wù)均由AAA服務(wù)器來(lái)完成。
【圖1-1】

1.2 AAA的工作流程
如圖1-1所示,當(dāng)分支站點(diǎn)的用戶需要訪問(wèn)總部的服務(wù)器資源時(shí),NAS設(shè)備會(huì)對(duì)用戶的訪問(wèn)進(jìn)行控制,用戶向NAS設(shè)備提交賬戶信息(用戶名和密碼)后,NAS設(shè)備會(huì)將用戶信息發(fā)送給AAA服務(wù)器,由AAA服務(wù)器進(jìn)行賬戶信息的驗(yàn)證,并對(duì)用戶進(jìn)行授權(quán)。如果用戶驗(yàn)證通過(guò),則分支站點(diǎn)的用戶可以訪問(wèn)到特性的服務(wù)器資源(可以訪問(wèn)哪些服務(wù)器,由授權(quán)來(lái)決定),同時(shí)AAA服務(wù)器也會(huì)對(duì)用戶的訪問(wèn)行為進(jìn)行審計(jì)。
1.3 什么是RADIUS
RADIUS(Remote Authentication Dial-In User Service,遠(yuǎn)程認(rèn)證撥號(hào)用戶服務(wù))由IETF定義的一種公有協(xié)議,是AAA客戶端和AAA服務(wù)器之間通訊的一種協(xié)議。除了RADIUS協(xié)議外,不同的網(wǎng)絡(luò)設(shè)備廠商也提出了各自的私有協(xié)議,例如,思科公司提出的TACACS+協(xié)議,華為提出的HWTACACS,也可以使用在AAA客戶端和AAA服務(wù)器之間。(本文將使用RADIUS協(xié)議作為AAA的通訊協(xié)議)
- RADIUS 服務(wù)包括三個(gè)組成部分:
- 協(xié)議:RADIUS的幀格式和消息傳輸機(jī)制在RFC 2865、RFC 2866中進(jìn)行了定義,并定義了UDP端口1812作為認(rèn)證端口,UDP端口1813作為計(jì)費(fèi)端口。
- 服務(wù)器:RADIUS服務(wù)器,也就是AAA服務(wù)器,包含了相關(guān)的用戶認(rèn)證和網(wǎng)絡(luò)服務(wù)訪問(wèn)信息。
- 客戶端:網(wǎng)絡(luò)接入服務(wù)器,可以由網(wǎng)絡(luò)設(shè)備,例如,路由器、交換機(jī)等,也可以由專屬設(shè)備來(lái)充當(dāng),對(duì)用戶的訪問(wèn)進(jìn)行控制;
- RADIUS服務(wù)器通常要維護(hù)三個(gè)數(shù)據(jù)庫(kù),如下圖所示:

- USERS數(shù)據(jù)庫(kù):用于存儲(chǔ)用戶信息(如用戶名、口令以及使用的協(xié)議、IP 地址等配置);
- CLIENTS數(shù)據(jù)庫(kù):用于存儲(chǔ)RADIUS客戶端(注:是AAA客戶端,不是個(gè)人用戶)的信息,例如,如共享密鑰;
- DICTIONARY數(shù)據(jù)庫(kù):存儲(chǔ)的信息用于解釋RADIUS協(xié)議中的屬性和屬性值的含義;
- RADIUS的基本消息交互流程:
【圖1-2】

- 用戶輸入用戶名和密碼;
- RADIUS客戶端根據(jù)收到的用戶名和密碼,向RADIUS服務(wù)器發(fā)送認(rèn)證請(qǐng)求包(Access-Request);
- RADIUS服務(wù)器將該用戶信息與USERS數(shù)據(jù)庫(kù)中的信息進(jìn)行對(duì)比分析,如果認(rèn)證功,則將用戶的權(quán)限信息以認(rèn)證響應(yīng)包(Access-Accept)發(fā)送給 RADIUS客戶端;如果認(rèn)證失敗,則返回Access-Reject響應(yīng)包;
- RADIUS客戶端根據(jù)接收到的認(rèn)證結(jié)果對(duì)用戶進(jìn)行接入或者 拒絕,如果可以接入用戶,則RADIUS客戶端向RADIUS服務(wù)器發(fā)送計(jì)費(fèi)開始請(qǐng)求包(Accounting-Request ),Status-Type取值為start ;
- RADIUS服務(wù)器返回計(jì)費(fèi)開始響應(yīng)包(Accounting-Response );
- 用戶開始訪問(wèn)資源;
- RADIUS客戶端向RADIUS服務(wù)器發(fā)送計(jì)費(fèi)停止請(qǐng)求包(Accounting-Request ),Status-Type取值為stop ;
- RADIUS服務(wù)器返回計(jì)費(fèi)結(jié)束響應(yīng)包(Accounting-Response );
- 用戶訪問(wèn)資源結(jié)束。RADIUS協(xié)議采用UDP報(bào)文來(lái)承載數(shù)據(jù),通過(guò)定時(shí)器管理機(jī)制、重傳機(jī)制、備用服務(wù)器機(jī)制,確保RADIUS 服務(wù)器和客戶端之間交互消息正確收發(fā)。
Part 2 - 實(shí)驗(yàn)配置
2.1 實(shí)驗(yàn)拓?fù)?/h6>
【圖2-1】

2.2 實(shí)驗(yàn)需求
- IP的地址,如圖2-1所示;
- PC機(jī)使用Telnet對(duì)路由器進(jìn)行遠(yuǎn)程登入;
- NAS對(duì)登入行為進(jìn)行驗(yàn)證,驗(yàn)證方式采用AAA,并使用RADIUS作為AAA協(xié)議;
2.3 實(shí)驗(yàn)設(shè)備
- 華為AR2220路由器,通過(guò)eNSP模擬;
- PC機(jī),使用物理主機(jī);
- 思科ACS 5.8(ACS的安裝本文不涉及,如果不清楚的小伙伴可以留言回復(fù))
2.3 實(shí)驗(yàn)配置步驟
Step 1 - 基礎(chǔ)IP配置(略)
Step 2 - 配置AAA服務(wù)器
- 通過(guò)Web頁(yè)面登入AAA服務(wù)器(思科ACS服務(wù)器)

- 在AAA服務(wù)器上添加AAA的客戶端
在右部導(dǎo)航欄,Network Device Groups --> Network Devices and AAA Clients

在頁(yè)面的左下角點(diǎn)擊Create

配置AAA客戶端
- Name:客戶端的名字,可以隨便填寫;
- IP:客戶端的IP地址,保證IP可達(dá);
- AAA協(xié)議選擇,本文選擇RADIUS,并保證密鑰和客戶端上的密鑰一致
配置完成后,點(diǎn)擊提交(submit)

- 在ACS上創(chuàng)建用戶賬戶


Step 3 - 配置AAA客戶端
- 創(chuàng)建AAA服務(wù)器的模板,
[Huawei]radius-server template Helperaddress
[Huawei-radius-Helperaddress]radius-server authentication 192.168.193.201 1812
[Huawei-radius-Helperaddress]radius-server shared-key helperaddress
[Huawei-radius-Helperaddress]undo radius-server user-name domain-included
- 配置AAA協(xié)議使用RADIUS,并在AAA配置模式下調(diào)用上一步創(chuàng)建的模板
[Huawei]aaa
[Huawei-aaa-authen-Helperaddress]authentication-mode radius
[Huawei-aaa]authentication-scheme Helperaddress
- 配置AAA域
華為的設(shè)備是基于域來(lái)對(duì)用戶進(jìn)行管理,每個(gè)域都可以配置不同的認(rèn)證、授權(quán)和授權(quán)的模板。每個(gè)用戶都屬于某一個(gè)域。用戶屬于哪個(gè)域是由用戶名中的域名分隔符@后的字符串決定。例如,如果用戶名是user@huawei,則用戶屬于huawei域。如果用戶名后不帶有@,則用戶屬于系統(tǒng)缺省域default。
ARG3系列路由設(shè)備支持兩種缺省域:
- default域?yàn)槠胀ㄓ脩舻娜笔∮颉?/li>
- default_admin域?yàn)楣芾碛脩舻娜笔∮颉?br> 用戶可以修改但不能刪除這兩個(gè)缺省域。默認(rèn)情況下,設(shè)備最多支持32個(gè)域,包括兩個(gè)缺省域。
進(jìn)入default-admin域綁定認(rèn)證模板和radius-server模板(這個(gè)default-admin域是專門用來(lái)管理用的,所以telnet,ssh等登陸設(shè)備時(shí)必須使用這個(gè)默認(rèn)的域,自己定義的不行)
[Huawei]aaa
[Huawei-aaa]domain default_admin
[Huawei-aaa-domain-default_admin]authentication-scheme Helperaddress
[Huawei-aaa-domain-default_admin]radius-server Helperaddress
- 進(jìn)入VTY配置模式,將VTY驗(yàn)證方式配置成AAA
[Huawei]user-interface vty 0 4
[Huawei-ui-vty0-4]authentication-mode aaa
Step 4 - 在PC機(jī)上進(jìn)行測(cè)試

