簡介
本文說明如何使用 Radius 或 TACACS+ 通訊協定,在思科路由器上設定認證、授權及計費 (AAA)。
必要條件
需求
本文件沒有特定需求。
慣例
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
採用元件
本檔案中的資訊是根據Cisco IOS®軟體版本12主行。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
本檔案將說明如何在使用Radius或TACACS+通訊協定的思科路由器上設定驗證、授權和計量(AAA)。本文件的目標並非涵蓋所有 AAA 功能,而是說明主要指令,並提供範例和指南。
注意:在繼續進行Cisco IOS配置之前,請閱讀有關常規AAA配置的一節。否則可能會導致組態錯誤和後續封鎖。
有關更多資訊,請參閱Authentication, Authorization and Accounting Configuration Guide。
網路圖表
網路圖表
常規AAA配置
啟用AAA
要啟用AAA,需要在全域性配置中配置 aaa new-model命令。
注意:在啟用此命令之前,所有其他AAA命令均處於隱藏狀態。
警告: aaa new-model命令會立即對所有線路和介面應用本地身份驗證(控制檯線路line con 0除外)。如果啟用此命令(或如果連線超時且必須重新連線),則使用者必須通過路由器的本地資料庫進行身份驗證。建議在啟動AAA配置之前,在接入伺服器上定義使用者名稱和密碼,這樣就不會鎖定在路由器之外。請參見下一個代碼示例。
Router(config)#username xxx password yyy
提示:在配置AAA命令之前,請先配置 save
。只有在 save
完成AAA配置後(並且確信其正常工作),您才能再次進行配置。這樣您就可以從意外的鎖定中恢復,因為您可以重新載入路由器來回滾任何更改。
指定外部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伺服器文檔。如果AAA伺服器配置不正確,則AAA伺服器可以忽略來自NAS的AAA請求,並且連線可能會失敗。
AAA伺服器必須可從存取伺服器以IP方式連線(執行ping測試以驗證連線)。
驗證設定
身份驗證會在使用者被允許訪問網路和網路服務之前對其進行驗證(通過授權進行驗證)。
配置AAA身份驗證:
-
首先定義身份驗證方法的命名清單(在全域性配置模式下)。
-
將該清單應用到一個或多個介面(在介面配置模式下)。
唯一的例外是預設方法清單(名為default)。預設方法清單會自動應用於所有介面,但顯式定義了命名方法清單的介面除外。定義的方法清單會覆蓋預設的方法清單。
這些驗證範例使用Radius、登入和點對點通訊協定(PPP)驗證來解釋概念,例如方法和命名清單。在所有範例中,TACACS+都可以替代Radius或本機驗證。
Cisco IOS軟體使用所列的第一種方法對使用者進行驗證。如果該方法無法響應(以ERROR表示),則Cisco IOS軟體會選擇方法清單中列出的下一個身份驗證方法。此過程會一直持續,直到與列出的身份驗證方法成功通訊,或者方法清單中定義的所有方法都已用盡。
必須注意的是,只有在沒有來自前一方法的響應時,Cisco IOS軟體才會嘗試使用列出的下一個身份驗證方法進行身份驗證。如果身份驗證在此循環中的任何時刻失敗,即如果AAA伺服器或本地使用者名稱資料庫響應拒絕使用者訪問(由FAIL指示),則身份驗證過程將停止,並且不會嘗試任何其他身份驗證方法。
要允許使用者身份驗證,必須在AAA伺服器上配置使用者名稱和密碼。
登入驗證
您可以使用 aaa authentication login命令對想要exec訪問訪問訪問伺服器(tty、vty、控制檯和aux)的使用者進行身份驗證。
示例1:使用Radius然後使用Local的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展開配置,以便控制檯登入僅通過線路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清單會覆蓋行con 0上的預設方法清單。在con 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連線。它通常用於對希望通過訪問伺服器訪問Internet或中央辦公室的ISDN或模擬遠端使用者進行身份驗證。
示例1:所有使用者的單一PPP身份驗證方法
接入伺服器具有配置為接受PPP撥入客戶端的ISDN介面。我們使用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或下一埠)。假設已配置aaa authentication login和aaa authentication ppp命令。
如果數據機使用者首先使用字元模式exec會話訪問路由器(例如,撥號後使用終端視窗),則使用者在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授權與身份驗證的規則相同:
-
首先定義授權方法的命名清單。
-
然後將該清單應用到一個或多個介面(預設方法清單除外)。
-
使用列出的第一種方法。如果它沒有響應,則使用第二個響應,以此類推。
方法清單特定於請求的授權型別。本文檔重點介紹Exec和網路授權型別。
有關其他授權型別的詳細資訊,請參閱Cisco IOS安全配置指南。
Exec授權
aaa authorization exec 命令確定是否允許使用者運行EXEC shell。此工具可以返回使用者配置檔案資訊,如自動命令資訊、空閒超時、會話超時、訪問清單和許可權以及其他按使用者因素。
執行授權僅通過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伺服器分配Exec許可權級別
根據示例1,在AAA伺服器上配置下一個思科AV配對,以便使用者可以登入訪問伺服器並直接進入啟用模式:
shell:priv-lvl=15
使用者現在可以直接前往啟用模式。
註:如果第一種方法無法響應,則使用本地資料庫。但是,使用者無法直接前往啟用模式,但必須輸入enable命令並提供enable 密碼。
示例3:從AAA伺服器分配空閒超時
要配置空閒超時(以便會話在空閒超時後無通訊的情況下斷開),請使用使用者配置檔案下的IETF Radius屬性28: Idle-Timeout。
網路授權
aaa authorization network
命令對所有與網路相關的服務請求(如PPP、SLIP和ARAP)運行授權。本節重點介紹最常用的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相互關聯。
相關資訊