簡介
本文說明如何使用 Radius 或 TACACS+ 通訊協定,在思科路由器上設定認證、授權及計費 (AAA)。
必要條件
需求
本文件沒有特定需求。
慣例
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
採用元件
本文件中的資訊是以 Cisco IOS® 軟體版本 12 主線路為依據。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
本文件說明如何使用 Radius 或 TACACS+ 通訊協定,在思科路由器上設定認證、授權及計費 (AAA)。本文件的目標並非涵蓋所有 AAA 功能,而是說明主要指令,並提供範例和指南。
附註:繼續進行Cisco IOS配置之前,請閱讀有關AAA常規配置的一節。未先閱讀說明可能會導致設定錯誤和後續遭鎖定。
如需詳細資訊,請參閱認證、授權及計費組態指南。
網路圖表
網路圖表
AAA 一般組態
啟用 AAA
若要啟用 AAA,您需要在全域組態中設定 aaa new-model 命令。
附註:在啟用此命令之前,所有其他AAA命令都處於隱藏狀態。
警告: aaa new-model 命令立即將本地身份驗證應用於所有線路和介面(控制檯線路line con 0除外)。 如果 Telnet 工作階段在命令啟用(或連線逾時且必須重新連線)後向路由器開放,則使用者必須使用路由器的本機資料庫進行驗證。建議在啟動AAA配置之前,在訪問伺服器上定義使用者名稱和密碼,這樣您就不會被路由器鎖定。請參閱下一個代碼範例。
Router(config)#username xxx password yyy
提示:在配置AAA命令之前 save
,先配置它。只有在完成AAA配置(並且確信其正常工作)之後,您才 能再次進行配置。 save
這可讓您從非預期的鎖定中復原,只要重新載入路由器就能復原任何變更。
指定外部 AAA 伺服器
在全域組態中,請定義搭配 AAA 使用的安全通訊協定(Radius、TACACS+)。 如果您不想使用這兩種通訊協定中的任何一種,可以使用路由器上的本機資料庫。
如果您使用 TACACS+,請使用 tacacs-server host <IP address of the AAA server> <key> 命令。
如果您使用 Radius,請使用 radius-server host <IP address of the AAA server> <key> 命令。
AAA 伺服器組態
在 AAA 伺服器上,設定下一組參數:
-
存取伺服器的名稱。
-
存取伺服器用來與 AAA 伺服器通訊的 IP 位址。
附註:如果兩台裝置位於同一個乙太網路中,則預設情況下,訪問伺服器在傳送AAA資料包時使用乙太網介面上定義的IP地址。當路由器擁有多個介面(因此擁有多個位址)時,這個問題尤其重要。
-
存取伺服器中設定完全相同的金鑰 <key> 。
附註:金鑰區分大小寫。
-
存取伺服器使用的通訊協定(TACACS+ 或 Radius)。
有關用於配置先前引數的確切過程,請參閱AAA伺服器文檔。如果 AAA 伺服器未正確設定,則 AAA 伺服器可能會忽略來自 NAS 的 AAA 請求,導致連線失敗。
AAA 伺服器的 IP 位址必須可以從存取伺服器連線(進行 ping 測試以確認連線能力)。
驗證組態
驗證可確認使用者身分,再讓他們存取網路和網路服務(使用授權進行驗證)。
設定 AAA 驗證:
-
先定義已命名的驗證方法清單(使用全域組態模式)。
-
將該清單套用至一或多個介面(使用介面組態模式)。
唯一的例外是預設方法清單(名為default)。 預設方法清單會自動套用至所有介面,但明確定義具名方法清單的介面除外。已定義的方法清單會覆寫預設方法清單。
這些驗證範例使用 Radius、登入和點對點通訊協定 (PPP) 等驗證來說明方法和已命名清單等概念。在所有範例中,TACACS+ 能以 Radius 或本機驗證取代。
Cisco IOS 軟體會使用列出的第一種方法來驗證使用者。如果該方法無法回應(顯示「錯誤」),則 Cisco IOS 軟體會選擇方法清單中的下一個驗證方法。此程序會持續進行,直到與列出的驗證方法成功通訊為止,或直到方法清單上所有定義的方法都用盡為止。
必須注意的是,只有當沒有來自先前方法的響應時,Cisco IOS軟體才會嘗試使用下一個列出的身份驗證方法進行身份驗證。如果在此循環中發生驗證失敗的情況,也就是 AAA 伺服器或本機使用者名稱資料庫回應拒絕使用者存取(顯示「失敗」),驗證程序會停止,且不會嘗試其他驗證方法。
若要允許使用者驗證,您必須在 AAA 伺服器上設定使用者名稱和密碼。
登入驗證
您可以使用 aaa authentication login 命令來驗證想要執行存取存取伺服器(tty、vty、主控台和 aux)的使用者。
範例 1:使用Radius然後使用本地EXEC訪問
Router(config)#aaa authentication login default group radius local
在上一個命令中:
-
已命名清單為預設清單(預設)。
-
共有兩種驗證方法(Radius 和本機群組)。
所有使用者均使用 Radius 伺服器(第一個方法)進行驗證。 如果 Radius 伺服器無回應,則會使用路由器本機資料庫(第二個方法)。 若要使用本機驗證,請定義使用者名稱和密碼:
Router(config)#username xxx password yyy
由於已經使用 aaa authentication login 命令的預設清單,因此會為所有登入連線(例如 tty、vty、主控台和 aux)自動套用登入驗證。
附註:如果沒有IP連線,或者在AAA伺服器上沒有正確定義訪問伺服器或在訪問伺服器上沒有正確定義AAA伺服器,則伺服器(Radius或TACACS+)無法回覆訪問伺服器傳送的aaa身份驗證請求。
附註:如果使用上一個示例(不帶local關鍵字),則結果為:
Router(config)#aaa authentication login default group radius
附註:如果AAA伺服器沒有回覆身份驗證請求,則身份驗證失敗(因為路由器沒有備用方法可嘗試)。
附註: group關鍵字提供了一種將當前伺服器主機分組的方法。此功能可讓使用者選取已設定伺服器主機的子集,並將這些主機用於特定服務。
範例 2:控制檯訪問與線路口令一起使用
從範例 1 擴展組態,讓主控台登入只透過 line con 0 的密碼組進行驗證。
CONSOLE 清單在定義後會套用至 line con 0。
組態:
Router(config)#aaa authentication login CONSOLE line
在上一個命令中:
-
已命名的清單為 CONSOLE。
-
只有一種驗證方法(線路)。
建立命名清單(在本示例中為CONSOLE)時,必須將其應用到線路或介面才能執行。以下命令可完成 login authentication
此操作:
Router(config)#line con 0
Router(config-line)#exec-timeout 0 0
Router(config-line)#password cisco
Router(config-line)#login authentication CONSOLE
CONSOLE清單會覆蓋第0行上的預設方法清單預設值。在第0行上進行此配置後,您需要輸入口令cisco來獲取控制檯訪問許可權。預設清單仍用於 tty、vty 和 aux。
附註:要通過本地使用者名稱和密碼驗證控制檯訪問,請使用下一個代碼示例:
Router(config)#aaa authentication login CONSOLE local
在此案例中,您必須在路由器本機資料庫中設定使用者名稱和密碼。清單也必須套用至線路或介面。
附註:要無身份驗證,請使用下一個代碼示例:
Router(config)#aaa authentication login CONSOLE none
在此案例中,無須驗證即可獲得主控台存取權。清單也必須套用至線路或介面。
範例 3:與外部AAA伺服器一起使用的啟用模式訪問
您可以發出驗證以進入啟用模式(權限 15)。
組態:
Router(config)#aaa authentication enable default group radius enable
只能請求密碼,使用者名稱是$enab15$。因此您必須在 AAA 伺服器上定義使用者名稱 $enab15$。
如果 Radius 伺服器未回覆,則必須輸入在本機路由器上設定的啟用密碼。
PPP 驗證
aaa authentication ppp 命令可用來驗證 PPP 連線。其通常用來驗證 ISDN,或驗證想要透過存取伺服器,存取網際網路或中央辦公室的類比遠端使用者。
範例 1:適用於所有使用者的單一PPP身份驗證方法
存取伺服器具備 ISDN 介面,並設定為接受 PPP 撥入用戶端。我們使用 dialer rotary-group 0,但可在主介面或撥號器設定檔介面上完成設定。
組態:
Router(config)#aaa authentication ppp default group radius local
此命令使用Radius驗證所有PPP使用者。如果 Radius 伺服器未回覆,將使用本機資料庫。
範例 2:與特定清單一起使用的PPP身份驗證
若要使用已命名的清單而非預設清單,請設定下列命令:
Router(config)#aaa authentication ppp ISDN_USER group radius
Router(config)#interface dialer 0
Router(config-if)#ppp authentication chap ISDN_USER
在此範例中,清單為 ISDN_USER,且方法為 Radius。
範例 3:從字元模式會話中啟動的PPP
存取伺服器具備內部數據機卡(Mica、Microcom 或 Next Port)。 假設已設定 aaa authentication login 和 aaa authentication ppp 命令。
如果數據機使用者先使用字元模式執行工作階段(例如撥號後的終端機視窗) 存取路由器,則該使用者可在 tty 線路上進行驗證。若要啟動封包模式工作階段,使用者必須輸入 ppp default 或 ppp。由於 PPP 驗證已明確設定(使用 aaa authentication ppp),使用者會再次於 PPP 層級進行驗證。
為避免進行第二次驗證,請使用 if-needed 關鍵字:
Router(config)#aaa authentication login default group radius local
Router(config)#aaa authentication ppp default group radius local if-needed
附註:如果客戶端直接啟動PPP會話,則直接執行PPP身份驗證,因為訪問伺服器沒有登入訪問許可權。
設定授權
授權是您控制使用者可以執行哪些操作的程序。
AAA 授權與驗證的規則相同:
-
首先定義授權方法的已命名清單。
-
然後將該清單套用至一或多個介面(預設方法清單除外)。
-
使用第一個列出的方法。如果該方法無法回應,則使用第二種,以此類推。
方法清單為請求的授權類型專用。本文件著重說明「執行」和「網路」授權類型。
如需其他授權類型的詳細資訊,請參閱 Cisco IOS 安全組態指南。
執行授權
aaa authorization exec 命令可判斷使用者是否獲准執行 EXEC 殼層。此設施可傳回使用者設定檔資訊,例如自動命令資訊、閒置逾時、工作階段逾時、存取清單和權限及其他個別使用者因素。
執行授權僅在 vty 和 tty 線路上進行。
下一個範例使用 Radius。
範例 1:所有使用者使用相同的Exec身份驗證方法
使用下列方式驗證時:
Router(config)#aaa authentication login default group radius local
所有想要登入存取伺服器的使用者,都必須透過 Radius(第一種方法)或本機資料庫(第二種方法)取得授權。
組態:
Router(config)#aaa authorization exec default group radius local
附註:在AAA伺服器上,必須選擇Service-Type=1(登入)。
附註:在本例中,如果未包括local關鍵字,且AAA伺服器未響應,則無法進行授權,連線可能會失敗。
附註:在下一個示例2和3中,您無需在路由器上新增任何命令。您只需要在存取伺服器上配置設定檔即可。
範例 2:從AAA伺服器分配執行特權級別
根據範例 1,在 AAA 伺服器上設定下一個 Cisco AV 配對,以便使用者登入存取伺服器並直接進入啟用模式:
shell:priv-lvl=15
現在使用者可以直接進入啟用模式。
附註:如果第一種方法無法響應,則使用本地資料庫。不過,使用者無法直接進入啟用模式,而是必須輸入啟用命令並提供啟用密碼。
範例 3:從AAA伺服器分配空閒超時
要配置空閒超時(以便會話在空閒超時後沒有流量時斷開),請使用IETF Radius屬性28:使用者配置檔案下的Idle-Timeout。
網路授權
命令會對所有網路相關服務請求執行授權,例如 PPP、SLIP 和 ARAP。aaa authorization network
本節內容聚焦於最常使用的 PPP。
AAA 伺服器會確認系統是否允許用戶端使用 PPP 工作階段。此外,客戶端可以請求PPP選項:回撥、壓縮、IP地址等。必須在AAA伺服器上的使用者配置檔案中配置這些選項。此外,AAA 設定檔可以針對特定用戶端包含閒置逾時、存取清單和其他個別使用者屬性,且 Cisco IOS 軟體可下載這些內容並套用至此用戶端中。
接下來的範例會顯示使用 Radius 進行的授權。
範例 1:所有使用者使用相同的網路授權方法
存取伺服器用來接受 PPP 撥入連線。
使用者將透過下列方式進行驗證(如先前所設定):
Router(config)#aaa authentication ppp default group radius local
使用下一個命令來授權給使用者:
Router(config)#aaa authorization network default group radius local
附註:在AAA伺服器上,設定: Service-Type=7(framed)和Framed-Protocol=PPP。
範例 2:應用使用者特定屬性
您可以使用 AAA 伺服器來指派個別使用者屬性,例如 IP 位址、回撥號碼、撥號器閒置逾時值或存取清單等等。在這類實作中,NAS 會從 AAA 伺服器使用者設定檔下載合適的屬性。
範例 3:使用特定清單的PPP授權
與驗證類似,請設定清單名稱,而非使用預設名稱:
Router(config)#aaa authorization network ISDN_USER group radius local
接著,將此清單套用至介面:
Router(config)#interface dialer 0
Router(config-if)#ppp authorization ISDN_USER
計費組態
AAA 計費功能可讓您追蹤使用者存取的服務,以及這些服務消耗的網路資源量。
AAA 計費與驗證及授權的規則相同:
-
您必須先定義計費方法的已命名清單。
-
然後將該清單套用至一或多個介面(預設方法清單除外)。
-
如果使用所列的第一種方法無法回應,則使用第二種,以此類推。
接下來的範例聚焦於資訊如何傳送至 AAA 伺服器。
計費組態範例
範例 1:生成開始和停止記帳記錄
在每個撥入 PPP 工作階段中,當用戶端通過驗證且使用關鍵字 start-stop 中斷連線後,計費資訊便會傳送至 AAA 伺服器。
Router(config)#aaa accounting network default start-stop group radius local
範例 2:僅生成停止記帳記錄
如果必須在用戶端中斷連線後傳送計費資訊,請使用關鍵字 stop 並設定下一個線路:
Router(config)#aaa accounting network default stop group radius local
範例 3:為驗證和交涉失敗產生資源記錄
到目前為止,AAA 計費會為通過使用者驗證的通話提供開始和停止記錄支援。
如果驗證或 PPP 交涉失敗,將不會有驗證記錄。
解決方案是使用 AAA 資源失敗停止計費:
Router(config)#aaa accounting send stop-record authentication failure
停止記錄會傳送至 AAA 伺服器。
範例 4:啟用完整資源記帳
若要啟用完整資源計費,在通話開始時產生開始記錄,並在通話結束時產生停止記錄,請設定:
Router(config)#aaa accounting resource start-stop
此命令已於 Cisco IOS 軟體版本 12.1(3)T 引入。
使用此命令後,通話開始和通話中斷連線開始停止計費記錄,會追蹤資源連線至裝置的進度。個別使用者驗證開始停止計費記錄,會追蹤使用者管理進度。這兩組計費記錄會與通話的唯一工作階段 ID 交互連結。
相關資訊