01-AAA配置
本章節下載: 01-AAA配置 (1.02 MB)
1.4.11 配置發送給RADIUS服務器的用戶名格式和數據統計單位
1.4.17 配置RADIUS Attribute 15的檢查方式
1.4.18 配置RADIUS Attribute 25的CAR參數解析功能
1.4.19 配置RADIUS Attribute 31中的MAC地址格式
1.4.20 配置RADIUS Remanent_Volume屬性的流量單位
1.4.21 配置Vendor ID為2011的RADIUS服務器版本號
1.4.23 配置RADIUS服務器都處於block狀態後的請求動作
1.4.25 配置用戶下線時設備強製發送RADIUS計費停止報文
1.4.27 配置RADIUS的accounting-on功能
1.4.28 配置RADIUS的session control功能
1.5.10 配置發送給HWTACACS服務器的用戶名格式和數據統計單位
1.8.2 設置設備上傳到服務器的用戶在線時間中保留閑置切斷時間
1.14.3 SSH用戶的HWTACACS認證、授權、計費配置
1.16.3 附錄C RADIUS擴展屬性(Vendor-ID=25506)
AAA(Authentication、Authorization、Accounting,認證、授權、計費)是網絡安全的一種管理機製,提供了認證、授權、計費三種安全功能。
· 認證:確認訪問網絡的遠程用戶的身份,判斷訪問者是否為合法的網絡用戶。
· 授權:對不同用戶賦予不同的權限,限製用戶可以使用的服務。例如,管理員授權辦公用戶才能對服務器中的文件進行訪問和打印操作,而其它臨時訪客不具備此權限。
· 計費:記錄用戶使用網絡服務過程中的所有操作,包括使用的服務類型、起始時間、數據流量等,用於收集和記錄用戶對網絡資源的使用情況,並可以實現針對時間、流量的計費需求,也對網絡起到監視作用。
AAA采用客戶端/服務器結構,客戶端運行於NAS(Network Access Server,網絡接入服務器)上,負責驗證用戶身份與管理用戶接入,服務器上則集中管理用戶信息。AAA的基本組網結構如圖1-1。
圖1-1 AAA基本組網結構示意圖
當用戶想要通過NAS獲得訪問其它網絡的權利或取得某些網絡資源的權利時,首先需要通過AAA認證,而NAS就起到了驗證用戶的作用。NAS負責把用戶的認證、授權、計費信息透傳給服務器。服務器根據自身的配置對用戶的身份進行判斷並返回相應的認證、授權、計費結果。NAS根據服務器返回的結果,決定是否允許用戶訪問外部網絡、獲取網絡資源。
AAA可以通過多種協議來實現,這些協議規定了NAS與服務器之間如何傳遞用戶信息。目前設備支持RADIUS(Remote Authentication Dial-In User Service,遠程認證撥號用戶服務)協議、HWTACACS(HW Terminal Access Controller Access Control System,HW終端訪問控製器控製係統協議)協議和LDAP(Lightweight Directory Access Protocol,輕量級目錄訪問協議)協議,在實際應用中,最常使用RADIUS協議。
用戶可以根據實際組網需求來決定認證、授權、計費功能分別由使用哪種協議類型的服務器來承擔。例如,可以選擇HWTACACS服務器實現認證和授權,RADIUS服務器實現計費。
當然,用戶也可以隻使用AAA提供的一種或兩種安全服務。例如,公司僅僅想讓員工在訪問某些特定資源時進行身份認證,則網絡管理員隻需要配置認證服務器。但是若希望對員工使用網絡的情況進行記錄,那麼還需要配置計費服務器。
目前,設備支持動態口令認證機製。
RADIUS(Remote Authentication Dial-In User Service,遠程認證撥號用戶服務)是一種分布式的、客戶端/服務器結構的信息交互協議,能保護網絡不受未授權訪問的幹擾,常應用在既要求較高安全性、又允許遠程用戶訪問的各種網絡環境中。RADIUS協議合並了認證和授權的過程,它定義了RADIUS的報文格式及其消息傳輸機製,並規定使用UDP作為封裝RADIUS報文的傳輸層協議,UDP端口1812、1813分別作為認證/授權、計費端口。
RADIUS最初僅是針對撥號用戶的AAA協議,後來隨著用戶接入方式的多樣化發展,RADIUS也適應多種用戶接入方式,如以太網接入、ADSL接入。它通過認證授權來提供接入服務,通過計費來收集、記錄用戶對網絡資源的使用。
· 客戶端:RADIUS客戶端一般位於NAS上,可以遍布整個網絡,負責將用戶信息傳輸到指定的RADIUS服務器,然後根據服務器返回的信息進行相應處理(如接受/拒絕用戶接入)。
· 服務器:RADIUS服務器一般運行在中心計算機或工作站上,維護用戶的身份信息和與其相關的網絡服務信息,負責接收NAS發送的認證、授權、計費請求並進行相應的處理,然後給NAS返回處理結果(如接受/拒絕認證請求)。另外,RADIUS服務器還可以作為一個代理,以RADIUS客戶端的身份與其它的RADIUS認證服務器進行通信,負責轉發RADIUS認證和計費報文。
RADIUS服務器通常要維護三個數據庫,如圖1-2所示:
圖1-2 RADIUS服務器的組成
· “Users”:用於存儲用戶信息(如用戶名、口令以及使用的協議、IP地址等配置信息)。
· “Clients”:用於存儲RADIUS客戶端的信息(如NAS的共享密鑰、IP地址等)。
· “Dictionary”:用於存儲RADIUS協議中的屬性和屬性值含義的信息。
RADIUS客戶端和RADIUS服務器之間認證消息的交互是通過共享密鑰的參與來完成的。共享密鑰是一個帶外傳輸的客戶端和服務器都知道的字符串,不需要單獨進行網絡傳輸。RADIUS報文中有一個16字節的驗證字字段,它包含了對整個報文的數字簽名數據,該簽名數據是在共享密鑰的參與下利用MD5算法計算出的。收到RADIUS報文的一方要驗證該簽名的正確性,如果報文的簽名不正確,則丟棄它。通過這種機製,保證了RADIUS客戶端和RADIUS服務器之間信息交互的安全性。另外,為防止用戶密碼在不安全的網絡上傳遞時被竊取,在RADIUS報文傳輸過程中還利用共享密鑰對用戶密碼進行了加密。
RADIUS服務器支持多種方法來認證用戶,例如PAP(Password Authentication Protocol,密碼認證協議)、CHAP(Challenge Handshake Authentication Protocol,質詢握手認證協議)以及EAP(Extensible Authentication Protocol,可擴展認證協議)。
用戶、RADIUS客戶端和RADIUS服務器之間的交互流程如圖1-3所示。
圖1-3 RADIUS的基本消息交互流程
消息交互流程如下:
(1) 用戶發起連接請求,向RADIUS客戶端發送用戶名和密碼。
(2) RADIUS客戶端根據獲取的用戶名和密碼,向RADIUS服務器發送認證請求包(Access-Request),其中的密碼在共享密鑰的參與下利用MD5算法進行加密處理。
(3) RADIUS服務器對用戶名和密碼進行認證。如果認證成功,RADIUS服務器向RADIUS客戶端發送認證接受包(Access-Accept);如果認證失敗,則返回認證拒絕包(Access-Reject)。由於RADIUS協議合並了認證和授權的過程,因此認證接受包中也包含了用戶的授權信息。
(4) RADIUS客戶端根據接收到的認證結果接入/拒絕用戶。如果允許用戶接入,則RADIUS客戶端向RADIUS服務器發送計費開始請求包(Accounting-Request)。
(5) RADIUS服務器返回計費開始響應包(Accounting-Response),並開始計費。
(6) 用戶開始訪問網絡資源。
(7) 用戶請求斷開連接。
(8) RADIUS客戶端向RADIUS服務器發送計費停止請求包(Accounting-Request)。
(9) RADIUS服務器返回計費結束響應包(Accounting-Response),並停止計費。
(10) 通知用戶結束訪問網絡資源。
RADIUS采用UDP報文來傳輸消息,通過定時器機製、重傳機製、備用服務器機製,確保RADIUS服務器和客戶端之間交互消息的正確收發。RADIUS報文結構如圖1-4所示。
圖1-4 RADIUS報文結構
各字段的解釋如下:
(1) Code域
長度為1個字節,用於說明RADIUS報文的類型,如表1-1所示。
表1-1 Code域的主要取值說明
Code |
報文類型 |
報文說明 |
1 |
Access-Request認證請求包 |
方向Client->Server,Client將用戶信息傳輸到Server,請求Server對用戶身份進行驗證。該報文中必須包含User-Name屬性,可選包含NAS-IP-Address、User-Password、NAS-Port等屬性 |
2 |
Access-Accept認證接受包 |
方向Server->Client,如果Access-Request報文中的所有Attribute值都可以接受(即認證通過),則傳輸該類型報文 |
3 |
Access-Reject認證拒絕包 |
方向Server->Client,如果Access-Request報文中存在任何無法被接受的Attribute值(即認證失敗),則傳輸該類型報文 |
4 |
Accounting-Request計費請求包 |
方向Client->Server,Client將用戶信息傳輸到Server,請求Server開始/停止計費。該報文中的Acct-Status-Type屬性用於區分計費開始請求和計費結束請求 |
5 |
Accounting-Response計費響應包 |
方向Server->Client,Server通知Client已經收到Accounting-Request報文,並且已經正確記錄計費信息 |
(2) Identifier域
長度為1個字節,用於匹配請求包和響應包,以及檢測在一段時間內重發的請求包。對於類型一致且屬於同一個交互過程的請求包和響應包,該Identifier值相同。
(3) Length域
長度為2個字節,表示RADIUS數據包(包括Code、Identifier、Length、Authenticator和Attribute)的長度,單位為字節。超過Length域的字節將作為填充字符被忽略。如果接收到的包的實際長度小於Length域的值時,則包會被丟棄。
(4) Authenticator域
長度為16個字節,用於驗證RADIUS服務器的應答報文,另外還用於用戶密碼的加密。Authenticator包括兩種類型:Request Authenticator和Response Authenticator。
(5) Attribute域
不定長度,用於攜帶專門的認證、授權和計費信息。Attribute域可包括多個屬性,每一個屬性都采用(Type、Length、Value)三元組的結構來表示。
¡ 類型(Type):表示屬性的類型。
¡ 長度(Length):表示該屬性(包括類型、長度和屬性值)的長度,單位為字節。
¡ 屬性值(Value):表示該屬性的信息,其格式和內容由類型決定。
RADIUS協議具有良好的可擴展性,RFC 2865中定義的26號屬性(Vendor-Specific)用於設備廠商對RADIUS進行擴展,以實現標準RADIUS沒有定義的功能。
設備廠商可以在26號屬性中封裝多個自定義的(Type、Length、Value)子屬性,以提供更多的擴展功能。26號屬性的格式如圖1-5所示:
· Vendor-ID,表示廠商代號,最高字節為0,其餘3字節的編碼見RFC 1700。
· Vendor-Type,表示子屬性類型。
· Vendor-Length,表示子屬性長度。
· Vendor-Data,表示子屬性的內容。
我司設備支持的私有RADIUS擴展屬性的Vendor-ID為25506,屬性的具體介紹請參見“1.16.3 附錄C RADIUS擴展屬性(Vendor-ID=25506)”。
圖1-5 26號屬性的格式
HWTACACS(HW Terminal Access Controller Access Control System,HW終端訪問控製器控製係統協議)是在TACACS(RFC 1492)基礎上進行了功能增強的安全協議。該協議與RADIUS協議類似,采用客戶端/服務器模式實現NAS與HWTACACS服務器之間的通信。
HWTACACS協議主要用於PPP(Point-to-Point Protocol,點對點協議)和VPDN(Virtual Private Dial-up Network,虛擬專用撥號網絡)接入用戶及終端用戶的認證、授權和計費。其典型應用是對需要登錄到NAS設備上進行操作的終端用戶進行認證、授權以及對終端用戶執行的操作進行記錄。設備作為HWTACACS的客戶端,將用戶名和密碼發給HWTACACS服務器進行驗證,用戶驗證通過並得到授權之後可以登錄到設備上進行操作,HWTACACS服務器上會記錄用戶對設備執行過的命令。
HWTACACS協議與RADIUS協議都實現了認證、授權和計費功能,它們有很多相似點:結構上都采用客戶端/服務器模式;都使用共享密鑰對傳輸的用戶信息進行加密;都有較好的靈活性和可擴展性。兩者之間存在的主要區別如表1-2所示。
表1-2 HWTACACS協議和RADIUS協議區別
HWTACACS協議 |
RADIUS協議 |
使用TCP,網絡傳輸更可靠 |
使用UDP,網絡傳輸效率更高 |
除了HWTACACS報文頭,對報文主體全部進行加密 |
隻對認證報文中的密碼字段進行加密 |
協議報文較為複雜,認證和授權分離,使得認證、授權服務可以分離在不同的服務器上實現。例如,可以用一個HWTACACS服務器進行認證,另外一個HWTACACS服務器進行授權 |
協議報文比較簡單,認證和授權結合,難以分離 |
支持對設備的配置命令進行授權使用。用戶可使用的命令行受到用戶角色和AAA授權的雙重限製,某角色的用戶輸入的每一條命令都需要通過HWTACACS服務器授權,如果授權通過,命令就可以被執行 |
不支持對設備的配置命令進行授權使用 用戶登錄設備後可以使用的命令行由用戶所具有的角色決定,關於用戶角色的相關介紹請參見“基礎配置指導”中的“RBAC” |
下麵以Telnet用戶為例,說明使用HWTACACS對用戶進行認證、授權和計費的過程。基本消息交互流程圖如圖1-6所示。
圖1-6 Telnet用戶認證、授權和計費流程圖
基本消息交互流程如下:
(1) Telnet用戶請求登錄設備。
(2) HWTACACS客戶端收到請求之後,向HWTACACS服務器發送認證開始報文。
(3) HWTACACS服務器發送認證回應報文,請求用戶名。
(4) HWTACACS客戶端收到回應報文後,向用戶詢問用戶名。
(5) 用戶輸入用戶名。
(6) HWTACACS客戶端收到用戶名後,向HWTACACS服務器發送認證持續報文,其中包括了用戶名。
(7) HWTACACS服務器發送認證回應報文,請求登錄密碼。
(8) HWTACACS客戶端收到回應報文,向用戶詢問登錄密碼。
(9) 用戶輸入密碼。
(10) HWTACACS客戶端收到登錄密碼後,向HWTACACS服務器發送認證持續報文,其中包括了登錄密碼。
(11) 如果認證成功,HWTACACS服務器發送認證回應報文,指示用戶通過認證。
(12) HWTACACS客戶端向HWTACACS服務器發送授權請求報文。
(13) 如果授權成功,HWTACACS服務器發送授權回應報文,指示用戶通過授權。
(14) HWTACACS客戶端收到授權成功報文,向用戶輸出設備的配置界麵,允許用戶登錄。
(15) HWTACACS客戶端向HWTACACS服務器發送計費開始報文。
(16) HWTACACS服務器發送計費回應報文,指示計費開始報文已經收到。
(17) 用戶請求斷開連接。
(18) HWTACACS客戶端向HWTACACS服務器發送計費結束報文。
(19) HWTACACS服務器發送計費結束報文,指示計費結束報文已經收到。
LDAP(Lightweight Directory Access Protocol,輕量級目錄訪問協議)是一種目錄訪問協議,用於提供跨平台的、基於標準的目錄服務。它是在X.500協議的基礎上發展起來的,繼承了X.500的優點,並對X.500在讀取、瀏覽和查詢操作方麵進行了改進,適合於存儲那些不經常改變的數據。
LDAP協議的典型應用是用來保存係統中的用戶信息,如Microsoft的Windows操作係統就使用了Active Directory Server(一種LDAP服務器軟件)來保存操作係統的用戶、用戶組等信息,用於用戶登錄Windows時的認證和授權。
LDAP中使用目錄記錄並管理係統中的組織信息、人員信息以及資源信息。目錄按照樹型結構組織,由多個條目(Entry)組成的。條目是具有DN(Distinguished Name,識別名)的屬性(Attribute)集合。屬性用來承載各種類型的數據信息,例如用戶名、密碼、郵件、計算機名、聯係電話等。
LDAP協議基於Client/Server結構提供目錄服務功能,所有的目錄信息數據存儲在LDAP服務器上。目前,Microsoft的Active Directory Server、IBM的Tivoli Directory Server和Sun的Sun ONE Directory Server都是常用的LDAP服務器軟件。
AAA可以使用LDAP協議對用戶提供認證和授權服務。LDAP協議中定義了多種操作來實現LDAP的各種功能,用於認證和授權的操作主要為綁定和查詢。
· 綁定操作的作用有兩個:一是與LDAP服務器建立連接並獲取LDAP服務器的訪問權限。二是用於檢查用戶信息的合法性。
· 查詢操作就是構造查詢條件,並獲取LDAP服務器的目錄資源信息的過程。
使用LDAP協議進行認證時,其基本的工作流程如下:
(1) LDAP客戶端使用LDAP服務器管理員DN與LDAP服務器進行綁定,與LDAP服務器建立連接並獲得查詢權限。
(2) LDAP客戶端使用認證信息中的用戶名構造查詢條件,在LDAP服務器指定根目錄下查詢此用戶,得到用戶的DN。
(3) LDAP客戶端使用用戶DN和用戶密碼與LDAP服務器進行綁定,檢查用戶密碼是否正確。
使用LDAP協議進行授權的過程與認證過程相似,首先必須通過與LDAP服務器進行綁定,建立與服務器的連接,然後在此連接的基礎上通過查詢操作得到用戶的授權信息。與認證過程稍有不同的是,授權過程不僅僅會查詢用戶DN,還會同時查詢相應的LDAP授權信息。
下麵以Telnet用戶登錄設備為例,說明如何使用LDAP認證服務器來對用戶進行認證。用戶的LDAP認證基本消息交互流程如圖1-7所示。
圖1-7 LDAP認證的基本消息交互流程
基本消息交互流程如下:
(1) 用戶發起連接請求,向LDAP客戶端發送用戶名和密碼。
(2) LDAP客戶端收到請求之後,與LDAP服務器建立TCP連接。
(3) LDAP客戶端以管理員DN和管理員DN密碼為參數向LDAP服務器發送管理員綁定請求報文(Administrator Bind Request)獲得查詢權限。
(4) LDAP服務器進行綁定請求報文的處理。如果綁定成功,則向LDAP客戶端發送綁定成功的回應報文。
(5) LDAP客戶端以輸入的用戶名為參數,向LDAP服務器發送用戶DN查詢請求報文(User DN Search Request)。
(6) LDAP服務器收到查詢請求報文後,根據報文中的查詢起始地址、查詢範圍、以及過濾條件,對用戶DN進行查找。如果查詢成功,則向LDAP客戶端發送查詢成功的回應報文。查詢得到的用戶DN可以是一或多個。
(7) LDAP客戶端以查詢得到的用戶DN和用戶輸入的密碼為參數,向LDAP服務器發送用戶DN綁定請求報文(User DN Bind Request),檢查用戶密碼是否正確。
(8) LDAP服務器進行綁定請求報文的處理。
· 如果綁定成功,則向LDAP客戶端發送綁定成功的回應報文。
· 如果綁定失敗,則向LDAP客戶端發送綁定失敗的回應報文。LDAP客戶端以下一個查詢到的用戶DN(如果存在的話)為參數,繼續向服務器發送綁定請求,直至有一個DN綁定成功,或者所有DN均綁定失敗。如果所有用戶DN都綁定失敗,則LDAP客戶端通知用戶登錄失敗並拒絕用戶接入。
(9) LDAP客戶端保存綁定成功的用戶DN,並進行授權處理。如果設備采用LDAP授權方案,則進行圖1-8所示的用戶授權交互流程;如果設備采用非LDAP的授權方案,則執行其它協議的授權處理流程,此處略。
(10) 授權成功之後,LDAP客戶端通知用戶登錄成功。
下麵以Telnet用戶登錄設備為例,說明如何使用LDAP服務器來對用戶進行授權。用戶的LDAP授權基本消息交互流程如圖1-8所示。
圖1-8 LDAP授權的基本消息交互流程
(1) 用戶發起連接請求,向LDAP客戶端發送用戶名和密碼。
(2) LDAP客戶端收到請求之後,進行認證處理。如果設備采用LDAP認證方案,則按照圖1-7所示進行LDAP認證。LDAP認證流程完成之後,如果已經和該LDAP授權服務器建立了綁定關係,則直接轉到步驟(6),否則轉到步驟(4);如果設備采用非LDAP認證方案,則執行其它協議的認證處理流程,之後轉到步驟(3)。
(3) LDAP客戶端與LDAP服務器建立TCP連接。
(4) LDAP客戶端以管理員DN和管理員DN密碼為參數向LDAP服務器發送管理員綁定請求報文(Administrator Bind Request)獲得查詢權限。
(5) LDAP服務器進行綁定請求報文的處理。如果綁定成功,則向LDAP客戶端發送綁定成功的回應報文。
(6) LDAP客戶端以輸入的用戶名為參數(如果用戶認證使用的是相同LDAP服務器,則以保存的綁定成功的用戶DN為參數),向LDAP服務器發送授權查詢請求報文。
(7) LDAP服務器收到查詢請求報文後,根據報文中的查詢起始地址、查詢範圍、過濾條件以及LDAP客戶端關心的LDAP屬性,對用戶信息進行查找。如果查詢成功,則向LDAP客戶端發送查詢成功的回應報文。
(8) 授權成功後,LDAP客戶端通知用戶登錄成功。
NAS對用戶的管理是基於ISP(Internet Service Provider,互聯網服務提供商)域的,每個用戶都屬於一個ISP域。一般情況下,用戶所屬的ISP域是由用戶登錄時提供的用戶名決定的,如圖1-9所示。
為便於對不同接入方式的用戶進行區分管理,提供更為精細且有差異化的認證、授權、計費服務,AAA將用戶劃分為以下幾個類型:
· login用戶:登錄設備用戶,如SSH、Telnet、FTP、終端接入用戶(即從Console口登錄的用戶)。
· HTTP/HTTPS用戶:使用HTTP或HTTPS服務登錄設備的用戶。
在具體實現中,一個ISP域對應著設備上一套實現AAA的配置策略,它們是管理員針對該域用戶製定的一套認證、授權、計費方法,可根據用戶的接入特征以及不同的安全需求組合使用。
AAA支持以下認證方法:
· 不認證:對用戶非常信任,不對其進行合法性檢查,一般情況下不采用這種方法。
· 本地認證:認證過程在接入設備上完成,用戶信息(包括用戶名、密碼和各種屬性)配置在接入設備上。優點是速度快,可以降低運營成本;缺點是存儲信息量受設備硬件條件限製。
· 遠端認證:認證過程在接入設備和遠端的服務器之間完成,接入設備和遠端服務器之間通過RADIUS、HWTACACS或LDAP協議通信。優點是用戶信息集中在服務器上統一管理,可實現大容量、高可靠性、支持多設備的集中式統一認證。當遠端服務器無效時,可配置備選認證方式完成認證。
AAA支持以下授權方法:
· 不授權:接入設備不請求授權信息,不對用戶可以使用的操作以及用戶允許使用的網絡服務進行授權。此時,認證通過的login用戶隻有係統給予的缺省用戶角色level-0,其中FTP/SFTP/SCP用戶的工作目錄是設備的根目錄,但並無訪問權限。關於用戶角色level-0的詳細介紹請參見“基礎配置指導”中的“RBAC”。
· 本地授權:授權過程在接入設備上進行,根據接入設備上為本地用戶配置的相關屬性進行授權。
· 遠端授權:授權過程在接入設備和遠端服務器之間完成。RADIUS協議的認證和授權是綁定在一起的,不能單獨使用RADIUS進行授權。RADIUS認證成功後,才能進行授權,RADIUS授權信息攜帶在認證回應報文中下發給用戶。HWTACACS/LDAP協議的授權與認證相分離,在認證成功後,授權信息通過授權報文進行交互。當遠端服務器無效時,可配置備選授權方式完成授權。
AAA支持以下計費方法:
· 不計費:不對用戶計費。
· 本地計費:計費過程在接入設備上完成,實現了本地用戶連接數的統計和限製,並沒有實際的費用統計功能。
· 遠端計費:計費過程在接入設備和遠端的服務器之間完成。當遠端服務器無效時,可配置備選計費方式完成計費。
對於login用戶,AAA還可以對其提供以下服務,用於提高對設備操作的安全性:
· 命令行授權:用戶執行的每一條命令都需要接受授權服務器的檢查,隻有授權成功的命令才被允許執行。關於命令行授權的詳細介紹請參考“基礎配置指導”中的“對登錄用戶的控製”。
· 命令行計費:若未開啟命令行授權功能,則計費服務器對用戶執行過的所有有效命令進行記錄;若開啟了命令行授權功能,則計費服務器僅對授權通過的命令進行記錄。關於命令行計費的詳細介紹請參考“基礎配置指導”中的“對登錄用戶的控製”。
· 用戶角色切換認證:在不退出當前登錄、不斷開當前連接的前提下,用戶將當前的用戶角色切換為其它用戶角色時,隻有通過服務器的認證,該切換操作才被允許。關於用戶角色切換的詳細介紹請參考“基礎配置指導”中的“RBAC”。
通過AAA支持VPN多實例,可實現認證/授權/計費報文在VPN之間的交互。如圖1-10所示,各私網客戶端之間業務隔離,連接客戶端的PE設備作為NAS,通過VPN網絡把私網客戶端的認證/授權/計費信息透傳給網絡另一端的私網服務器,實現了對私網客戶端的集中認證,且各私網的認證報文互不影響。
圖1-10 AAA支持VPN多實例典型組網圖
與AAA、RADIUS、HWTACACS、LDAP相關的協議規範有:
· RFC 2865:Remote Authentication Dial In User Service (RADIUS)
· RFC 2866:RADIUS Accounting
· RFC 2867:RADIUS Accounting Modifications for Tunnel Protocol Support
· RFC 2868:RADIUS Attributes for Tunnel Protocol Support
· RFC 2869:RADIUS Extensions
· RFC 3576:Dynamic Authorization Extensions to Remote Authentication Dial In User Service (RADIUS)
· RFC 4818:RADIUS Delegated-IPv6-Prefix Attribute
· RFC 5176:Dynamic Authorization Extensions to Remote Authentication Dial In User Service (RADIUS)
· RFC 1492:An Access Control Protocol, Sometimes Called TACACS
· RFC 1777:Lightweight Directory Access Protocol
· RFC 2251:Lightweight Directory Access Protocol (v3)
AAA配置任務如下:
(1) 配置AAA方案
若選擇使用本地AAA方案,則需要配置本地用戶;若選擇使用遠程AAA方案,則需要配置RADIUS、HWTACACS或LDAP。
¡ 配置本地用戶
¡ 配置RADIUS
¡ 配置LDAP
(2) 創建ISP域並配置相關屬性
a. 創建ISP域
b. 配置ISP域的屬性
(3) 在ISP域中配置實現AAA的方法
請根據實際需求為用戶所在的ISP域配置實現認證、授權、計費的方法,這些方法中將會引用已經配置的AAA方案。
(4) (可選)配置AAA高級功能
¡ 配置NAS-ID
¡ 配置設備ID
當選擇使用本地認證、本地授權、本地計費方法對用戶進行認證、授權或計費時,應在設備上創建本地用戶並配置相關屬性。
所謂本地用戶,是指在本地設備上設置的一組用戶屬性的集合。該集合以用戶名和用戶類別為用戶的唯一標識。
為使某個請求網絡服務的用戶可以通過本地認證,需要在設備上的本地用戶數據庫中添加相應的表項。具體步驟是,創建一個本地用戶並進入本地用戶視圖,然後在本地用戶視圖下配置相應的用戶屬性,可配置的用戶屬性包括:
· 服務類型
用戶可使用的網絡服務類型。該屬性是本地認證的檢測項,如果沒有用戶可以使用的服務類型,則該用戶無法通過認證。
· 用戶狀態
用於指示是否允許該用戶請求網絡服務器,包括active和block兩種狀態。active表示允許該用戶請求網絡服務,block表示禁止該用戶請求網絡服務。
· 最大用戶數
使用當前用戶名接入設備的最大用戶數目。若當前該用戶名的接入用戶數已達最大值,則使用該用戶名的新用戶將被禁止接入。
· 所屬的用戶組
每一個本地用戶都屬於一個本地用戶組,並繼承組中的所有屬性(密碼管理屬性和用戶授權屬性)。關於本地用戶組的介紹和配置請參見“1.3.4 配置用戶組屬性”。
· 用戶授權屬性
用戶認證通過後,接入設備給用戶下發授權屬性。由於可配置的授權屬性都有其明確的使用環境和用途,因此配置授權屬性時要考慮該用戶是否需要某些屬性。
本地用戶的授權屬性在用戶組和本地用戶視圖下都可以配置,且本地用戶視圖下的配置優先級高於用戶組視圖下的配置。用戶組的配置對組內所有本地用戶生效。
· 密碼管理屬性
用戶密碼的安全屬性,可用於對本地用戶的認證密碼進行管理和控製。可設置的策略包括:密碼老化時間、密碼最小長度、密碼組合策略、密碼複雜度檢查策略和用戶登錄嚐試次數限製策略。
本地用戶的密碼管理屬性在係統視圖(具有全局性)、用戶組視圖和本地用戶視圖下都可以配置,其生效的優先級順序由高到底依次為本地用戶、用戶組、全局。全局配置對所有本地用戶生效,用戶組的配置對組內所有本地用戶生效。有關密碼管理以及全局密碼配置的詳細介紹請參見“用戶接入與認證配置指導”中的“Password Control”。
本地用戶配置任務如下:
(1) 配置設備管理類本地用戶屬性
(2) (可選)配置用戶組屬性
開啟全局密碼管理功能(通過命令password-control enable)後,設備上將不顯示配置的本地用戶密碼,也不會將該密碼保存在當前配置中。如果關閉了全局密碼管理功能,已配置的密碼將恢複在當前配置中。當前配置可通過display current-configuration命令查看。
授權屬性和密碼控製屬性均可以在本地用戶視圖和用戶組視圖下配置,各視圖下的配置優先級順序從高到底依次為:本地用戶視圖-->用戶組視圖。
(1) 進入係統視圖。
system-view
(2) 添加設備管理類本地用戶,並進入設備管理類本地用戶視圖。
local-user user-name [ class manage ]
(3) 設置本地用戶的密碼。
password [ { hash | simple } string ]
可以不為本地用戶設置密碼。為提高用戶賬戶的安全性,建議設置本地用戶密碼。
(4) 設置本地用戶可以使用的服務類型。
service-type { ftp | { http | https | ssh | telnet | terminal } * }
缺省情況下,本地用戶不能使用任何服務類型。
(5) (可選)設置本地用戶的狀態。
state { active | block }
缺省情況下,本地用戶處於活動狀態,即允許該用戶請求網絡服務。
(6) (可選)設置使用當前本地用戶名接入設備的最大用戶數。
access-limit max-user-number
缺省情況下,不限製使用當前本地用戶名接入的用戶數。
由於FTP/SFTP/SCP用戶不支持計費,因此FTP/SFTP/SCP用戶不受此屬性限製。
(7) (可選)設置本地用戶的授權屬性。
authorization-attribute { idle-cut minutes | user-role role-name | work-directory directory-name } *
缺省情況下:
¡ 授權FTP/SFTP/SCP用戶可以訪問的目錄為設備的根目錄,但無訪問權限。
¡ 由用戶角色為network-admin或者level-15的用戶創建的本地用戶被授權用戶角色network-operator。
(8) (可選)設置設備管理類本地用戶的密碼管理屬性。請至少選擇其中一項進行配置。
¡ 設置密碼老化時間。
password-control aging aging-time
¡ 設置密碼最小長度。
password-control length length
¡ 設置密碼組合策略。
password-control composition type-number type-number [ type-length type-length ]
¡ 設置密碼的複雜度檢查策略。
password-control complexity { same-character | user-name } check
¡ 設置用戶登錄嚐試次數以及登錄嚐試失敗後的行為。
password-control login-attempt login-times [ exceed { lock | lock-time time | unlock } ]
缺省情況下,采用本地用戶所屬用戶組的密碼管理策略。
(9) (可選)設置本地用戶所屬的用戶組。
group group-name
缺省情況下,本地用戶屬於用戶組system。
為了簡化本地用戶的配置,增強本地用戶的可管理性,引入了用戶組的概念。用戶組是一個本地用戶屬性的集合,某些需要集中管理的屬性可在用戶組中統一配置和管理,用戶組內的所有本地用戶都可以繼承這些屬性。
(1) 進入係統視圖。
system-view
(2) 創建用戶組,並進入用戶組視圖。
user-group group-name
缺省情況下,存在一個用戶組,名稱為system。
(3) 設置用戶組的授權屬性。
authorization-attribute { idle-cut minutes | work-directory directory-name } *
缺省情況下,未設置用戶組的授權屬性。
(4) (可選)設置用戶組的密碼管理屬性。請至少選擇其中一項進行配置。
¡ 設置密碼老化時間。
password-control aging aging-time
¡ 設置密碼最小長度。
password-control length length
¡ 設置密碼組合策略。
password-control composition type-number type-number [ type-length type-length ]
¡ 設置密碼的複雜度檢查策略。
password-control complexity { same-character | user-name } check
¡ 設置用戶登錄嚐試次數以及登錄嚐試失敗後的行為。
password-control login-attempt login-times [ exceed { lock | lock-time time | unlock } ]
缺省情況下,采用全局密碼管理策略。全局密碼管理策略的相關配置請參見“用戶接入與認證配置指導”中的“Password Control”。
可在任意視圖下執行以下命令:
· 顯示本地用戶的配置信息和在線用戶數的統計信息。
display local-user [ class manage | idle-cut { disable | enable } | service-type { ftp | http | https | ssh | telnet | terminal } | state { active | block } | user-name user-name class manage | vlan vlan-id ]
· 顯示本地用戶組的相關配置。
display user-group { all | name group-name }
可在任意視圖下執行以下命令,顯示待審批來賓用戶注冊信息。
display local-guest waiting-approval [ user-name user-name ]
請在用戶視圖下執行以下命令,清除待審批的來賓用戶 注冊信息。
reset local-guest waiting-approval [ user-name user-name ]
RADIUS配置任務如下:
(1) 配置RADIUS服務器探測模板
若要對RADIUS認證服務器進行可達性探測,則需要配置RADIUS服務器探測模板,並在RADIUS認證服務器配置中引用該模板。
(2) 創建RADIUS方案
(3) 配置RADIUS認證服務器
(4) 配置RADIUS計費服務器
(5) 配置RADIUS報文的共享密鑰
若配置RADIUS認證/計費服務器時未指定共享密鑰,則可以通過本任務統一指定對所有認證/計費RADIUS服務器生效的共享密鑰。
(6) 配置RADIUS方案所屬的VPN
若配置RADIUS認證/計費服務器時未指定所屬的VPN,則可以通過本任務統一指定所有認證/計費RADIUS服務器所屬的VPN。
(7) (可選)配置RADIUS服務器的狀態
(8) (可選)配置RADIUS服務器的定時器
(9) (可選)配置RADIUS報文交互參數
(10) (可選)配置RADIUS屬性參數
¡ 配置RADIUS Attribute 25的CAR參數解析功能
¡ 配置RADIUS Attribute 31中的MAC地址格式
¡ 配置RADIUS Remanent_Volume屬性的流量單位
¡ 配置Vendor ID為2011的RADIUS服務器版本號
(11) (可選)配置RADIUS擴展功能
RADIUS服務器探測功能是指,設備周期性發送探測報文探測RADIUS服務器是否可達或可用:如果服務器不可達,則置服務器狀態為block,如果服務器可達,則置服務器狀態為active。該探測功能不依賴於實際用戶的認證過程,無論是否有用戶向RADIUS服務器發起認證,無論是否有用戶在線,設備都會自動對指定的RADIUS服務器進行探測,便於及時獲得該服務器的可達狀態。
RADIUS服務器探測模板用於配置探測參數,並且可以被RADIUS方案視圖下的RADIUS服務器配置引用。
設備采用探測模板中配置的探測用戶名、密碼構造一個認證請求報文,並在探測周期內選擇隨機時間點向引用了探測模板的RADIUS服務器發送該報文。如果在本次探測周期內收到服務器的認證響應報文,則認為當前探測周期內該服務器可達。
係統支持同時存在多個RADIUS服務器探測模板。
僅當RADIUS服務器配置中成功引用了一個已經存在的服務器探測模板,設備才會啟動對該RADIUS服務器的探測功能。
服務器探測功能啟動後,以下情況發生將會導致探測過程中止:
· 刪除該RADIUS服務器配置;
· 取消對服務器探測模板的引用;
· 刪除對應的服務器探測模板;
· 將該RADIUS服務器的狀態手工置為block;
· 刪除當前RADIUS方案。
(1) 進入係統視圖。
system-view
(2) 配置RADIUS服務器探測模板。
radius-server test-profile profile-name username name [ password { cipher | simple } string ] [ interval interval ]
係統最多支持配置16個RADIUS方案。一個RADIUS方案可以同時被多個ISP域引用。
(1) 進入係統視圖。
system-view
(2) 創建RADIUS方案,並進入RADIUS方案視圖。
radius scheme radius-scheme-name
由於RADIUS服務器的授權信息是隨認證應答報文發送給RADIUS客戶端的,RADIUS的認證和授權功能由同一台服務器實現,因此RADIUS認證服務器相當於RADIUS認證/授權服務器。通過在RADIUS方案中配置RADIUS認證服務器,指定設備對用戶進行RADIUS認證時與哪些服務器進行通信。
一個RADIUS方案中最多允許配置一個主認證服務器和16個從認證服務器。缺省情況下,當主服務器不可達時,設備根據從服務器的配置順序由先到後查找狀態為active的從服務器並與之交互。
開啟服務器負載分擔功能後,設備會根據各服務器的權重以及服務器承載的用戶負荷,按比例進行用戶負荷分配並選擇要交互的服務器。
建議在不需要備份的情況下,隻配置主RADIUS認證服務器即可。
在實際組網環境中,可以指定一台服務器既作為某個RADIUS方案的主認證服務器,又作為另一個RADIUS方案的從認證服務器。
在同一個方案中指定的主認證服務器和從認證服務器的VPN、主機名、IP地址、端口號不能完全相同,並且各從認證服務器的VPN、主機名、IP地址、端口號也不能完全相同。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 配置主RADIUS認證服務器。
primary authentication { host-name | ipv4-address | ipv6 ipv6-address } [ port-number | key { cipher | simple } string | test-profile profile-name | vpn-instance vpn-instance-name | weight weight-value ] *
缺省情況下,未配置主RADIUS認證服務器。
僅在RADIUS服務器負載分擔功能處於開啟狀態下,參數weight才能生效。
(4) (可選)配置從RADIUS認證服務器。
secondary authentication { host-name | ipv4-address | ipv6 ipv6-address } [ port-number | key { cipher | simple } string | test-profile profile-name | vpn-instance vpn-instance-name | weight weight-value ] *
缺省情況下,未配置從RADIUS認證服務器。
僅在RADIUS服務器負載分擔功能處於開啟狀態下,參數weight才能生效。
通過在RADIUS方案中配置RADIUS計費服務器,指定設備對用戶進行RADIUS計費時與哪些服務器進行通信。
一個RADIUS方案中最多允許配置一個主計費服務器和16個從計費服務器。缺省情況下,當主服務器不可達時,設備根據從服務器的配置順序由先到後查找狀態為active的從服務器並與之交互。開啟服務器負載分擔功能後,設備會根據各服務器的權重以及服務器承載的用戶負荷,按比例進行用戶負荷分配並選擇要交互的服務器。
建議在不需要備份的情況下,隻配置主RADIUS計費服務器即可。
在實際組網環境中,可以指定一台服務器既作為某個RADIUS方案的主計費服務器,又作為另一個RADIUS方案的從計費服務器。
在同一個方案中指定的主計費服務器和從計費服務器的VPN、主機名、IP地址、端口號不能完全相同,並且各從計費服務器的VPN、主機名、IP地址、端口號也不能完全相同。
目前RADIUS不支持對FTP/SFTP/SCP用戶進行計費。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 配置主RADIUS計費服務器。
primary accounting { host-name | ipv4-address | ipv6 ipv6-address } [ port-number | key { cipher | simple } string | vpn-instance vpn-instance-name | weight weight-value ] *
缺省情況下,未配置主RADIUS計費服務器。
僅在RADIUS服務器負載分擔功能處於開啟狀態下,參數weight才能生效。
(4) (可選)配置從RADIUS計費服務器。
secondary accounting { host-name | ipv4-address | ipv6 ipv6-address } [ port-number | key { cipher | simple } string | vpn-instance vpn-instance-name | weight weight-value ] *
缺省情況下,未配置從RADIUS計費服務器。
僅在RADIUS服務器負載分擔功能處於開啟狀態下,參數weight才能生效。
RADIUS客戶端與RADIUS服務器使用MD5算法並在共享密鑰的參與下生成驗證字,接受方根據收到報文中的驗證字來判斷對方報文的合法性。隻有在共享密鑰一致的情況下,彼此才能接收對方發來的報文並作出響應。
由於設備優先采用配置RADIUS認證/計費服務器時指定的報文共享密鑰,因此,本配置中指定的RADIUS報文共享密鑰僅在配置RADIUS認證/計費服務器時未指定相應密鑰的情況下使用。
必須保證設備上設置的共享密鑰與RADIUS服務器上的完全一致。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 配置RADIUS報文的共享密鑰。
key { accounting | authentication } { cipher | simple } string
缺省情況下,未配置RADIUS報文的共享密鑰。
該配置用於為RADIUS方案下的所有RADIUS服務器統一指定所屬的VPN。RADIUS服務器所屬的VPN也可以在配置RADIUS服務器的時候單獨指定,且被優先使用。未單獨指定所屬VPN的服務器,則屬於所在RADIUS方案所屬的VPN。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 配置RADIUS方案所屬的VPN。
vpn-instance vpn-instance-name
缺省情況下,RADIUS方案屬於公網。
RADIUS方案中各服務器的狀態(active、block)決定了設備向哪個服務器發送請求報文,以及設備在與當前服務器通信中斷的情況下,如何轉而與另外一個服務器進行交互。在實際組網環境中,可指定一個主RADIUS服務器和多個從RADIUS服務器,由從服務器作為主服務器的備份。當RADIUS服務器負載分擔功能處於開啟狀態時,設備僅根據當前各服務器承載的用戶負荷調度狀態為active的服務器發送認證或計費請求。當RADIUS服務器負載分擔功能處於關閉狀態時,設備上主從服務器的切換遵從以下原則:
· 當主服務器狀態為active時,設備首先嚐試與主服務器通信,若主服務器不可達,則按照從服務器的配置先後順序依次查找狀態為active的從服務器。
· 隻要存在狀態為active的服務器,設備就僅與狀態為active的服務器通信,即使該服務器不可達,設備也不會嚐試與狀態為block的服務器通信。
· 當主/從服務器的狀態均為block時,設備會嚐試與主服務器進行通信,若未配置主服務器,則設備嚐試與首個配置的從服務器通信。
· 如果服務器不可達,則設備將該服務器的狀態置為block,並啟動該服務器的quiet定時器。當服務器的quiet定時器超時,或者手動將服務器狀態置為active時,該服務器將恢複為active狀態。
· 在一次認證或計費過程中,如果設備在嚐試與從服務器通信時,之前已經查找過的服務器狀態由block恢複為active,則設備並不會立即恢複與該服務器的通信,而是繼續查找從服務器。如果所有已配置的服務器都不可達,則認為本次認證或計費失敗。
· 如果在認證或計費過程中刪除了當前正在使用的服務器,則設備在與該服務器通信超時後,將會立即從主服務器開始依次查找狀態為active的服務器並與之進行通信。
· 一旦服務器狀態滿足自動切換的條件,則所有RADIUS方案視圖下該服務器的狀態都會相應地變化。
· 將認證服務器的狀態由active修改為block時,若該服務器引用了RADIUS服務器探測模板,則關閉對該服務器的探測功能;反之,將認證服務器的狀態由block更改為active時,若該服務器引用了一個已存在的RADIUS服務器探測模板,則開啟對該服務器的探測功能。
· 缺省情況下,設備將配置了IP地址的各RADIUS服務器的狀態均置為active,認為所有的服務器均處於正常工作狀態,但有些情況下用戶可能需要通過以下配置手工改變RADIUS服務器的當前狀態。例如,已知某服務器故障,為避免設備認為其active而進行無意義的嚐試,可暫時將該服務器狀態手工置為block。
設置的服務器狀態不能被保存在配置文件中,可通過display radius scheme命令查看。
設備重啟後,各服務器狀態將恢複為缺省狀態active。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 設置RADIUS認證服務器的狀態。請至少選擇其中一項進行配置。
¡ 設置主RADIUS認證服務器的狀態。
state primary authentication { active | block }
¡ 設置主RADIUS計費服務器的狀態。
state primary accounting { active | block }
¡ 設置從RADIUS認證服務器的狀態。
state secondary authentication [ { host-name | ipv4-address | ipv6 ipv6-address } [ port-number | vpn-instance vpn-instance-name ] * ] { active | block }
¡ 設置從RADIUS計費服務器的狀態。
state secondary accounting [ { host-name | ipv4-address | ipv6 ipv6-address } [ port-number | vpn-instance vpn-instance-name ] * ] { active | block }
缺省情況下,RADIUS服務器的狀態為active。
在與RADIUS服務器交互的過程中,設備上可啟動的定時器包括以下幾種:
· 服務器響應超時定時器(response-timeout):如果在RADIUS請求報文發送出去一段時間後,設備還沒有得到RADIUS服務器的響應,則有必要重傳RADIUS請求報文,以保證用戶盡可能地獲得RADIUS服務,這段時間被稱為RADIUS服務器響應超時時間。
· 服務器恢複激活狀態定時器(quiet):當服務器不可達時,設備將該服務器的狀態置為block,並開啟超時定時器,在設定的一定時間間隔之後,再將該服務器的狀態恢複為active。這段時間被稱為RADIUS服務器恢複激活狀態時長。
· 實時計費間隔定時器(realtime-accounting):為了對用戶實施實時計費,有必要定期向服務器發送實時計費更新報文,通過設置實時計費的時間間隔,設備會每隔設定的時間向RADIUS服務器發送一次在線用戶的計費信息。
設置RADIUS服務器的定時器時,請遵循以下配置原則:
· 要根據配置的從服務器數量合理設置發送RADIUS報文的最大嚐試次數和RADIUS服務器響應超時時間,避免因為超時重傳時間過長,在主服務器不可達時,出現設備在嚐試與從服務器通信的過程中接入模塊(例如Telnet模塊)的客戶端連接已超時的現象。但是,有些接入模塊的客戶端的連接超時時間較短,在配置的從服務器較多的情況下,即使將報文重傳次數和RADIUS服務器響應超時時間設置的很小,也可能會出現上述客戶端超時的現象,並導致初次認證或計費失敗。這種情況下,由於設備會將不可達服務器的狀態設置為block,在下次認證或計費時設備就不會嚐試與這些狀態為block的服務器通信,一定程度上縮短了查找可達服務器的時間,因此用戶再次嚐試認證或計費就可以成功。
· 要根據配置的從服務器數量合理設置服務器恢複激活狀態的時間。如果服務器恢複激活狀態時間設置得過短,就會出現設備反複嚐試與狀態active但實際不可達的服務器通信而導致的認證或計費頻繁失敗的問題;如果服務器恢複激活狀態設置的過長,則會導致已經恢複激活狀態的服務器暫時不能為用戶提供認證或計費服務。
· 實時計費間隔的取值對設備和RADIUS服務器的性能有一定的相關性要求,取值小,會增加網絡中的數據流量,對設備和RADIUS服務器的性能要求就高;取值大,會影響計費的準確性。因此要結合網絡的實際情況合理設置計費間隔的大小,一般情況下,建議當用戶量比較大(大於等於1000)時,盡量把該間隔的值設置得大一些(大於15分鍾)。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 設置RADIUS定時器參數。請至少選擇其中一項進行配置。
¡ 設置服務器響應超時時間。
timer response-timeout seconds
缺省情況下,服務器響應超時定時器為3秒。
¡ 設置服務器恢複激活狀態的時間。
timer quiet minutes
缺省情況下,服務器恢複激活狀態前需要等待5分鍾。
¡ 設置實時計費間隔。
timer realtime-accounting interval [ second ]
缺省情況下,實時計費間隔為12分鍾。
RADIUS服務器上通過IP地址來標識接入設備,並根據收到的RADIUS報文的源IP地址是否與服務器所管理的接入設備的IP地址匹配,來決定是否處理來自該接入設備的認證或計費請求。因此,為保證RADIUS報文可被服務器正常接收並處理,接入設備上發送RADIUS報文使用的源IP地址必須與RADIUS服務器上指定的接入設備的IP地址保持一致。
設備按照以下順序選擇發送RADIUS報文實際使用的源IP地址:
(1) RADIUS方案視圖下配置的源IP地址(通過source-ip命令)。
(2) 係統視圖下的配置的源IP地址(通過radius source-ip命令)。
(3) RADIUS方案視圖下配置的NAS-IP地址(通過nas-ip命令)。
(4) 係統視圖下的配置的源NAS-IP地址(通過radius nas-ip命令)。
(5) 發送RADIUS報文的出接口的IP地址。
為避免物理接口故障時從服務器返回的報文不可達,推薦使用Loopback接口地址為發送RADIUS報文使用的源IP地址。
(1) 進入係統視圖。
system-view
(2) 設置設備發送RADIUS報文使用的源IP地址。
radius source-ip { ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ]
缺省情況下,未指定發送RADIUS報文使用的源IP地址。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 設置設備發送RADIUS報文使用的源IP地址。
source-ip { ipv4-address | ipv6 ipv6-address }
缺省情況下,未指定設備發送RADIUS報文使用的源IP地址,使用係統視圖下由命令radius source-ip指定的源IP地址。
接入用戶通常以“userid@isp-name”的格式命名,“@”後麵的部分為ISP域名,設備通過該域名決定將用戶歸於哪個ISP域。由於有些較早期的RADIUS服務器不能接受攜帶有ISP域名的用戶名,因此就需要設備首先將用戶名中攜帶的ISP域名去除後再傳送給該類RADIUS服務器。通過設置發送給RADIUS服務器的用戶名格式,就可以選擇發送RADIUS服務器的用戶名中是否要攜帶ISP域名,以及是否保持用戶輸入的原始用戶名格式。
設備通過發送計費報文,向RADIUS服務器報告在線用戶的數據流量統計值,該值的單位可配。
如果要在兩個乃至兩個以上的ISP域中引用相同的RADIUS方案,建議設置該RADIUS方案允許用戶名中攜帶ISP域名,使得RADIUS服務器端可以根據ISP域名來區分不同的用戶。
為保證RADIUS服務器計費的準確性,設備上設置的發送給RADIUS服務器的數據流或者數據包的單位應與RADIUS服務器上的流量統計單位保持一致。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 設置發送給RADIUS服務器的用戶名格式。
user-name-format { keep-original | with-domain | without-domain }
缺省情況下,發送給RADIUS服務器的用戶名攜帶ISP域名。
(4) 設置發送給RADIUS服務器的數據流或者數據包的單位。
data-flow-format { data { byte | giga-byte | kilo-byte | mega-byte } | packet { giga-packet | kilo-packet | mega-packet | one-packet } } *
缺省情況下,數據流的單位為字節,數據包的單位為包。
由於RADIUS協議采用UDP報文來承載數據,因此其通信過程是不可靠的。如果設備在應答超時定時器規定的時長內(由timer response-timeout命令配置)沒有收到RADIUS服務器的響應,則設備有必要向RADIUS服務器重傳RADIUS請求報文。如果發送RADIUS請求報文的累計次數已達到指定的最大嚐試次數而RADIUS服務器仍舊沒有響應,則設備將嚐試與其它服務器通信,如果不存在狀態為active的服務器,則認為本次認證或計費失敗。關於RADIUS服務器狀態的相關內容,請參見“1.4.8 配置RADIUS服務器的狀態”。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 設置發送RADIUS報文的最大嚐試次數。
retry retries
缺省情況下,發送RADIUS報文的最大嚐試次數為3次。
通過在設備上配置發起實時計費請求的最大嚐試次數,允許設備向RADIUS服務器發出的實時計費請求沒有得到響應的次數超過指定的最大值時切斷用戶連接。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 設置允許發起實時計費請求的最大嚐試次數。
retry realtime-accounting retries
缺省情況下,允許發起實時計費請求的最大嚐試次數為5。
DSCP攜帶在IP報文中的ToS字段,用來體現報文自身的優先等級,決定報文傳輸的優先程度。通過本命令可以指定設備發送的RADIUS報文攜帶的DSCP優先級的取值。配置DSCP優先級的取值越大,RADIUS報文的優先級越高。
(1) 進入係統視圖。
system-view
(2) 配置RADIUS報文的DSCP優先級。
radius [ ipv6 ] dscp dscp-value
缺省情況下,RADIUS報文的DSCP優先級為0。
如果RADIUS服務器處理能力有限,不能並發處理過多的RADIUS請求報文,則可以通過本配置控製設備發送給RADIUS服務器的請求報文的速率。係統中存在兩類Pending報文計數器,分別服務於RADIUS認證服務器和計費服務器,用於統計已發送給RADIUS服務器但還未收到響應的請求報文數,其最大值由本配置決定。在一個RADIUS方案下指定了認證/計費Pending報文計數器的最大值後,針對該方案下的每一個RADIUS認證/計費服務器,設備均會在向其發送首個認證/計費請求報文後啟動一個Pending報文計數器。Pending報文計數器的具體工作機製如下:
(1) 設備向RADIUS服務器每發送一個請求報文後,都會將對應的Pending報文計數器加一,且在每收到一個響應報文或者該請求響應超時後,又將該Pending報文計數器減一。
(2) 當該計數器值達到最大值時,設備停止向對應的服務器發送請求報文,並將後續準備發送的請求報文緩存起來。
(3) 等到該計數器值低於最大值後,設備再按照緩存的先後順序依次發送那些緩存的請求報文。當前可發送的請求報文數,取決於計數器值與最大值的差值。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 配置發送給RADIUS服務器且未收到響應的請求報文的最大數目。
response-pending-limit { accounting | authentication } max-number
缺省情況下,未限製發送給RADIUS服務器且未收到響應的請求報文的最大數目。
RADIUS報文中攜帶的NAS-IP-Address或NAS-IPv6-Address屬性內容,簡稱為NAS-IP地址,用於標識用戶接入的設備,在RADIUS服務器上全局唯一。
RADIUS方案視圖和係統視圖下均可以配置發送RADIUS報文攜帶的NAS-IP地址,具體生效情況如下:
· RADIUS方案視圖下配置的NAS-IP地址(通過nas-ip命令)隻對本RADIUS方案有效。
· 係統視圖下的配置的NAS-IP地址(通過radius nas-ip命令)對所有RADIUS方案有效。
· RADIUS方案視圖下的設置具有更高的優先級。
(1) 進入係統視圖。
system-view
(2) 設置RADIUS報文中攜帶的NAS-IP地址。
radius nas-ip { ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ]
缺省情況下,未設置RADIUS報文中攜帶的NAS-IP地址,設備將以發送RADIUS報文的接口的主IPv4地址或IPv6地址作為NAS-IP地址。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 設置RADIUS報文中攜帶的NAS-IP地址。
nas-ip { ipv4-address | ipv6 ipv6-address }
缺省情況下,未設置RADIUS報文中攜帶的NAS-IP地址,使用係統視圖下由命令radius nas-ip指定的NAS-IP地址。
RADIUS 15號屬性為Login-Service屬性,該屬性攜帶在Access-Accept報文中,由RADIUS服務器下發給設備,表示認證用戶的業務類型,例如屬性值0表示Telnet業務。設備檢查用戶登錄時采用的業務類型與服務器下發的Login-Service屬性所指定的業務類型是否一致,如果不一致則用戶認證失敗 。由於RFC中並未定義SSH、FTP和Terminal這三種業務的Login-Service屬性值,因此設備無法針對SSH、FTP、Terminal用戶進行業務類型一致性檢查,為了支持對這三種業務類型的檢查,H3C為Login-Service屬性定義了表1-3所示的擴展取值。
屬性值 |
描述 |
50 |
用戶的業務類型為SSH |
51 |
用戶的業務類型為FTP |
52 |
用戶的業務類型為Terminal |
可以通過配置設備對RADIUS 15號屬性的檢查方式,控製設備是否使用擴展的Login-Service屬性值對用戶進行業務類型一致性檢查。
· 嚴格檢查方式:設備使用標準屬性值和擴展屬性值對用戶業務類型進行檢查,對於SSH、FTP、Terminal用戶,當RADIUS服務器下發的Login-Service屬性值為對應的擴展取值時才能夠通過認證。
· 鬆散檢查方式:設備使用標準屬性值對用戶業務類型進行檢查,對於SSH、FTP、Terminal用戶,在RADIUS服務器下發的Login-Service屬性值為0(表示用戶業務類型為Telnet)時才能夠通過認證。
由於某些RADIUS服務器不支持自定義的屬性,無法下發擴展的Login-Service屬性,若要使用這類RADIUS服務器對SSH、FTP、Terminal用戶進行認證,建議設備上對RADIUS 15號屬性值采用鬆散檢查方式。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 配置對RADIUS Attribute 15的檢查方式。
attribute 15 check-mode { loose | strict }
缺省情況下,對RADIUS Attribute 15的檢查方式為strict方式。
RADIUS的25號屬性為class屬性,該屬性由RADIUS服務器下發給設備,但RFC中並未定義具體的用途,僅規定了設備需要將服務器下發的class屬性再原封不動地攜帶在計費請求報文中發送給服務器即可,同時RFC並未要求設備必須對該屬性進行解析。目前,某些RADIUS服務器利用class屬性來對用戶下發CAR參數,為了支持這種應用,可以通過本特性來控製設備是否將RADIUS 25號屬性解析為CAR參數,解析出的CAR參數可被用來進行基於用戶的流量監管控製。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 開啟RADIUS Attribute 25的CAR參數解析功能。
attribute 25 car
缺省情況下,RADIUS Attribute 25的CAR參數解析功能處於關閉狀態。
不同的RADIUS服務器對填充在RADIUS Attribute 31中的MAC地址有不同的格式要求,為了保證RADIUS報文的正常交互,設備發送給服務器的RADIUS Attribute 31號屬性中MAC地址的格式必須與服務器的要求保持一致。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 配置RADIUS Attribute 31中的MAC地址格式。
attribute 31 mac-format section { six | three } separator separator-character { lowercase | uppercase }
缺省情況下,RADIUS Attribute 31中的MAC地址為大寫字母格式,且被分隔符“-”分成6段,即為HH-HH-HH-HH-HH-HH的格式。
Remanent_Volume屬性為H3C自定義RADIUS屬性,攜帶在RADIUS服務器發送給接入設備的認證響應或實時計費響應報文中,用於向接入設備通知在線用戶的剩餘流量值。
設備管理員設置的Remanent_Volume屬性流量單位應與RADIUS服務器上統計用戶流量的單位保持一致,否則設備無法正確使用Remanent_Volume屬性值對用戶進行計費。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 配置RADIUS Remanent_Volume屬性的流量單位。
attribute remanent-volume unit { byte | giga-byte | kilo-byte | mega-byte }
缺省情況下,Remanent_Volume屬性的流量單位是千字節。
當設備與Vendor ID為2011的RADIUS服務器交互時,需要保證本命令設置的服務器版本號與對端服務器的實際版本號一致,否則會導致部分RADIUS屬性解析錯誤。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 配置Vendor ID為2011的RADIUS服務器版本號。
attribute vendor-id 2011 version { 1.0 | 1.1 }
缺省情況下,設備采用版本1.0與Vendor ID為2011的RADIUS服務器交互。
不同廠商的RADIUS服務器所支持的RADIUS屬性集有所不同,而且相同屬性的用途也可能不同。為了兼容不同廠商的服務器的RADIUS屬性,需要開啟RADIUS屬性解釋功能,並定義相應的RADIUS屬性轉換規則和RADIUS屬性禁用規則。
開啟RADIUS解釋功能後,設備在發送和接收RADIUS報文時,可以按照配置的屬性轉換規則以及屬性禁用規則對RADIUS報文中的屬性進行不同的處理:
· 設備發送RADIUS報文時,將報文中匹配上禁用規則的屬性從報文中刪除,將匹配上轉換規則的屬性替換為指定的屬性;
· 設備接收RADIUS報文時,不處理報文中匹配上禁用規則的屬性,將匹配上轉換規則的屬性解析為指定的屬性。
如果設備需要按照某種既定規則去處理一些無法識別的其他廠商的私有RADIUS屬性,可以定義RADIUS擴展屬性。通過自定義RADIUS擴展屬性,並結合RADIUS屬性轉換功能,可以將係統不可識別的屬性映射為已知屬性來處理。
在一個RADIUS方案視圖下,對於同一個RADIUS屬性,存在以下配置限製:
· 如果已經配置了禁用規則,則不允許再配置轉換規則;反之亦然。
· 基於方向(received、sent)的規則和基於報文類型(access-accept、access-request、accounting)的規則,不能同時配置,隻能存在一種。
· 對於基於方向的規則,可以同時存在兩條不同方向的規則;對於基於報文類型的規則,可以存在同時存在三條不同類型的規則。
(1) 進入係統視圖。
system-view
(2) (可選)定義RADIUS擴展屬性。
radius attribute extended attribute-name [ vendor vendor-id ] code attribute-code type { binary | date | integer | interface-id | ip | ipv6 | ipv6-prefix | octets | string }
(3) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(4) 開啟RADIUS屬性解釋功能。
attribute translate
缺省情況下,RADIUS屬性解釋功能處於關閉狀態。
(5) 配置RADIUS屬性轉換/禁用規則。請至少選擇其中一項進行配置。
¡ 配置RADIUS屬性轉換規則。
attribute convert src-attr-name to dest-attr-name { { access-accept | access-request | accounting } * | { received | sent } * }
缺省情況下,未配置任何RADIUS屬性轉換規則。
¡ 配置RADIUS屬性禁用規則。
attribute reject attr-name { { access-accept | access-request | accounting } * | { received | sent } * }
缺省情況下,未配置任何RADIUS屬性禁用規則。
當RADIUS方案下的所有服務器都處於block狀態後,設備收到用戶的認證/計費請求時,有以下兩種處理方式:
· Attempt方式:嚐試向當前方案中的一個認證/計費服務器發送認證/計費請求。具體的服務器選擇機製請參見“1.4.8 1. RADIUS服務器狀態切換簡介”中的相關描述。
· Skip方式:跳過當前方案中的所有服務器,直接使用為該用戶配置的下一個認證/計費方法去處理這個請求。
Attempt方法保證了設備盡量優先使用第一個認證/計費方法處理用戶請求,但同時會增加請求的響應時間。因此,對於對AAA響應時間要求比較高的場合,建議選擇Skip方式。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 設置RADIUS服務器都處於block狀態後的請求動作。
server-block-action { attempt | skip }
缺省情況下,所有RADIUS服務器都處於block狀態後的請求動作為attempt。
當用戶請求斷開連接或者設備強行切斷用戶連接的情況下,設備會向RADIUS計費服務器發起停止計費請求。為了使得設備盡量與RADIUS服務器同步切斷用戶連接,可以開啟對無響應的RADIUS停止計費報文緩存功能,將停止計費報文緩存在本機上,然後多次嚐試向服務器發起停止計費請求。如果在發起停止計費請求的嚐試次數達到指定的最大值後設備仍然沒有收到響應,則將其從緩存中刪除。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 開啟對無響應的RADIUS停止計費請求報文的緩存功能。
stop-accounting-buffer enable
缺省情況下,設備緩存未得到響應的RADIUS停止計費請求報文。
(4) (可選)設置發起RADIUS停止計費請求的最大嚐試次數。
retry stop-accounting retries
缺省情況下,發起RADIUS停止計費請求的最大嚐試次數為500。
通常,RADIUS服務器在收到用戶的計費開始報文後才會生成用戶表項,但有一些RADIUS服務器在用戶認證成功後會立即生成用戶表項。如果設備使用該類RADIUS服務器進行認證/授權/計費,則在用戶認證後,因為一些原因(比如授權失敗)並未發送計費開始報文,則在該用戶下線時設備也不會發送RADIUS計費停止報文,就會導致RADIUS服務器上該用戶表項不能被及時釋放,形成服務器和設備上用戶信息不一致的問題。為了解決這個問題,建議開啟本功能。
開啟本功能後,隻要用戶使用RADIUS服務器進行計費,且設備未向RADIUS服務器發送計費開始報文,則在用戶下線時設備會強製發送一個RADIUS計費停止報文給服務器,使得服務器收到此報文後及時釋放用戶表項。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 配置用戶下線時設備強製發送RADIUS計費停止報文。
stop-accounting-packet send-force
缺省情況下,用戶下線時設備不會強製發送計費停止報文。
缺省情況下,RADIUS服務器的調度采用主/從模式,即設備優先與主服務器交互,當主服務器不可達時,設備根據從服務器的配置順序由先到後查找狀態為active的從服務器並與之交互。
RADIUS方案中開啟了服務器負載分擔功能後,設備會根據各服務器的權重以及服務器承載的用戶負荷,按比例進行用戶負荷分配並選擇要交互的服務器。
負載分擔模式下,某台計費服務器開始對某用戶計費後,該用戶後續計費請求報文均會發往同一計費服務器。如果該計費服務器不可達,則直接返回計費失敗。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 開啟RADIUS服務器負載分擔功能。
server-load-sharing enable
缺省情況下,RADIUS服務器負載分擔功能處於關閉狀態。
開啟accounting-on功能後,整個設備會在重啟後主動向RADIUS服務器發送accounting-on報文來告知自己已經重啟,並要求RADIUS服務器停止計費且強製通過本設備上線的用戶下線。該功能可用於解決設備重啟後,重啟前的原在線用戶因被RADIUS服務器認為仍然在線而短時間內無法再次登錄的問題。若設備發送accounting-on報文後RADIUS服務器無響應,則會在按照一定的時間間隔(interval interval)嚐試重發幾次(send send-times)。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 開啟accounting-on功能。
accounting-on enable [ interval interval | send send-times ] *
缺省情況下,accounting-on功能處於關閉狀態。
H3C的iMC RADIUS服務器使用session control報文向設備發送授權信息的動態修改請求以及斷開連接請求。開啟RADIUS session control功能後,設備會打開知名UDP端口1812來監聽並接收RADIUS服務器發送的session control報文。
當設備收到session control報文時,通過session control客戶端配置驗證RADIUS session control報文的合法性。
需要注意的是,該功能僅能和H3C的iMC RADIUS服務器配合使用。缺省情況下,為節省係統資源,設備上的RADIUS session control功能處於關閉狀態。因此,在使用iMC RADIUS服務器且服務器需要對用戶授權信息進行動態修改或強製用戶下線的情況下,必須開啟此功能。
(1) 進入係統視圖。
system-view
(2) 開啟RADIUS session control功能。
radius session-control enable
缺省情況下,RADIUS session control功能處於關閉狀態。
(3) 指定session control客戶端。
radius session-control client { ip ipv4-address | ipv6 ipv6-address } [ key { cipher | simple } string | vpn-instance vpn-instance-name ] *
缺省情況下,未指定session control客戶端。
接入模塊發起的RADIUS請求包括RADIUS認證請求、RADIUS計費開始請求、RADIUS計費更新請求和RADIUS計費結束請求。缺省情況下,設備依次處理各接入模塊發起的所有類型的RADIUS請求。此時,如果有大量用戶下線後立即再次上線的情況發生,則會由於設備首先處理較早的停止計費請求,而導致處理後續的認證請求時,接入模塊的認證請求已經超時。認證請求超時後,用戶認證失敗。為了解決這個問題,建議在有大量用戶頻繁上下線的組網環境中開啟本功能,使得設備優先處理RADIUS認證請求,從而保證用戶可以正常上線。
當RADIUS服務器上以用戶名標識用戶,並且不允許相同用戶名的用戶重複認證的情況下,不建議開啟此功能,否則可能會導致用戶下線後再次認證失敗。
當設備上有用戶在線時,不建議修改此配置。
(1) 進入係統視圖。
system-view
(2) 開啟RADIUS 認證優先功能。
radius authentication-request first
缺省情況下,RADIUS 認證請求優先功能處於關閉狀態。
若RADIUS服務器分多次向在線用戶授權下發流量配額,則需要通過本特性設置用戶剩餘流量閾值,以便提前向服務器申請新的流量配額。例如,RADIUS服務器上設置某用戶可用的總流量為50M,且每次向用戶下發的流量配額為10M,若設備上配置的剩餘流量閾值為2M,則當該用戶剩餘流量為2M時,設備會向RADIUS服務器發起實時計費請求來獲取新的配額。之後,RADIUS服務器服務器再次向用戶授權下發10M的配額,此過程循環進行,直到用戶耗盡所有可用流量配額。
用戶剩餘流量閾值的單位由attribute remanent-volume unit命令決定。
(1) 進入係統視圖。
system-view
(2) 進入RADIUS方案視圖。
radius scheme radius-scheme-name
(3) 配置用戶剩餘流量閾值。
threshold remanent-volume threshold-value
缺省情況下,用戶剩餘流量閾值為0。
開啟相應的RADIUS告警功能後,RADIUS模塊會生成告警信息,用於報告該模塊的重要事件:
· 當NAS向RADIUS服務器發送計費或認證請求沒有收到響應時,會重傳請求,當重傳次數達到最大傳送次數時仍然沒有收到響應時,NAS認為該服務器不可達,並發送表示RADIUS服務器不可達的告警信息。
· 當timer quiet定時器設定的時間到達後,NAS將服務器的狀態置為激活狀態並發送表示RADIUS服務器可達的告警信息。
· 當NAS發現認證失敗次數與認證請求總數的百分比超過閾值時,會發送表示認證失敗次數超過閾值的告警信息。
生成的告警信息將發送到設備的SNMP模塊,通過設置SNMP中告警信息的發送參數,來決定告警信息輸出的相關屬性。有關告警信息的詳細介紹,請參見“網絡管理和監控配置指導”中的“SNMP”。
(1) 進入係統視圖。
system-view
(2) 開啟RADIUS告警功能。
snmp-agent trap enable radius [ accounting-server-down | accounting-server-up | authentication-error-threshold | authentication-server-down | authentication-server-up ] *
缺省情況下,所有類型的RADIUS 告警功能均處於關閉狀態。
可在任意視圖下執行以下命令,顯示所有或指定RADIUS方案的配置信息。
display radius scheme [ radius-scheme-name ]
可在任意視圖下執行以下命令,顯示RADIUS報文的統計信息。
display radius statistics
請在用戶視圖下執行以下命令,清除RADIUS協議的統計信息。
reset radius statistics
可在任意視圖下執行以下命令,顯示緩存的RADIUS停止計費請求報文的相關信息。
display stop-accounting-buffer { radius-scheme radius-scheme-name | session-id session-id | time-range start-time end-time | user-name user-name }
請在用戶視圖下執行以下命令,清除緩存的RADIUS停止計費請求報文。
reset stop-accounting-buffer { radius-scheme radius-scheme-name | session-id session-id | time-range start-time end-time | user-name user-name }
HWTACACS配置任務如下:
(1) 創建HWTACACS方案
(2) 配置HWTACACS認證服務器
(3) 配置HWTACACS授權服務器
(4) 配置HWTACACS計費服務器
若配置HWTACACS服務器時未指定共享密鑰,則可以通過本任務統一指定對所有認證/計費HWTACACS服務器生效的共享密鑰。
若配置HWTACACS服務器時未指定所屬的VPN,則可以通過本任務統一指定所有HWTACACS服務器所屬的VPN。
(7) (可選)配置HWTACACS服務器的定時器
(8) (可選)配置HWTACACS報文交互參數
¡ 配置發送給HWTACACS服務器的用戶名格式和數據統計單位
(9) (可選)配置HWTACACS計費報文緩存功能
係統最多支持配置16個HWTACACS方案。一個HWTACACS方案可以同時被多個ISP域引用。
(1) 進入係統視圖。
system-view
(2) 創建HWTACACS方案,並進入HWTACACS方案視圖。
hwtacacs scheme hwtacacs-scheme-name
通過在HWTACACS方案中配置HWTACACS認證服務器,指定設備對用戶進行HWTACACS認證時與哪個服務器進行通信。
一個HWTACACS方案中最多允許配置一個主認證服務器和16個從認證服務器。當主服務器不可達時,設備根據從服務器的配置順序由先到後查找狀態為active的從服務器並與之交互。
建議在不需要備份的情況下,隻配置主HWTACACS認證服務器即可。
在實際組網環境中,可以指定一台服務器既作為某個HWTACACS方案的主認證服務器,又作為另一個HWTACACS方案的從認證服務器。
在同一個方案中指定的主認證服務器和從認證服務器的VPN、主機名、IP地址、端口號不能完全相同,並且各從認證服務器的VPN、主機名、IP地址、端口號也不能完全相同。
(1) 進入係統視圖。
system-view
(2) 進入HWTACACS方案視圖。
hwtacacs scheme hwtacacs-scheme-name
(3) 配置主HWTACACS認證服務器。
primary authentication { host-name | ipv4-address | ipv6 ipv6-address } [ port-number | key { cipher | simple } string | single-connection | vpn-instance vpn-instance-name ] *
缺省情況下,未配置主HWTACACS認證服務器。
(4) (可選)配置從HWTACACS認證服務器。
secondary authentication { host-name | ipv4-address | ipv6 ipv6-address } [ port-number | key { cipher | simple } string | single-connection | vpn-instance vpn-instance-name ] *
缺省情況下,未配置從HWTACACS認證服務器。
通過在HWTACACS方案中配置HWTACACS授權服務器,指定設備對用戶進行HWTACACS授權時與哪個服務器進行通信。
一個HWTACACS方案中最多允許配置一個主授權服務器和16個從授權服務器。當主服務器不可達時,設備根據從服務器的配置順序由先到後查找狀態為active的從服務器並與之交互。
建議在不需要備份的情況下,隻配置主HWTACACS授權服務器即可。
在實際組網環境中,可以指定一台服務器既作為某個HWTACACS方案的主授權服務器,又作為另一個HWTACACS方案的從授權服務器。
在同一個方案中指定的主授權服務器和從授權服務器的VPN、主機名、IP地址、端口號不能完全相同,並且各從授權服務器的VPN、主機名、IP地址、端口號也不能完全相同。
(1) 進入係統視圖。
system-view
(2) 進入HWTACACS方案視圖。
hwtacacs scheme hwtacacs-scheme-name
(3) 配置主HWTACACS授權服務器。
primary authorization { host-name | ipv4-address | ipv6 ipv6-address } [ port-number | key { cipher | simple } string | single-connection | vpn-instance vpn-instance-name ] *
缺省情況下,未配置主HWTACACS授權服務器。
(4) (可選)配置從HWTACACS授權服務器。
secondary authorization { host-name | ipv4-address | ipv6 ipv6-address } [ port-number | key { cipher | simple } string | single-connection | vpn-instance vpn-instance-name ] *
缺省情況下,未配置從HWTACACS授權服務器。
通過在HWTACACS方案中配置HWTACACS計費服務器,指定設備對用戶進行HWTACACS計費時與哪個服務器進行通信。
一個HWTACACS方案中最多允許配置一個主計費服務器和16個從計費服務器。當主服務器不可達時,設備根據從服務器的配置順序由先到後查找狀態為active的從服務器並與之交互。
建議在不需要備份的情況下,隻配置主HWTACACS計費服務器即可。
在實際組網環境中,可以指定一台服務器既作為某個HWTACACS方案的主計費服務器,又作為另一個HWTACACS方案的從計費服務器。
在同一個方案中指定的主計費服務器和從計費服務器的VPN、主機名、IP地址、端口號不能完全相同,並且各從計費服務器的VPN、主機名、IP地址、端口號也不能完全相同。
目前HWTACACS不支持對FTP/SFTP/SCP用戶進行計費。
(1) 進入係統視圖。
system-view
(2) 進入HWTACACS方案視圖。
hwtacacs scheme hwtacacs-scheme-name
(3) 配置主HWTACACS計費服務器。
primary accounting { host-name | ipv4-address | ipv6 ipv6-address } [ port-number | key { cipher | simple } string | single-connection | vpn-instance vpn-instance-name ] *
缺省情況下,未配置主HWTACACS計費服務器。
(4) (可選)配置從HWTACACS計費服務器。
secondary accounting { host-name | ipv4-address | ipv6 ipv6-address } [ port-number | key { cipher | simple } string | single-connection | vpn-instance vpn-instance-name ] *
缺省情況下,未配置從HWTACACS計費服務器。
HWTACACS客戶端與HWTACACS服務器使用MD5算法並在共享密鑰的參與下加密HWTACACS報文。隻有在密鑰一致的情況下,彼此才能接收對方發來的報文並作出響應。
由於設備優先采用配置HWTACACS認證/授權/計費服務器時指定的報文共享密鑰,因此,本配置中指定的HWTACACS報文共享密鑰僅在配置HWTACACS認證/授權/計費服務器時未指定相應密鑰的情況下使用。
必須保證設備上設置的共享密鑰與HWTACACS服務器上的完全一致。
(1) 進入係統視圖。
system-view
(2) 進入HWTACACS方案視圖。
hwtacacs scheme hwtacacs-scheme-name
(3) 配置HWTACACS認證、授權、計費報文的共享密鑰。
key { accounting | authentication | authorization } { cipher | simple } string
缺省情況下,未設置HWTACACS報文的共享密鑰。
該配置用於指定HWTACACS方案所屬的VPN,即為HWTACACS方案下的所有HWTACACS服務器統一指定所屬的VPN。HWTACACS服務器所屬的VPN也可以在配置HWTACACS服務器的時候單獨指定,且被優先使用。未單獨指定所屬VPN的服務器,則屬於所在HWTACACS方案所屬的VPN。
(1) 進入係統視圖。
system-view
(2) 進入HWTACACS方案視圖。
hwtacacs scheme hwtacacs-scheme-name
(3) 配置HWTACACS方案所屬的VPN。
vpn-instance vpn-instance-name
缺省情況下,HWTACACS方案屬於公網。
在與HWTACACS服務器交互的過程中,設備上可啟動的定時器包括以下幾種:
· 服務器響應超時定時器(response-timeout):如果在HWTACACS請求報文傳送出去一段時間後,設備還沒有得到HWTACACS服務器的響應,則會將該服務器的狀態置為block,並向下一個HWTACACS服務器發起請求,以保證用戶盡可能得到HWTACACS服務,這段時間被稱為HWTACACS服務器響應超時時長。
· 實時計費間隔定時器(realtime-accounting):為了對用戶實施實時計費,有必要定期向服務器發送用戶的實時計費信息,通過設置實時計費的時間間隔,設備會每隔設定的時間向HWTACACS服務器發送一次在線用戶的計費信息。
· 服務器恢複激活狀態定時器(quiet):當服務器不可達時,設備將該服務器的狀態置為block,並開啟超時定時器,在設定的一定時間間隔之後,再將該服務器的狀態恢複為active。這段時間被稱為服務器恢複激活狀態時長。
HWTACACS方案中各服務器的狀態(active、block)決定了設備向哪個服務器發送請求報文,以及設備在與當前服務器通信中斷的情況下,如何轉而與另外一個服務器進行交互。在實際組網環境中,可指定一個主HWTACACS服務器和多個從HWTACACS服務器,由從服務器作為主服務器的備份。通常情況下,設備上主從服務器的切換遵從以下原則:
· 當主服務器狀態為active時,設備首先嚐試與主服務器通信,若主服務器不可達,則按照從服務器的配置先後順序依次查找狀態為active的從服務器進行認證或者計費。
· 隻要存在狀態為active的服務器,設備就僅與狀態為active的服務器通信,即使該服務器不可達,設備也不會嚐試與狀態為block的服務器通信。
· 當主/從服務器的狀態均為block時,設備嚐試與主服務器進行通信,若未配置主服務器,則設備嚐試與首個配置的從服務器通信。
· 如果服務器不可達,則設備將該服務器的狀態置為block,同時啟動該服務器的quiet定時器。當服務器的quiet定時器超時,該服務器將恢複為active狀態。
· 在一次認證或計費過程中,如果設備在嚐試與從服務器通信時,之前已經查找過的服務器狀態由block恢複為active,則設備並不會立即恢複與該服務器的通信,而是繼續查找從服務器。如果所有已配置的服務器都不可達,則認為本次認證或計費失敗。
· 如果在認證或計費過程中刪除了當前正在使用的服務器,則設備在與該服務器通信超時後,將會立即從主服務器開始依次查找狀態為active的服務器並與之進行通信。
· 一旦服務器狀態滿足自動切換的條件,則所有HWTACACS方案視圖下該服務器的狀態都會相應地變化。
實時計費間隔的取值對設備和HWTACACS服務器的性能有一定的相關性要求,取值越小,對設備和HWTACACS服務器的性能要求越高。建議當用戶量比較大(大於等於1000)時,盡量把該間隔的值設置得大一些(大於15分鍾)。
(1) 進入係統視圖。
system-view
(2) 進入HWTACACS方案視圖。
hwtacacs scheme hwtacacs-scheme-name
(3) 設置HWTACACS定時器參數。請至少選擇其中一項進行配置。
¡ 設置HWTACACS服務器響應超時時間。
timer response-timeout seconds
缺省情況下,服務器響應超時時間為5秒。
¡ 設置實時計費的時間間隔。
timer realtime-accounting minutes
缺省情況下,實時計費間隔為12分鍾。
¡ 設置服務器恢複激活狀態的時間。
timer quiet minutes
缺省情況下,服務器恢複激活狀態前需要等待5分鍾。
HWTACACS服務器上通過IP地址來標識接入設備,並根據收到的HWTACACS報文的源IP地址是否與服務器所管理的接入設備的IP地址匹配,來決定是否處理來自該接入設備的認證、授權或計費請求。若HWTACACS服務器收到的HWTACACS認證或計費報文的源地址在所管理的接入設備IP地址範圍內,則會進行後續的認證或計費處理,否則直接丟棄該報文。
設備發送HWTACACS報文時,根據以下順序查找使用的源IP地址:
(1) 當前所使用的HWTACACS方案中配置的發送HWTACACS報文使用的源IP地址。
(2) 根據當前使用的服務器所屬的VPN查找係統視圖下通過hwtacacs nas-ip命令配置的私網源地址,對於公網服務器則直接查找該命令配置的公網源地址。
(3) 通過路由查找到的發送HWTACACS報文的出接口地址。
發送給HWTACACS報文使用的源IP地址在係統視圖和HWTACACS方案視圖下均可以進行配置,係統視圖下的配置將對所有HWTACACS方案生效,HWTACACS方案視圖下的配置僅對本方案有效,並且具有高於前者的優先級。
為保證認證、授權和計費報文可被服務器正常接收並處理,接入設備上發送HWTACACS報文使用的源IP地址必須與HWTACACS服務器上指定的接入設備的IP地址保持一致。
通常,該地址為接入設備上與HWTACACS服務器路由可達的接口IP地址,為避免物理接口故障時從服務器返回的報文不可達,推薦使用Loopback接口地址為發送HWTACACS報文使用的源IP地址。但在一些特殊的組網環境中,例如在接入設備使用VRRP進行雙機熱備應用時,可以將該地址指定為VRRP上行鏈路所在備份組的虛擬IP地址。
(1) 進入係統視圖。
system-view
(2) 設置設備發送HWTACACS報文使用的源IP地址。
hwtacacs nas-ip { ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ]
缺省情況下,未指定發送HWTACACS報文使用的源IP地址,設備將使用到達HWTACACS服務器的路由出接口的主IPv4地址或IPv6地址作為發送RADIUS報文的源IP地址。
(1) 進入係統視圖。
system-view
(2) 進入HWTACACS方案視圖。
hwtacacs scheme hwtacacs-scheme-name
(3) 設置設備發送HWTACACS報文使用的源IP地址。
nas-ip { ipv4-address | ipv6 ipv6-address }
缺省情況下,未指定設備發送HWTACACS報文使用的源IP地址,使用係統視圖下由命令hwtacacs nas-ip指定的源IP地址。
接入用戶通常以“userid@isp-name”的格式命名,“@”後麵的部分為ISP域名,設備通過該域名決定將用戶歸於哪個ISP域的。由於有些HWTACACS服務器不能接受攜帶有ISP域名的用戶名,因此就需要設備首先將用戶名中攜帶的ISP域名去除後再傳送給該類HWTACACS服務器。通過設置發送給HWTACACS服務器的用戶名格式,就可以選擇發送HWTACACS服務器的用戶名中是否要攜帶ISP域名。
設備通過發送計費報文,向HWTACACS服務器報告在線用戶的數據流量統計值,該值的單位可配。
如果要在兩個乃至兩個以上的ISP域中引用相同的HWTACACS方案,建議設置該HWTACACS方案允許用戶名中攜帶ISP域名,使得HWTACACS服務器端可以根據ISP域名來區分不同的用戶。
為保證HWTACACS服務器計費的準確性,設備上設置的發送給HWTACACS服務器的數據流或者數據包的單位應與HWTACACS服務器上的流量統計單位保持一致。
(1) 進入係統視圖。
system-view
(2) 進入HWTACACS方案視圖。
hwtacacs scheme hwtacacs-scheme-name
(3) 設置發送給HWTACACS服務器的用戶名格式。
user-name-format { keep-original | with-domain | without-domain }
缺省情況下,發送給HWTACACS服務器的用戶名攜帶ISP域名。
(4) 設置發送給HWTACACS服務器的數據流或者數據包的單位。
data-flow-format { data { byte | giga-byte | kilo-byte | mega-byte } | packet { giga-packet | kilo-packet | mega-packet | one-packet } } *
當用戶請求斷開連接或者設備強行切斷用戶連接的情況下,設備會向HWTACACS計費服務器發送停止計費請求報文,通過開啟對無響應的HWTACACS停止計費請求報文的緩存功能,將其緩存在本機上,然後發送直到HWTACACS計費服務器產生響應,或者在發起停止計費請求報文的嚐試次數達到指定的最大值後將其丟棄。
(1) 進入係統視圖。
system-view
(2) 進入HWTACACS方案視圖。
hwtacacs scheme hwtacacs-scheme-name
(3) 開啟對無響應的HWTACACS停止計費請求報文的緩存功能。
stop-accounting-buffer enable
缺省情況下,設備緩存未得到響應的HWTACACS計費請求報文。
(4) (可選)設置發起HWTACACS停止計費請求的最大嚐試次數。
retry stop-accounting retries
缺省情況下,發起HWTACACS停止計費請求的最大嚐試次數為100。
可在任意視圖下執行以下命令,查看所有或指定HWTACACS方案的配置信息。
display hwtacacs scheme [ hwtacacs-scheme-name ]
可在任意視圖下執行以下命令,查看HWTACACS協議的統計信息。
display hwtacacs scheme hwtacacs-scheme-name statistics
請在用戶視圖下執行以下命令,清除HWTACACS協議的統計信息。
reset hwtacacs statistics { accounting | all | authentication | authorization }
可在任意視圖下執行以下命令,顯示緩存的HWTACACS停止計費請求報文的相關信息。
display stop-accounting-buffer hwtacacs-scheme hwtacacs-scheme-name
請在用戶視圖下執行以下命令,清除緩存的HWTACACS停止計費請求報文。
reset stop-accounting-buffer hwtacacs-scheme hwtacacs-scheme-name
LDAP配置任務如下:
(1) 配置LDAP服務器
a. 創建LDAP服務器
c. (可選)配置LDAP版本號
d. (可選)配置LDAP服務器的連接超時時間
f. 配置LDAP用戶屬性參數
(2) (可選)配置LDAP屬性映射表
(3) 創建LDAP方案
(4) 指定LDAP認證服務器
(5) (可選)指定LDAP授權服務器
(6) (可選)引用LDAP屬性映射表
(1) 進入係統視圖。
system-view
(2) 創建LDAP服務器,並進入LDAP服務器視圖。
ldap server server-name
LDAP服務器視圖下僅能同時存在一個IPv4地址類型的LDAP服務器或一個IPv6地址類型的LDAP服務器。多次配置,後配置的生效。
(1) 進入係統視圖。
system-view
(2) 進入LDAP服務器視圖。
ldap server server-name
(3) 配置LDAP服務器IP地址。
{ ip ipv4-address | ipv6 ipv6-address } [ port port-number ] [ vpn-instance vpn-instance-name ]
缺省情況下,未配置LDAP服務器IP地址。
目前設備僅支持LDAPv2和LDAPv3兩個協議版本。
Microsoft的LDAP服務器隻支持LDAPv3版本。
設備上配置的LDAP版本號需要與服務器支持的版本號保持一致。
(1) 進入係統視圖。
system-view
(2) 進入LDAP服務器視圖。
ldap server server-name
(3) 配置LDAP版本號。
protocol-version { v2 | v3 }
缺省情況下,LDAP版本號為LDAPv3。
設備向LDAP服務器發送綁定請求、查詢請求,如果經過指定的時間後未收到LDAP服務器的回應,則認為本次認證、授權請求超時。若使用的ISP域中配置了備份的認證、授權方案,則設備會繼續嚐試進行其他方式的認證、授權處理,否則本次認證、授權失敗。
(1) 進入係統視圖。
system-view
(2) 進入LDAP服務器視圖。
ldap server server-name
(3) 配置LDAP服務器的連接超時時間。
server-timeout time-interval
缺省情況下,LDAP服務器的連接超時時間為10秒。
配置LDAP認證過程中綁定服務器所使用的用戶DN和用戶密碼,該用戶具有管理員權限。
(1) 進入係統視圖。
system-view
(2) 進入LDAP服務器視圖。
ldap server server-name
(3) 配置具有管理員權限的用戶DN。
login-dn dn-string
缺省情況下,未配置具有管理員權限的用戶DN。
配置的管理員權限的用戶DN必須與LDAP服務器上管理員的DN一致。
(4) 配置具有管理員權限的用戶密碼。
login-password { ciper | simple } string
缺省情況下,未配置具有管理權限的用戶密碼。
要對用戶進行身份認證,就需要以用戶DN及密碼為參數與LDAP服務器進行綁定,因此需要首先從LDAP服務器獲取用戶DN。LDAP提供了一套DN查詢機製,在與LDAP服務器建立連接的基礎上,按照一定的查詢策略向服務器發送查詢請求。該查詢策略由設備上指定的LDAP用戶屬性定義,具體包括以下幾項:
· 用戶DN查詢的起始節點(search-base-dn)
· 用戶DN查詢的範圍(search-scope)
· 用戶名稱屬性(user-name-attribute)
· 用戶名稱格式(user-name-format)
· 用戶對象類型(user-object-class)
LDAP服務器上的目錄結構可能具有很深的層次,如果從根目錄進行用戶DN的查找,耗費的時間將會較長,因此必須配置用戶查找的起始點DN,以提高查找效率。
(1) 進入係統視圖。
system-view
(2) 進入LDAP服務器視圖。
ldap server server-name
(3) 配置用戶查詢的起始DN。
search-base-dn base-dn
缺省情況下,未指定用戶查詢的起始DN。
(4) (可選)配置用戶查詢的範圍。
search-scope { all-level | single-level }
缺省情況下,用戶查詢的範圍為all-level。
(5) (可選)配置用戶查詢的用戶名屬性。
user-parameters user-name-attribute { name-attribute | cn | uid }
缺省情況下,用戶查詢的用戶名屬性為cn。
(6) (可選)配置用戶查詢的用戶名格式。
user-parameters user-name-format { with-domain | without-domain }
缺省情況下,用戶查詢的用戶名格式為without-domain。
(7) (可選)配置用戶查詢的自定義用戶對象類型。
user-parameters user-object-class object-class-name
缺省情況下,未指定自定義用戶對象類型,根據使用的LDAP服務器的類型使用各服務器缺省的用戶對象類型。
在用戶的LDAP授權過程中,設備會通過查詢操作得到用戶的授權信息,該授權信息由LDAP服務器通過若幹LDAP屬性下發給設備。若設備從LDAP服務器查詢得到某LDAP屬性,則該屬性隻有在被設備的AAA模塊解析之後才能實際生效。如果某LDAP服務器下發給用戶的屬性不能被AAA模塊解析,則該屬性將被忽略。因此,需要通過配置LDAP屬性映射表來指定要獲取哪些LDAP屬性,以及LDAP服務器下發的這些屬性將被AAA模塊解析為什麼類型的AAA屬性,具體映射為哪種類型的AAA屬性由實際應用需求決定。
每一個LDAP屬性映射表項定義了一個LDAP屬性與一個AAA屬性的對應關係。將一個LDAP屬性表在指定的LDAP方案視圖中引用後,該映射關係將在LDAP授權過程中生效。
(1) 進入係統視圖。
system-view
(2) 創建LDAP的屬性映射表,並進入屬性映射表視圖。
ldap attribute-map map-name
(3) 配置LDAP屬性映射表項。
map ldap-attribute ldap-attribute-name [ prefix prefix-value delimiter delimiter-value ] aaa-attribute user-group
係統最多支持配置16個LDAP方案。一個LDAP方案可以同時被多個ISP域引用。
(1) 進入係統視圖。
system-view
(2) 創建LDAP方案,並進入LDAP方案視圖。
ldap scheme ldap-scheme-name
(1) 進入係統視圖。
system-view
(2) 進入LDAP方案視圖。
ldap scheme ldap-scheme-name
(3) 指定LDAP認證服務器。
authentication-server server-name
缺省情況下,未指定LDAP認證服務器。
(1) 進入係統視圖。
system-view
(2) 進入LDAP方案視圖。
ldap scheme ldap-scheme-name
(3) 指定LDAP授權服務器。
authorization-server server-name
缺省情況下,未指定LDAP授權服務器。
在使用LDAP授權方案的情況下,可以通過在LDAP方案中引用LDAP屬性映射表,將LDAP授權服務器下發給用戶的LDAP屬性映射為AAA模塊可以解析的某類屬性。
一個LDAP方案視圖中隻能引用一個LDAP屬性映射表,後配置的生效。
(1) 進入係統視圖。
system-view
(2) 進入LDAP方案視圖。
ldap scheme ldap-scheme-name
(3) 引用LDAP屬性映射表。
attribute-map map-name
缺省情況下,未引用任何LDAP屬性映射表。
可在任意視圖下執行以下命令,查看所有或指定LDAP方案的配置信息。
display ldap scheme [ ldap-scheme-name ]
在多ISP的應用環境中,不同ISP域的用戶有可能接入同一台設備。而且各ISP用戶的用戶屬性(例如用戶名及密碼構成、服務類型/權限等)有可能不相同,因此有必要通過設置ISP域把它們區分開,並為每個ISP域單獨配置一套認證、授權、計費方法及ISP域的相關屬性。
對於設備來說,每個接入用戶都屬於一個ISP域。係統中最多可以配置1024個ISP域,包括一個係統缺省存在的名稱為system的ISP域。如果某個用戶在登錄時沒有提供ISP域名,係統將把它歸於缺省的ISP域。係統缺省的ISP域可以手工修改為一個指定的ISP域;如果用戶所屬的ISP域下未應用任何認證、授權、計費方法,係統將使用缺省的認證、授權、計費方法,分別為本地認證、本地授權和本地計費。
用戶認證時,設備將按照如下先後順序為其選擇認證域:接入模塊指定的認證域-->用戶名中指定的ISP域-->係統缺省的ISP域。其中,接入模塊是否支持指定認證域由各接入模塊決定。如果根據以上原則決定的認證域在設備上不存在,但設備上為未知域名的用戶指定了ISP域,則最終使用該指定的ISP域認證,否則,用戶將無法認證。
一個ISP域被配置為缺省的ISP域後,將不能夠被刪除,必須首先使用命令undo domain default enable將其修改為非缺省ISP域,然後才可以被刪除。
係統缺省存在的system域隻能被修改,不能被刪除。
如果一個ISP域中使用RADIUS方案對用戶進行認證、授權或計費,請合理規劃域名的長度,並保證設備發送給RADIUS服務器的整體用戶名長度不超過253字符,否會導致認證、授權或計費失敗。
(1) 進入係統視圖。
system-view
(2) 創建ISP域並進入其視圖。
domain name isp-name
缺省情況下,存在一個的ISP域,名稱為system。
(1) 進入係統視圖。
system-view
(2) 配置缺省的ISP域。
domain default enable isp-name
缺省情況下,係統缺省的ISP域為system。
(1) 進入係統視圖。
system-view
(2) 配置未知域名的用戶的ISP域。
domain if-unknown isp-name
缺省情況下,沒有為未知域名的用戶指定ISP域。
可以通過配置ISP域的狀態來控製該域是否可以為用戶提供網絡服務:
· 活動狀態:係統允許該域下的用戶請求網絡服務。
· 阻塞狀態:係統不允許該域下的用戶請求網絡服務,用戶不能通過該域進行AAA處理。若需要在指定的時間段內拒絕該域中的用戶請求網絡服務,則可以配置在指定的時間段內,該域自動進入阻塞狀態。
(1) 進入係統視圖。
system-view
(2) 進入ISP域視圖。
domain name isp-name
(3) 設置ISP域的狀態。
state { active | block [ time-range ] }
缺省情況下,當前ISP域處於活動狀態,即允許任何屬於該域的用戶請求網絡服務。
(4) 設置ISP域處於阻塞狀態的時間段。
state block time-range name time-range-name
缺省情況下,未配置ISP域處於阻塞的時間段。
設備上傳到服務器的用戶在線時間中保留閑置切斷時間:當用戶異常下線時,上傳到服務器上的用戶在線時間中包含了一定的閑置切斷時間,此時服務器上記錄的用戶時長將大於用戶實際在線時長。該閑置切斷時間在用戶認證成功後由AAA授權。
(1) 進入係統視圖。
system-view
(2) 進入ISP域視圖。
domain name isp-name
(3) 設置設備上傳到服務器的用戶在線時間中保留閑置切斷時間。
session-time include-idle-time
缺省情況下,設備上傳到服務器的用戶在線時間中扣除閑置切斷時間。
配置ISP域的AAA認證方法時,需要注意的是:
· 為了提高可靠性,可以指定多個備選的認證方法,在當前的認證方法無效時設備將按照配置順序嚐試使用備選的方法完成認證。例如,radius-scheme radius-scheme-name local none表示,先進行RADIUS認證,若RADIUS認證無效則進行本地認證,若本地認證也無效則不進行認證。遠程認證無效是指,指定的認證方案不存在、認證報文發送失敗或者服務器無響應。本地認證無效是指沒有找到對應的本地用戶配置。
· 當選擇了RADIUS協議的認證方案以及非RADIUS協議的授權方案時,AAA隻接受RADIUS服務器的認證結果,RADIUS授權的信息雖然在認證成功回應的報文中攜帶,但在認證回應的處理流程中不會被處理。
· 當使用HWTACACS方案進行用戶角色切換認證時,係統使用用戶輸入的用戶角色切換用戶名進行角色切換認證。
· 當使用RADIUS方案進行用戶角色切換認證時,係統使用RADIUS服務器上配置的“$enabn$”形式的用戶名進行用戶角色切換認證。
¡ 當用戶要切換到level-n的用戶角色時,要求RADIUS服務器上存在用戶名為“$enabn$”的用戶,其中n為用戶希望切換到的用戶角色level-n中的n。
¡ 當用戶要切換到非level-n的用戶角色時,要求RADIUS服務器上存在用戶名為“$enab0$”的用戶,且該用戶配置了取值為allowed-roles=”role”的自定義屬性(其中role為要切換的目的用戶角色名稱)。
· 當采用本地認證方案為主認證方案,且配置了備選認證方案時,僅當AAA本地認證處理過程異常或者沒有本地用戶配置的情況下,用戶本地認證失敗後才會嚐試使用備選方案進行認證,其它情況下不會轉換認證方案,直接認為認證失敗。
配置前的準備工作:
· 確定要配置的接入方式或者服務類型。AAA可以對不同的接入方式和服務類型配置不同的認證方案。
· 確定是否為所有的接入方式或服務類型配置缺省的認證方法,缺省的認證方法對所有接入用戶都起作用,但其優先級低於為具體接入方式或服務類型配置的認證方法。
(1) 進入係統視圖。
system-view
(2) 進入ISP域視圖。
domain name isp-name
(3) (可選)為當前ISP域配置缺省的認證方法。
authentication default { hwtacacs-scheme hwtacacs-scheme-name [ radius-scheme radius-scheme-name ] [ local ] [ none ] | ldap-scheme ldap-scheme-name [ local ] [ none ] | local [ hwtacacs-scheme hwtacacs-scheme-name | radius-scheme radius-scheme-name ] * [ none ] | local [ ldap-scheme ldap-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ hwtacacs-scheme hwtacacs-scheme-name ] [ local ] [ none ] }
缺省情況下,當前ISP域的缺省認證方法為local。
(4) 為指定類型的用戶或服務配置認證方法。
¡ 為login用戶配置認證方法。
authentication login { hwtacacs-scheme hwtacacs-scheme-name [ radius-scheme radius-scheme-name ] [ local ] [ none ] | ldap-scheme ldap-scheme-name [ local ] [ none ] | local [ hwtacacs-scheme hwtacacs-scheme-name | radius-scheme radius-scheme-name ] * [ none ] | local [ ldap-scheme ldap-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ hwtacacs-scheme hwtacacs-scheme-name ] [ local ] [ none ] }
缺省情況下,login用戶采用缺省的認證方法。
¡ 配置用戶角色切換認證方法。
authentication super { hwtacacs-scheme hwtacacs-scheme-name | radius-scheme radius-scheme-name } *
缺省情況下,用戶角色切換認證采用缺省的認證方法。
配置ISP域的AAA授權方法時,需要注意的是:
· 為了提高可靠性,可以指定多個備選的授權方法,在當前的授權方法無效時設備將按照配置順序嚐試使用備選的方法完成授權。例如,radius-scheme radius-scheme-name local none表示,先進行RADIUS授權,若RADIUS授權無效則進行本地授權,若本地授權也無效則不進行授權。遠程授權無效是指,指定的授權方案不存在、授權報文發送失敗或者服務器無響應。本地授權無效是指沒有找到對應的本地用戶配置。
· 目前設備暫不支持使用LDAP進行授權。
· 在一個ISP域中,隻有RADIUS授權方法和RADIUS認證方法引用了相同的RADIUS方案,RADIUS授權才能生效。若RADIUS授權未生效或者RADIUS授權失敗,則用戶認證會失敗。
· 當采用本地授權方案為主授權方案,且配置了備選授權方案時,僅當AAA本地授權處理過程異常或者沒有本地用戶配置的情況下,用戶本地授權失敗後才會嚐試使用備選方案進行授權,其它情況下不會轉換授權方案,直接認為授權失敗。
配置前的準備工作:
· 確定要配置的接入方式或者服務類型,AAA可以按照不同的接入方式和服務類型進行AAA授權的配置。
· 確定是否為所有的接入方式或服務類型配置缺省的授權方法,缺省的授權方法對所有接入用戶都起作用,但其優先級低於為具體接入方式或服務類型配置的授權方法。
(1) 進入係統視圖。
system-view
(2) 進入ISP域視圖。
domain name isp-name
(3) (可選)為當前ISP域配置缺省的授權方法。
authorization default { hwtacacs-scheme hwtacacs-scheme-name [ radius-scheme radius-scheme-name ] [ local ] [ none ] | local [ hwtacacs-scheme hwtacacs-scheme-name | radius-scheme radius-scheme-name ] * [ none ] | none | radius-scheme radius-scheme-name [ hwtacacs-scheme hwtacacs-scheme-name ] [ local ] [ none ] }
缺省情況下,當前ISP域的缺省授權方法為local。
(4) 為指定類型的用戶或服務配置授權方法。
¡ 配置命令行授權方法。
authorization command { hwtacacs-scheme hwtacacs-scheme-name [ local ] [ none ] | local [ none ] | none }
缺省情況下,命令行授權采用缺省的授權方法。
¡ 為login用戶配置授權方法。
authorization login { hwtacacs-scheme hwtacacs-scheme-name [ radius-scheme radius-scheme-name ] [ local ] [ none ] | local [ hwtacacs-scheme hwtacacs-scheme-name | radius-scheme radius-scheme-name ] * [ none ] | none | radius-scheme radius-scheme-name [ hwtacacs-scheme hwtacacs-scheme-name ] [ local ] [ none ] }
缺省情況下,login用戶采用缺省的授權方法。
配置ISP域的AAA計費方法時,需要注意的是:
· 為了提高可靠性,可以指定多個備選的計費方法,在當前的計費方法無效時設備將按照配置順序嚐試使用備選的方法完成計費。例如,radius-scheme radius-scheme-name local none表示,先進行RADIUS計費,若RADIUS計費無效則進行本地計費,若本地計費也無效則不進行計費。遠程計費無效是指,指定的計費方案不存在、計費報文發送失敗或者服務器無響應。本地計費無效是指沒有找到對應的本地用戶配置。
· 不支持對FTP類型login用戶進行計費。
· 本地計費僅用於配合本地用戶視圖下的access-limit命令來實現對本地用戶連接數的限製功能。
· 當采用本地計費方案為主計費方案,且配置了備選計費方案時,僅當AAA本地計費處理過程異常或者沒有本地用戶配置的情況下,用戶本地計費失敗後才會嚐試使用備選方案進行計費,其它情況下不會轉換計費方案,直接認為計費失敗。
配置前的準備工作:
· 確定要配置的接入方式或者服務類型,AAA可以按照不同的接入方式和服務類型進行AAA計費的配置。
· 確定是否為所有的接入方式或服務類型配置缺省的計費方法,缺省的計費方法對所有接入用戶都起作用,但其優先級低於為具體接入方式或服務類型配置的計費方法。
(1) 進入係統視圖。
system-view
(2) 進入ISP域視圖。
domain name isp-name
(3) (可選)為當前ISP域配置缺省的計費方法。
accounting default { hwtacacs-scheme hwtacacs-scheme-name [ radius-scheme radius-scheme-name ] [ local ] [ none ] | local [ hwtacacs-scheme hwtacacs-scheme-name | radius-scheme radius-scheme-name ] * [ none ] | none | radius-scheme radius-scheme-name [ hwtacacs-scheme hwtacacs-scheme-name ] [ local ] [ none ] }
缺省情況下,當前ISP域的缺省計費方法為local。
(4) 為指定類型的用戶配置計費方法。
¡ 配置命令行計費方法。
accounting command hwtacacs-scheme hwtacacs-scheme-name
缺省情況下,命令行計費采用缺省的計費方法。
¡ 為login用戶配置計費方法。
accounting login { hwtacacs-scheme hwtacacs-scheme-name [ radius-scheme radius-scheme-name ] [ local ] [ none ] | local [ hwtacacs-scheme hwtacacs-scheme-name | radius-scheme radius-scheme-name ] * [ none ] | none | radius-scheme radius-scheme-name [ hwtacacs-scheme hwtacacs-scheme-name ] [ local ] [ none ] }
缺省情況下,login用戶采用缺省的計費方法。
可在任意視圖下執行以下命令:
· 顯示所有或指定ISP域的配置信息。
display domain [ isp-name ]
· 顯示用戶數峰值的曆史信息。
display max-user history [ slot slot-number ]
通過配置同時在線的最大用戶連接數,可以限製采用指定登錄方式(FTP、SSH、Telnet等)同時接入設備的在線用戶數。
該配置對於通過任何一種認證方式(none、password或者scheme)接入設備的用戶都生效。
(1) 進入係統視圖。
system-view
(2) 配置同時在線的最大用戶連接數。
aaa session-limit { ftp | http | https | ssh | telnet } max-sessions
缺省情況下,最大用戶連接數為32。
用戶進行RADIUS認證時,係統會獲取設備的NAS-ID來設置RADIUS報文中的NAS-Identifier屬性,該屬性用於向RADIUS服務器標識用戶的接入位置。
設備支持在ISP域視圖下配置NAS-ID,若配置不存在,則使用設備的名稱(由sysname命令指定)作為設備的NAS-ID。
(1) 進入係統視圖。
system-view
(2) 進入ISP域視圖。
domain name isp-name
(3) 在ISP域視圖下配置NAS-ID。
nas-id nas-identifier
RADIUS計費過程使用Acct-Session-Id屬性作為用戶的計費ID。設備使用係統時間、隨機數以及設備ID為每個在線用戶生成一個唯一的Acct-Session-Id值。
(1) 進入係統視圖。
system-view
(2) 配置設備ID。
aaa device-id device-id
缺省情況下,設備ID為0。
為了提高係統的安全性,用戶通過Telnet、SSH、HTTP、HTTPS、NETCONF over SSH、NETCONF over SOAP方式登錄設備時,係統會根據指定的安全要求對用戶密碼進行檢查。為了及時提醒用戶修改不符合係統要求的密碼,建議開啟密碼修改周期性提醒日誌功能。
開啟本功能後,係統將每隔24小時,對所有不符合密碼檢查策略的用戶打印日誌,提醒這些用戶盡快修改當前密碼。除了周期性提醒之外,係統還會在每個用戶登錄時,針對不符合密碼檢查策略的情況立即打印日誌進行提醒。
· 對於通過Telnet、SSH、HTTP、HTTPS方式登錄設備的用戶,如果用戶密碼為弱密碼,且係統在用戶登錄時未要求其立即更改密碼,係統會打印此提醒日誌。弱密碼是指不符合如下任意一項要求的密碼:
¡ 密碼組合檢測策略。
¡ 密碼最小長度限製。
¡ 密碼複雜度檢查策略。
· 對於通過NETCONF over SSH、NETCONF over SOAP方式登錄設備的用戶,如果出現以下情況,係統會打印此提醒日誌:
¡ 用戶密碼為弱密碼。
¡ 用戶密碼為缺省密碼。
¡ 全局密碼管理功能開啟後,用戶首次登錄或使用被更改過的密碼。
¡ 用戶密碼已經過期。
僅當以下情況發生時,係統才會停止打印此提醒日誌:
· 關閉了密碼修改周期性提醒日誌功能。
· 用戶密碼修改為符合係統安全要求的密碼。
· 密碼檢查策略相關功能的開啟狀態發生變化,使得密碼檢查策略變得寬鬆。
· 密碼檢查策略的參數設置發生變化。
當前係統中的密碼檢查策略可通過display password-control命令查看。弱密碼檢查使用的密碼組合檢測策略、密碼最小長度限製、密碼複雜度檢查策略可分別通過password-control composition、password-control length、password-control complexity命令修改。關於密碼檢查策略的具體介紹,請參見“用戶接入與認證命令參考”的“Password Control”。
(1) 進入係統視圖。
system-view
(2) 開啟密碼修改周期性提醒日誌功能。
local-server log change-password-prompt
缺省情況下,密碼修改周期性提醒日誌功能處於開啟狀態。
需要實現使用RADIUS服務器對登錄Router的SSH用戶進行認證和授權。
· 由一台iMC服務器(IP地址為10.1.1.1/24)擔當認證/授權RADIUS服務器的職責。iMC版本為:iMC PLAT 7.3 (E0605)、iMC UAM 7.3 (E0512);
· Router與RADIUS服務器交互報文時使用的共享密鑰為expert,認證/授權、計費的端口號分別為1812和1813;
· Router向RADIUS服務器發送的用戶名攜帶域名;
· 認證通過後的SSH用戶具有用戶角色network-admin。
圖1-11 SSH用戶RADIUS認證/授權配置組網圖
配置各接口的IP地址,且確保各設備之間路由可達。
(1) 增加接入設備
登錄進入iMC管理平台,選擇“用戶”頁簽,單擊導航樹中的“接入策略管理> 接入設備管理 > 接入設備配置”菜單項,進入接入設備配置頁麵。在該頁麵中單擊<增加>按鈕,進入增加接入設備頁麵。
a. 設置認證及計費的端口號分別為“1812”和“1813”;
b. 選擇業務類型為“設備管理業務”;
c. 選擇接入設備類型為“H3C (General)”;
d. 設置與Router交互報文時使用的認證、計費共享密鑰為“expert”;
e. 選擇或手工增加接入設備,添加IP地址為10.1.1.2的接入設備;
f. 其它參數采用缺省值;
g. 單擊<確定>按鈕完成操作。
添加的接入設備IP地址要與Router發送RADIUS報文的源地址保持一致。缺省情況下,設備發送RADIUS報文的源地址是發送RADIUS報文的接口IP地址。
· 若設備上通過命令source-ip(RADIUS方案視圖)或者radius source-ip指定了發送RADIUS報文的源地址,則此處的接入設備IP地址就需要修改並與指定源地址保持一致。
· 若設備使用缺省的發送RADIUS報文的源地址,例如,本例中為接口HundredGigE1/0/2的IP地址10.1.1.2,則此處接入設備IP地址就選擇10.1.1.2。
圖1-12 增加接入設備頁麵
(2) 增加設備管理用戶
選擇“用戶”頁簽,單擊導航樹中的“接入用戶管理 > 設備管理用戶”菜單項,進入設備管理用戶頁麵。在該頁麵中單擊<增加>按鈕,進入增加設備管理用戶頁麵。
a. 輸入用戶名“hello@bbb”和密碼;
b. 選擇登錄類型為“SSH”;
c. 輸入角色名為“network-admin”;
d. 添加所管理設備的IP地址,IP地址範圍為“10.1.1.0~10.1.1.255”;
e. 單擊<確定>按鈕完成操作。
添加的所管理設備的IP地址範圍要包含設備發送的RADIUS報文中攜帶的NAS-IP地址。
· 若設備上通過命令nas-ip(RADIUS方案視圖)或者radius nas-ip指定了RADIUS NAS-IP地址,則此處的接入設備IP地址就需要修改並與指定的NAS-IP地址保持一致。
· 若設備使用缺省的RADIUS NAS-IP地址,例如,本例中為接口HundredGigE1/0/2的IP地址10.1.1.2,則此處接入設備IP地址列表就要包含10.1.1.2。
圖1-13 增加設備管理用戶頁麵
# 創建本地RSA及DSA密鑰對。
<Router> system
[Router] public-key local create rsa
[Router] public-key local create dsa
# 使能SSH服務器功能。
[Router] ssh server enable
# 設置SSH用戶登錄用戶線的認證方式為AAA認證。
[Router] line vty 0 63
[Router-line-vty0-63] authentication-mode scheme
[Router-line-vty0-63] quit
# 創建RADIUS方案rad。
[Router] radius scheme rad
# 配置主認證服務器的IP地址為10.1.1.1,認證端口號為1812。
[Router-radius-rad] primary authentication 10.1.1.1 1812
# 配置與認證服務器交互報文時的共享密鑰為明文expert。
[Router-radius-rad] key authentication simple expert
# 配置向RADIUS服務器發送的用戶名要攜帶域名。
[Router-radius-rad] user-name-format with-domain
[Router-radius-rad] quit
# 創建ISP域bbb,為login用戶配置AAA認證方法為RADIUS認證/授權、不計費。由於RADIUS服務器的授權信息是隨認證應答報文發給RADIUS客戶端的,所以必須保證認證和授權方案相同。
[Router] domain name bbb
[Router-isp-bbb] authentication login radius-scheme rad
[Router-isp-bbb] authorization login radius-scheme rad
[Router-isp-bbb] accounting login none
[Router-isp-bbb] quit
用戶向Router發起SSH連接,按照提示輸入用戶名hello@bbb及正確的密碼後,可成功登錄Router,並具有用戶角色network-admin所擁有的命令行執行權限。
配置Router實現對登錄Router的SSH用戶進行本地認證和授權,並授權該用戶具有用戶角色network-admin。
圖1-14 SSH用戶本地認證/授權配置組網圖
配置各接口的IP地址,且確保各設備之間路由可達。
# 創建本地RSA及DSA密鑰對。
<Router> system-view
[Router] public-key local create rsa
[Router] public-key local create dsa
# 使能SSH服務器功能。
[Router] ssh server enable
# 設置SSH用戶登錄用戶線的認證方式為AAA認證。
[Router] line vty 0 63
[Router-line-vty0-63] authentication-mode scheme
[Router-line-vty0-63] quit
# 創建設備管理類本地用戶ssh。
[Router] local-user ssh class manage
# 配置該本地用戶的服務類型為SSH。
[Router-luser-manage-ssh] service-type ssh
# 配置該本地用戶密碼為明文123456TESTplat&!。
[Router-luser-manage-ssh] password simple 123456TESTplat&!
# 配置該本地用戶的授權用戶角色為network-admin
[Router-luser-manage-ssh] authorization-attribute user-role network-admin
[Router-luser-manage-ssh] quit
# 創建ISP域bbb,為login用戶配置AAA認證方法為本地認證和本地授權。
[Router] domain name bbb
[Router-isp-bbb] authentication login local
[Router-isp-bbb] authorization login local
[Router-isp-bbb] quit
用戶向Router發起SSH連接,按照提示輸入用戶名ssh@bbb及正確的密碼後,可成功登錄Router,並具有用戶角色network-admin所擁有的命令行執行權限。
配置Router實現使用HWTACACS服務器對登錄Router的SSH用戶進行認證、授權、計費。
· 由一台HWTACACS服務器擔當認證、授權、計費服務器的職責,服務器IP地址為10.1.1.1/24。
· Router與認證、授權、計費HWTACACS服務器交互報文時的共享密鑰均為expert,向HWTACACS服務器發送的用戶名不帶域名。
· 認證通過後的SSH用戶具有缺省的用戶角色network-operator。
圖1-15 SSH用戶HWTACACS認證、授權和計費配置組網圖
配置各接口的IP地址,且確保各設備之間路由可達。
在HWTACACS服務器上設置與Router交互報文時的共享密鑰為expert,添加SSH用戶名及密碼,但未配置用戶角色,具體配置步驟略。
# 創建HWTACACS方案hwtac。
<Router> system-view
[Router] hwtacacs scheme hwtac
# 配置主認證服務器的IP地址為10.1.1.1,認證端口號為49。
[Router-hwtacacs-hwtac] primary authentication 10.1.1.1 49
# 配置主授權服務器的IP地址為10.1.1.1,授權端口號為49。
[Router-hwtacacs-hwtac] primary authorization 10.1.1.1 49
# 配置主計費服務器的IP地址為10.1.1.1,計費端口號為49。
[Router-hwtacacs-hwtac] primary accounting 10.1.1.1 49
# 配置與認證、授權、計費服務器交互報文時的共享密鑰均為明文expert。
[Router-hwtacacs-hwtac] key authentication simple expert
[Router-hwtacacs-hwtac] key authorization simple expert
[Router-hwtacacs-hwtac] key accounting simple expert
# 配置向HWTACACS服務器發送的用戶名不攜帶域名。
[Router-hwtacacs-hwtac] user-name-format without-domain
[Router-hwtacacs-hwtac] quit
# 創建ISP域bbb,為login用戶配置AAA認證方法為HWTACACS認證/授權/計費。
[Router] domain name bbb
[Router-isp-bbb] authentication login hwtacacs-scheme hwtac
[Router-isp-bbb] authorization login hwtacacs-scheme hwtac
[Router-isp-bbb] accounting login hwtacacs-scheme hwtac
[Router-isp-bbb] quit
# 創建本地RSA及DSA密鑰對。
[Router] public-key local create rsa
[Router] public-key local create dsa
# 使能SSH服務器功能。
[Router] ssh server enable
# 使能缺省用戶角色授權功能,使得認證通過後的SSH用戶具有缺省的用戶角色network-operator。
[Router] role default-role enable
# 設置SSH用戶登錄用戶線的認證方式為AAA認證。
[Router] line vty 0 63
[Router-line-vty0-63] authentication-mode scheme
[Router-line-vty0-63] quit
用戶向Router發起SSH連接,按照提示輸入正確用戶名及密碼後,可成功登錄Router,並具有用戶角色network-operator所擁有的命令行執行權限。
配置Router實現使用LDAP服務器對登錄Router的SSH用戶進行認證,且認證通過後具有缺省的用戶角色level-0。
· 一台LDAP認證服務器與Router相連,服務器IP地址為10.1.1.1,服務器域名為ldap.com。該LDAP認證服務器為Microsoft Windows 2003 Server的Active Directory。
· 在LDAP服務器上設置管理員administrator的密碼為admin!123456。
· 在LDAP服務器上添加用戶名為aaa的用戶,密碼為ldap!123456。
圖1-16 SSH用戶LDAP認證配置組網圖
配置各接口的IP地址,且確保各設備之間路由可達。
(1) 添加用戶aaa
a. 在LDAP服務器上,選擇[開始/管理工具]中的[Active Directory用戶和計算機],打開Active Directory用戶管理界麵;
b. 在Active Directory用戶管理界麵的左側導航樹中,點擊ldap.com節點下的“Users”按鈕;
c. 選擇[操作/新建/用戶],打開[新建對象-用戶]對話框;
d. 在對話框中輸入用戶登錄名aaa,並單擊<下一步>按鈕。
圖1-17 新建用戶aaa
e. 在彈出的對話框的“密碼”區域框內輸入用戶密碼ldap!123456,並單擊<下一步>按鈕。用戶賬戶的其它屬性(密碼的更改方式、密碼的生存方式、是否禁用賬戶)請根據實際情況選擇配置,圖中僅為示例。
圖1-18 設置用戶密碼
f. 單擊<完成>按鈕,創建新用戶aaa。
(2) 將用戶aaa加入Users組
a. 在Active Directory用戶管理界麵的左側導航樹中,點擊ldap.com節點下的“Users”按鈕;
b. 在右側的Users信息框中右鍵單擊用戶aaa,選擇“屬性”項;
c. 在彈出的[aaa屬性]對話框中選擇“隸屬於”頁簽,並單擊<添加(D)...>按鈕。
圖1-19 修改用戶屬性
d. 在彈出的[選擇組]對話框中的可編輯區域框中輸入對象名稱“Users”,單擊<確定>,完成用戶aaa添加到Users組。
圖1-20 添加用戶aaa到用戶組Users
(3) 配置管理員密碼
a. 在右側的Users信息框中右鍵單擊管理員用戶administrator,選擇“設置密碼(S)...”項;
b. 在彈出的密碼添加對話框中設置管理員密碼,詳細過程略。
# 生成本地DSA及RSA密鑰對。
<Router> system-view
[Router] public-key local create dsa
[Router] public-key local create rsa
# 使能SSH服務器功能。
[Router] ssh server enable
# 設置SSH用戶登錄用戶線的認證方式為AAA認證。
[Router] line vty 0 63
[Router-line-vty0-63] authentication-mode scheme
[Router-line-vty0-63] quit
# 創建LDAP服務器。
[Router] ldap server ldap1
# 配置LDAP認證服務器的IP地址。
[Router-ldap-server-ldap1] ip 10.1.1.1
# 配置具有管理員權限的用戶DN。
[Router-ldap-server-ldap1] login-dn cn=administrator,cn=users,dc=ldap,dc=com
# 配置具有管理員權限的用戶密碼。
[Router-ldap-server-ldap1] login-password simple admin!123456
# 配置查詢用戶的起始目錄。
[Router-ldap-server-ldap1] search-base-dn dc=ldap,dc=com
[Router-ldap-server-ldap1] quit
# 創建LDAP方案。
[Router] ldap scheme ldap1-shml
# 配置LDAP認證服務器。
[Router-ldap-ldap-shml] authentication-server ldap1
[Router-ldap-ldap1-shml] quit
# 創建ISP域bbb,為login用戶配置AAA認證方法為LDAP認證、不授權、不計費。
[Router] domain name bbb
[Router-isp-bbb] authentication login ldap-scheme ldap1-shml
[Router-isp-bbb] authorization login none
[Router-isp-bbb] accounting login none
[Router-isp-bbb] quit
用戶向Router發起SSH連接,按照提示輸入用戶名aaa@bbb及正確的密碼ldap!123456後,可成功登錄Router,並具有用戶角色level-0所擁有的命令行執行權限。
用戶認證/授權總是失敗。
(1) 設備與RADIUS服務器之間存在通信故障。
(2) 用戶名未攜帶正確的域名,攜帶域名的用戶名形式不正確,或設備上沒有正確配置用於認證該用戶的ISP域。
(3) RADIUS服務器的數據庫中沒有配置該用戶。
(4) 用戶側輸入的密碼不正確。
(5) RADIUS服務器和設備的報文共享密鑰不同。
(1) 使用ping命令檢查設備與RADIUS服務器是否可達。
(2) 使用正確形式的用戶名或在設備上確保正確配置了用於該用戶認證的ISP域。
(3) 檢查RADIUS服務器的數據庫以保證該用戶的配置信息確實存在。
(4) 確保接入用戶輸入正確的密碼。
(5) 檢查兩端的共享密鑰,並確保兩端一致。
RADIUS報文無法傳送到RADIUS服務器。
(1) 設備與RADIUS服務器之間的通信存在故障。
(2) 設備上沒有設置相應的RADIUS服務器IP地址。
(3) 認證/授權和計費服務的UDP端口設置不正確。
(4) RADIUS服務器的認證/授權和計費端口被其它應用程序占用。
(1) 確保線路通暢。
(2) 確保正確設置RADIUS服務器的IP地址。
(3) 確保與RADIUS服務器提供服務的端口號一致。
(4) 確保RADIUS服務器上的認證/授權和計費端口可用。
用戶認證通過並獲得授權,但是計費功能出現異常。
(1) 計費端口號設置不正確。
(2) 計費服務器和認證服務器不是同一台機器,設備卻要求認證和計費功能屬於同一個服務器(IP地址相同)。
(1) 正確設置RADIUS計費端口號。
(2) 確保設備的認證服務器和計費服務器的設置與實際情況相同。
HWTACACS的常見配置錯誤與RADIUS基本相似,可以參考以上內容。
用戶認證失敗。
(1) 設備與LDAP服務器之間存在通信故障。
(2) 配置的認證/授權服務器IP地址或端口號不正確。
(3) 用戶名未攜帶正確的域名,攜帶域名的用戶名形式不正確,或設備上沒有正確配置用於認證該用戶的ISP域。
(4) LDAP服務器目錄中沒有配置該用戶。
(5) 用戶輸入的密碼不正確。
(6) 具有管理員權限的用戶DN或密碼沒有配置。
(7) 設備上配置的用戶參數(如用戶名屬性)與服務器上的配置不對應。
(8) 認證操作時,沒有配置LDAP方案用戶查詢的起始DN。
(1) 使用ping命令檢查設備與LDAP服務器是否可達。
(2) 確保配置的認證服務器IP地址與端口號與LDAP服務器實際使用的IP地址和端口號相符。
(3) 使用正確形式的用戶名或在設備上確保正確配置了用於該用戶認證的ISP域。
(4) 檢查LDAP服務器目錄以保證該用戶的配置信息確實存在。
(5) 確保輸入用戶密碼正確。
(6) 確保配置了正確的管理員用戶DN和密碼。
(7) 確保設備上的用戶參數(如用戶名屬性)配置與LDAP服務器上的配置相同。
(8) 認證操作時,確保配置了用戶查詢的起始DN。
標準的RADIUS屬性由RFC 2865、RFC 2866、RFC 2867和RFC 2868所定義。常見的RADIUS標準屬性如表1-4所示。
表1-4 常見RADIUS標準屬性列表
屬性編號 |
屬性名稱 |
屬性編號 |
屬性名稱 |
1 |
User-Name |
45 |
Acct-Authentic |
2 |
User-Password |
46 |
Acct-Session-Time |
3 |
CHAP-Password |
47 |
Acct-Input-Packets |
4 |
NAS-IP-Address |
48 |
Acct-Output-Packets |
5 |
NAS-Port |
49 |
Acct-Terminate-Cause |
6 |
Service-Type |
50 |
Acct-Multi-Session-Id |
7 |
Framed-Protocol |
51 |
Acct-Link-Count |
8 |
Framed-IP-Address |
52 |
Acct-Input-Gigawords |
9 |
Framed-IP-Netmask |
53 |
Acct-Output-Gigawords |
10 |
Framed-Routing |
54 |
(unassigned) |
11 |
Filter-ID |
55 |
Event-Timestamp |
12 |
Framed-MTU |
56-59 |
(unassigned) |
13 |
Framed-Compression |
60 |
CHAP-Challenge |
14 |
Login-IP-Host |
61 |
NAS-Port-Type |
15 |
Login-Service |
62 |
Port-Limit |
16 |
Login-TCP-Port |
63 |
Login-LAT-Port |
17 |
(unassigned) |
64 |
Tunnel-Type |
18 |
Reply-Message |
65 |
Tunnel-Medium-Type |
19 |
Callback-Number |
66 |
Tunnel-Client-Endpoint |
20 |
Callback-ID |
67 |
Tunnel-Server-Endpoint |
21 |
(unassigned) |
68 |
Acct-Tunnel-Connection |
22 |
Framed-Route |
69 |
Tunnel-Password |
23 |
Framed-IPX-Network |
70 |
ARAP-Password |
24 |
State |
71 |
ARAP-Features |
25 |
Class |
72 |
ARAP-Zone-Access |
26 |
Vendor-Specific |
73 |
ARAP-Security |
27 |
Session-Timeout |
74 |
ARAP-Security-Data |
28 |
Idle-Timeout |
75 |
Password-Retry |
29 |
Termination-Action |
76 |
Prompt |
30 |
Called-Station-Id |
77 |
Connect-Info |
31 |
Calling-Station-Id |
78 |
Configuration-Token |
32 |
NAS-Identifier |
79 |
EAP-Message |
33 |
Proxy-State |
80 |
Message-Authenticator |
34 |
Login-LAT-Service |
81 |
Tunnel-Private-Group-id |
35 |
Login-LAT-Node |
82 |
Tunnel-Assignment-id |
36 |
Login-LAT-Group |
83 |
Tunnel-Preference |
37 |
Framed-AppleTalk-Link |
84 |
ARAP-Challenge-Response |
38 |
Framed-AppleTalk-Network |
85 |
Acct-Interim-Interval |
39 |
Framed-AppleTalk-Zone |
86 |
Acct-Tunnel-Packets-Lost |
40 |
Acct-Status-Type |
87 |
NAS-Port-Id |
41 |
Acct-Delay-Time |
88 |
Framed-Pool |
42 |
Acct-Input-Octets |
89 |
(unassigned) |
43 |
Acct-Output-Octets |
90 |
Tunnel-Client-Auth-id |
44 |
Acct-Session-Id |
91 |
Tunnel-Server-Auth-id |
表1-5 常見RADIUS標準屬性描述
屬性編號 |
屬性名稱 |
描述 |
1 |
User-Name |
需要進行認證的用戶名稱 |
2 |
User-Password |
需要進行PAP方式認證的用戶密碼,在采用PAP認證方式時,該屬性僅出現在Access-Request報文中 |
3 |
CHAP-Password |
需要進行CHAP方式認證的用戶密碼的消息摘要。在采用CHAP認證方式時,該屬性出現在Access-Request報文中 |
4 |
NAS-IP-Address |
Server通過不同的IP地址來標識不同的Client,通常Client采用本地一個接口的IP地址來唯一的標識自己,這就是NAS-IP-Address。該屬性指示當前發起請求的Client的NAS-IP-Address。該字段僅出現在Access-Request報文中 |
5 |
NAS-Port |
用戶接入NAS的物理端口號 |
6 |
Service-Type |
用戶申請認證的業務類型 |
7 |
Framed-Protocol |
用戶Frame類型業務的封裝協議 |
8 |
Framed-IP-Address |
為用戶所配置的IP地址 |
11 |
Filter-ID |
訪問控製列表的名稱。屬性取值的解析原則如下: · 若首位為數字,則表示ACL編號 · 若首位不為數字,則表示User Profile名稱 |
12 |
Framed-MTU |
用戶與NAS之間數據鏈路的MTU(Maximum Transmission Unit,最大傳輸單元)值。例如在802.1X的EAP方式認證中,NAS通過Framed-MTU值指示Server發送EAP報文的最大長度,防止EAP報文大於數據鏈路MTU導致的報文丟失 |
14 |
Login-IP-Host |
用戶登錄設備的接口IP地址 |
15 |
Login-Service |
用戶登錄設備時采用的業務類型 |
18 |
Reply-Message |
服務器反饋給用戶的純文本描述,可用於向用戶顯示認證失敗的原因 |
26 |
Vendor-Specific |
廠商自定義的私有屬性。一個報文中可以有一個或者多個私有屬性,每個私有屬性中可以有一個或者多個子屬性 |
27 |
Session-Timeout |
會話結束之前,給用戶提供服務的最大時間,即用戶的最大可用時長 若屬性值為0,則表示要求用戶下線;若屬性值為4294967295,則表示不限製用戶在線時長 |
28 |
Idle-Timeout |
會話結束之前,允許用戶持續空閑的最大時間,即用戶的閑置切斷時間 |
31 |
Calling-Station-Id |
NAS用於向Server告知標識用戶的號碼,在我司設備提供的lan-access業務中,該字段填充的是用戶的MAC地址 |
32 |
NAS-Identifier |
NAS用來向Server標識自己的名稱 |
40 |
Acct-Status-Type |
計費請求報文的類型 · 1:Start · 2:Stop · 3:Interim-Update · 4:Reset-Charge · 7:Accounting-On(3GPP中有定義) · 8:Accounting-Off (3GPP中有定義) · 9-14:Reserved for Tunnel Accounting · 15:Reserved for Failed |
45 |
Acct-Authentic |
用戶采用的認證方式,包括RADIUS,Local以及Remote |
60 |
CHAP-Challenge |
在CHAP認證中,由NAS生成的用於MD5計算的隨機序列 |
61 |
NAS-Port-Type |
NAS認證用戶的端口的物理類型 · 15:以太網 · 16:所有種類的ADSL · 17:Cable(有線電視電纜) · 19:WLAN-IEEE 802.11 · 201:VLAN · 202:ATM 如果在以太網端口上還劃分VLAN,則該屬性值為201 |
64 |
Tunnel-Type |
使用的隧道協議,該屬性值為13時表示下發VLAN |
65 |
Tunnel-Medium-Type |
創建隧道的傳輸層媒介類型,該屬性值為6時表示802類型,可用於下發VLAN |
79 |
EAP-Message |
用於封裝EAP報文,實現RADIUS協議對EAP認證方式的支持 |
80 |
Message-Authenticator |
用於對認證報文進行認證和校驗,防止非法報文欺騙。該屬性在RADIUS協議支持EAP認證方式被使用 |
81 |
Tunnel-Private-Group-ID |
隧道會話的組ID,該屬性在下發VLAN時用於攜帶下發的VLAN ID |
87 |
NAS-Port-Id |
用字符串來描述的認證端口信息 |
168 |
Framed-IPv6-Address |
服務器下發給NAS用於分配給主機的唯一IPv6地址 |
表1-6列出的RADIUS擴展屬性為所有產品可支持屬性的合集,具體產品支持情況有所不同。
表1-6 RADIUS擴展屬性(Vendor-ID=25506)
子屬性編號 |
子屬性名稱 |
描述 |
1 |
Input-Peak-Rate |
用戶接入到NAS的峰值速率,以bps為單位 |
2 |
Input-Average-Rate |
用戶接入到NAS的平均速率,以bps為單位 |
3 |
Input-Basic-Rate |
用戶接入到NAS的基本速率,以bps為單位 |
4 |
Output-Peak-Rate |
從NAS到用戶的峰值速率,以bps為單位 |
5 |
Output-Average-Rate |
從NAS到用戶的平均速率,以bps為單位 |
6 |
Output-Basic-Rate |
從NAS到用戶的基本速率,以bps為單位 |
15 |
Remanent_Volume |
表示該連接的剩餘可用總流量。對於不同的服務器類型,此屬性的單位不同 |
17 |
ISP-ID |
表示用於獲取授權信息的ISP域 |
20 |
Command |
用於會話控製,表示對會話進行操作,此屬性有五種取值 · 1:Trigger-Request · 2:Terminate-Request · 3:SetPolicy · 4:Result · 5:PortalClear |
25 |
Result_Code |
表示Trigger-Request或SetPolicy的結果,0表示成功,非0表示失敗 |
26 |
Connect_ID |
用戶連接索引 |
27 |
PortalURL |
下發給PPPoE的PADM URL |
28 |
Ftp_Directory |
FTP/SFTP/SCP用戶工作目錄 對於FTP/SFTP/SCP用戶,當RADIUS客戶端作為FTP/SFTP/SCP服務器時,該屬性用於設置RADIUS客戶端上的FTP/SFTP/SCP目錄 |
29 |
Exec_Privilege |
EXEC用戶優先級 |
32 |
NAT-IP-Address |
進行源IP地址和端口轉換處理時為該用戶分配的公網IP地址 |
33 |
NAT-Start-Port |
進行源IP地址和端口轉換處理時為該用戶分配的端口範圍的起始端口號 |
34 |
NAT-End-Port |
進行源IP地址和端口轉換處理時為該用戶分配的端口範圍的結束端口號 |
59 |
NAS_Startup_Timestamp |
NAS係統啟動時刻,以秒為單位,表示從1970年1月1日UTC 00:00:00以來的秒數 |
60 |
Ip_Host_Addr |
認證請求和計費請求報文中攜帶的用戶IP地址和MAC地址,格式為“A.B.C.D hh:hh:hh:hh:hh:hh”,IP地址和MAC地址之間以空格分開 |
61 |
User_Notify |
服務器需要透傳到客戶端的信息 |
62 |
User_HeartBeat |
802.1X用戶認證成功後下發的32字節的Hash字符串,該屬性值被保存在設備的用戶列表中,用於校驗802.1X客戶端的握手報文 該屬性僅出現在Access-Accept和Accounting-Request報文中 |
98 |
Multicast_Receive_Group |
用戶作為組播接收者加入的組播組地址。 該屬性可以在報文中多次出現,表示用戶屬於多個組播組 |
100 |
IP6_Multicast_Receive_Group |
用戶作為組播接收者加入的IPv6組播組地址。 該屬性可以在報文中多次出現,表示用戶屬於多個組播組 |
101 |
MLD-Access-Limit |
用戶可以加入的IPv6組播組的最大數量 |
102 |
local-name |
L2TP的本地名字 |
103 |
IGMP-Access-Limit |
用戶可以加入的IPv4組播組的最大數量 |
104 |
VPN-Instance |
用戶可以加入的MPLS L3VPN實例的名稱 |
105 |
ANCP-Profile |
ANCP策略名稱 |
135 |
Client-Primary-DNS |
首選DNS服務器地址 |
136 |
Client-Secondary-DNS |
備用DNS服務器地址 |
140 |
User_Group |
用戶認證成功後下發的用戶組 通常,一個用戶隻能屬於一個用戶組;對於SSL VPN用戶,一個用戶可以屬於多個用戶組,多個用戶組之間使用分號隔開 |
144 |
Acct_IPv6_Input_Octets |
表示入方向的IPv6報文字節數,單位由設備上的配置決定 |
145 |
Acct_IPv6_Output_Octets |
表示出方向的IPv6報文字節數,單位由設備上的配置決定 |
146 |
Acct_IPv6_Input_Packets |
表示入方向的IPv6包數,單位由設備上的配置決定 |
147 |
Acct_IPv6_Output_Packets |
表示出方向的IPv6包數,單位由設備上的配置決定 |
148 |
Acct_IPv6_Input_Gigawords |
表示入方向的IPv6報文字節數是4G字節的多少倍 |
149 |
Acct_IPv6_Output_Gigawords |
表示出方向的IPv6報文字節數是4G字節的多少倍 |
155 |
User-Roles |
用戶角色列表。多個用戶角色名稱之間使用空格分隔 |
210 |
Av-Pair |
自定義的屬性對,可支持以下類型: · 下發的Voice VLAN,格式為device-traffic-class=voice · 下發的用戶角色,格式為shell:role=xxx · 下發的訪問控製列表,格式為url-redirect-acl=xxx · 下發的Web重定向URL,格式為url-redirect=xxx · 下發的重啟端口命令,格式為subscriber:command=bounce-host-port · 下發的端口關閉的時長,格式為bounce:seconds=xxx · 下發的端口關閉命令,格式為subscriber:command=disable-host-port · 下發的黑洞MAC,格式為mac:block-mac=xxx |
230 |
NAS-Port-Name |
用戶接入NAS的接口名稱 |
246 |
Auth_Detail_Result |
在下麵的情況下,服務器發送Access-Accept報文,並攜帶此屬性表明用戶認證的詳細結果信息: · 1:用戶處於欠費狀態。該情況下,服務器同時會下發250號屬性,允許用戶訪問白名單中的網絡資源。若用戶訪問其它網絡資源,將被重定向到250號屬性指定的重定向URL · 2:用戶寬帶使用到期。該情況下,服務器同時會下發250號屬性。用戶的首次Web訪問請求將被重定向到250號屬性指定的重定向URL |
247 |
Input-Committed-Burst-Size |
用戶到NAS方向流量的CBS(Committed Burst Size,承諾突發尺寸),以bit為單位,長度為4字節 下發此屬性時需要同時下發Input-Average-Rate屬性 |
248 |
Output-Committed-Burst-Size |
NAS到用戶方向流量的CBS(Committed Burst Size,承諾突發尺寸),以bit為單位,長度為4字節 下發此屬性時需要同時下發Output-Average-Rate屬性 |
249 |
authentication-type |
用戶認證類型值,取值如下: · 1:用戶內網準入認證 · 2:用戶外網準出認證 如果該屬性不存在,則按照普通用戶認證處理 |
250 |
WEB-URL |
用戶Web重定向URL |
251 |
Subscriber-ID |
用戶家庭ID |
252 |
Subscriber-Profile |
用戶家庭套餐的QoS策略名稱 |
255 |
Product_ID |
產品名稱 |
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!