01-AAA配置
本章节下载: 01-AAA配置 (830.23 KB)
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也适应多种用户接入方式,如以太网接入。它通过认证授权来提供接入服务,通过计费来收集、记录用户对网络资源的使用。
· 客户端: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的基本消息交互流程
消息交互流程如下:
(2) 用户发起连接请求,向RADIUS客户端发送用户名和密码。
(3) RADIUS客户端根据获取的用户名和密码,向RADIUS服务器发送认证请求包(Access-Request),其中的密码在共享密钥的参与下利用MD5算法进行加密处理。
(4) RADIUS服务器对用户名和密码进行认证。如果认证成功,RADIUS服务器向RADIUS客户端发送认证接受包(Access-Accept);如果认证失败,则返回认证拒绝包(Access-Reject)。由于RADIUS协议合并了认证和授权的过程,因此认证接受包中也包含了用户的授权信息。
(5) RADIUS客户端根据接收到的认证结果接入/拒绝用户。如果允许用户接入,则RADIUS客户端向RADIUS服务器发送计费开始请求包(Accounting-Request)。
(6) RADIUS服务器返回计费开始响应包(Accounting-Response),并开始计费。
(7) 用户开始访问网络资源。
(8) 用户请求断开连接。
(9) RADIUS客户端向RADIUS服务器发送计费停止请求包(Accounting-Request)。
(10) RADIUS服务器返回计费结束响应包(Accounting-Response),并停止计费。
(11) 通知用户结束访问网络资源。
RADIUS采用UDP报文来传输消息,通过定时器机制、重传机制、备用服务器机制,确保RADIUS服务器和客户端之间交互消息的正确收发。RADIUS报文结构如图1-4所示。
图1-4 RADIUS报文结构
各字段的解释如下:
(2) 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报文,并且已经正确记录计费信息 |
(3) Identifier域
长度为1个字节,用于匹配请求包和响应包,以及检测在一段时间内重发的请求包。对于类型一致且属于同一个交互过程的请求包和响应包,该Identifier值相同。
(4) Length域
长度为2个字节,表示RADIUS数据包(包括Code、Identifier、Length、Authenticator和Attribute)的长度,单位为字节。超过Length域的字节将作为填充字符被忽略。如果接收到的包的实际长度小于Length域的值时,则包会被丢弃。
(5) Authenticator域
长度为16个字节,用于验证RADIUS服务器的应答报文,另外还用于用户密码的加密。Authenticator包括两种类型:Request Authenticator和Response Authenticator。
(6) 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协议主要用于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用户认证、授权和计费流程图
基本消息交互流程如下:
(2) Telnet用户请求登录设备。
(3) HWTACACS客户端收到请求之后,向HWTACACS服务器发送认证开始报文。
(4) HWTACACS服务器发送认证回应报文,请求用户名。
(5) HWTACACS客户端收到回应报文后,向用户询问用户名。
(6) 用户输入用户名。
(7) HWTACACS客户端收到用户名后,向HWTACACS服务器发送认证持续报文,其中包括了用户名。
(8) HWTACACS服务器发送认证回应报文,请求登录密码。
(9) HWTACACS客户端收到回应报文,向用户询问登录密码。
(10) 用户输入密码。
(11) HWTACACS客户端收到登录密码后,向HWTACACS服务器发送认证持续报文,其中包括了登录密码。
(12) 如果认证成功,HWTACACS服务器发送认证回应报文,指示用户通过认证。
(13) HWTACACS客户端向HWTACACS服务器发送授权请求报文。
(14) 如果授权成功,HWTACACS服务器发送授权回应报文,指示用户通过授权。
(15) HWTACACS客户端收到授权成功报文,向用户输出设备的配置界面,允许用户登录。
(16) HWTACACS客户端向HWTACACS服务器发送计费开始报文。
(17) HWTACACS服务器发送计费回应报文,指示计费开始报文已经收到。
(18) 用户请求断开连接。
(19) HWTACACS客户端向HWTACACS服务器发送计费结束报文。
(20) 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认证的基本消息交互流程
基本消息交互流程如下:
(2) 用户发起连接请求,向LDAP客户端发送用户名和密码。
(3) LDAP客户端收到请求之后,与LDAP服务器建立TCP连接。
(4) LDAP客户端以管理员DN和管理员DN密码为参数向LDAP服务器发送管理员绑定请求报文(Administrator Bind Request)获得查询权限。
(5) LDAP服务器进行绑定请求报文的处理。如果绑定成功,则向LDAP客户端发送绑定成功的回应报文。
(6) LDAP客户端以输入的用户名为参数,向LDAP服务器发送用户DN查询请求报文(User DN Search Request)。
(7) LDAP服务器收到查询请求报文后,根据报文中的查询起始地址、查询范围、以及过滤条件,对用户DN进行查找。如果查询成功,则向LDAP客户端发送查询成功的回应报文。查询得到的用户DN可以是一或多个。
(8) LDAP客户端以查询得到的用户DN和用户输入的密码为参数,向LDAP服务器发送用户DN绑定请求报文(User DN Bind Request),检查用户密码是否正确。
(9) LDAP服务器进行绑定请求报文的处理。
· 如果绑定成功,则向LDAP客户端发送绑定成功的回应报文。
· 如果绑定失败,则向LDAP客户端发送绑定失败的回应报文。LDAP客户端以下一个查询到的用户DN(如果存在的话)为参数,继续向服务器发送绑定请求,直至有一个DN绑定成功,或者所有DN均绑定失败。如果所有用户DN都绑定失败,则LDAP客户端通知用户登录失败并拒绝用户接入。
(10) LDAP客户端保存绑定成功的用户DN,并进行授权处理。如果设备采用LDAP授权方案,则进行图1-8所示的用户授权交互流程;如果设备采用非LDAP的授权方案,则执行其它协议的授权处理流程,此处略。
(11) 授权成功之后,LDAP客户端通知用户登录成功。
下面以Telnet用户登录设备为例,说明如何使用LDAP服务器来对用户进行授权。用户的LDAP授权基本消息交互流程如图1-8所示。
图1-8 LDAP授权的基本消息交互流程
(2) 用户发起连接请求,向LDAP客户端发送用户名和密码。
(3) LDAP客户端收到请求之后,进行认证处理。如果设备采用LDAP认证方案,则按照图1-7所示进行LDAP认证。LDAP认证流程完成之后,如果已经和该LDAP授权服务器建立了绑定关系,则直接转到步骤(6),否则转到步骤(4);如果设备采用非LDAP认证方案,则执行其它协议的认证处理流程,之后转到步骤(3)。
(4) LDAP客户端与LDAP服务器建立TCP连接。
(5) LDAP客户端以管理员DN和管理员DN密码为参数向LDAP服务器发送管理员绑定请求报文(Administrator Bind Request)获得查询权限。
(6) LDAP服务器进行绑定请求报文的处理。如果绑定成功,则向LDAP客户端发送绑定成功的回应报文。
(7) LDAP客户端以输入的用户名为参数(如果用户认证使用的是相同LDAP服务器,则以保存的绑定成功的用户DN为参数),向LDAP服务器发送授权查询请求报文。
(8) LDAP服务器收到查询请求报文后,根据报文中的查询起始地址、查询范围、过滤条件以及LDAP客户端关心的LDAP属性,对用户信息进行查找。如果查询成功,则向LDAP客户端发送查询成功的回应报文。
(9) 授权成功后,LDAP客户端通知用户登录成功。
NAS对用户的管理是基于ISP(Internet Service Provider,互联网服务提供商)域的,每个用户都属于一个ISP域。一般情况下,用户所属的ISP域是由用户登录时提供的用户名决定的,如图1-9所示。
login用户:登录设备用户,如SSH、Telnet、FTP、终端接入用户(即从Console口登录的用户)。
在具体实现中,一个ISP域对应着设备上一套实现AAA的配置策略,它们是管理员针对该域用户制定的一套认证、授权、计费方法,可根据用户的接入特征以及不同的安全需求组合使用。
AAA支持以下认证方法:
· 不认证:对用户非常信任,不对其进行合法性检查,一般情况下不采用这种方法。
· 本地认证:认证过程在接入设备上完成,用户信息(包括用户名、密码和各种属性)配置在接入设备上。优点是速度快,可以降低运营成本;缺点是存储信息量受设备硬件条件限制。
· 远端认证:认证过程在接入设备和远端的服务器之间完成,接入设备和远端服务器之间通过RADIUS、HWTACACS或LDAP协议通信。优点是用户信息集中在服务器上统一管理,可实现大容量、高可靠性、支持多设备的集中式统一认证。当远端服务器无效时,可配置备选认证方式完成认证。
AAA支持以下授权方法:
· 不授权:接入设备不请求授权信息,不对用户可以使用的操作以及用户允许使用的网络服务进行授权。此时,认证通过的login用户只有系统给予的缺省用户角色level-0,其中FTP/SFTP/SCP用户的工作目录是设备的根目录,但并无访问权限;认证通过的非login用户,可直接访问网络。关于用户角色level-0的详细介绍请参见“基础配置指导”中的“RBAC”。
· 本地授权:授权过程在接入设备上进行,根据接入设备上为本地用户配置的相关属性进行授权。
· 远端授权:授权过程在接入设备和远端服务器之间完成。RADIUS协议的认证和授权是绑定在一起的,不能单独使用RADIUS进行授权。RADIUS认证成功后,才能进行授权,RADIUS授权信息携带在认证回应报文中下发给用户。HWTACACS协议的授权与认证相分离,在认证成功后,HWTACACS授权信息通过授权报文进行交互。当远端服务器无效时,可配置备选授权方式完成授权。
AAA支持以下计费方法:
· 不计费:不对用户计费。
· 本地计费:计费过程在接入设备上完成,实现了本地用户连接数的统计和限制,并没有实际的费用统计功能。
· 远端计费:计费过程在接入设备和远端的服务器之间完成。当远端服务器无效时,可配置备选计费方式完成计费。
对于login用户,AAA还可以对其提供以下服务,用于提高对设备操作的安全性:
· 命令行授权:用户执行的每一条命令都需要接受授权服务器的检查,只有授权成功的命令才被允许执行。关于命令行授权的详细介绍请参考“基础配置指导”中的“配置用户通过CLI登录设备”。
· 命令行计费:若未开启命令行授权功能,则计费服务器对用户执行过的所有有效命令进行记录;若开启了命令行授权功能,则计费服务器仅对授权通过的命令进行记录。关于命令行计费的详细介绍请参考“基础配置指导”中的“配置用户通过CLI登录设备”。
· 用户角色切换认证:在不退出当前登录、不断开当前连接的前提下,用户将当前的用户角色切换为其它用户角色时,只有通过服务器的认证,该切换操作才被允许。关于用户角色切换的详细介绍请参考“基础配置指导”中的“RBAC”。
在MPLS L3VPN组网中,要求在私网客户端业务隔离的情况下,实现对客户端的集中认证,这就需要AAA支持基于VPN多实例的报文交互。通过AAA支持MPLS L3VPN,可实现RADIUS、HWTACACS认证/授权/计费报文在MPLS L3VPN之间的交互。如图1-10所示,连接客户端的PE设备作为NAS,通过MPLS L3VPN把私网客户端的认证/授权/计费信息透传给网络另一端的私网服务器,实现了对私网客户端的集中认证,且各私网的认证报文互不影响。
图1-10 AAA支持MPLS L3VPN典型组网图
与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方案
(2) 若选择使用本地AAA方案,则需要配置本地用户;若选择使用远程AAA方案,则需要配置RADIUS、HWTACACS或LDAP。
¡ 配置本地用户
¡ 配置RADIUS
¡ 配置LDAP
(3) 创建ISP域并配置相关属性
a. 创建ISP域
b. 配置ISP域的属性
(4) 在ISP域中配置实现AAA的方法
(5) 请根据实际需求为用户所在的ISP域配置实现认证、授权、计费的方法,这些方法中将会引用已经配置的AAA方案。
(6) (可选)配置AAA高级功能
¡ 配置NAS-ID
当选择使用本地认证、本地授权、本地计费方法对用户进行认证、授权或计费时,应在设备上创建本地用户并配置相关属性。
所谓本地用户,是指在本地设备上设置的一组用户属性的集合。该集合以用户名和用户类别为用户的唯一标识。设备管理用户供设备管理员登录设备使用。
为使某个请求网络服务的用户可以通过本地认证,需要在设备上的本地用户数据库中添加相应的表项。具体步骤是,创建一个本地用户并进入本地用户视图,然后在本地用户视图下配置相应的用户属性,可配置的用户属性包括:
· 服务类型
用户可使用的网络服务类型。该属性是本地认证的检测项,如果没有用户可以使用的服务类型,则该用户无法通过认证。
· 用户状态
用于指示是否允许该用户请求网络服务器,包括active和block两种状态。active表示允许该用户请求网络服务,block表示禁止该用户请求网络服务。
· 最大用户数
使用当前用户名接入设备的最大用户数目。若当前该用户名的接入用户数已达最大值,则使用该用户名的新用户将被禁止接入。
· 所属的用户组
每一个本地用户都属于一个本地用户组,并继承组中的所有属性(密码管理属性和用户授权属性)。关于本地用户组的介绍和配置请参见“1.3.4 配置用户组属性”。
· 用户授权属性
用户认证通过后,接入设备给用户下发授权属性。由于可配置的授权属性都有其明确的使用环境和用途,因此配置授权属性时要考虑该用户是否需要某些属性。
本地用户的授权属性在用户组和本地用户视图下都可以配置,且本地用户视图下的配置优先级高于用户组视图下的配置。用户组的配置对组内所有本地用户生效。
· 密码管理属性
用户密码的安全属性,可用于对设备管理类本地用户的认证密码进行管理和控制。可设置的策略包括:密码老化时间、密码最小长度、密码组合策略、密码复杂度检查策略和用户登录尝试次数限制策略。
本地用户的密码管理属性在系统视图(具有全局性)、用户组视图和本地用户视图下都可以配置,其生效的优先级顺序由高到底依次为本地用户、用户组、全局。全局配置对所有本地用户生效,用户组的配置对组内所有本地用户生效。有关密码管理以及全局密码配置的详细介绍请参见“安全配置指导”中的“Password Control”。
本地用户配置任务如下:
(1) 配置本地用户属性
(2) (可选)配置用户组属性
配置设备管理类本地用户属性时,有以下配置限制和指导:
· 使能全局密码管理功能(通过命令password-control enable)后,设备上将不显示配置的本地用户密码。
· 授权属性和密码控制属性均可以在本地用户视图和用户组视图下配置,各视图下的配置优先级顺序从高到底依次为:本地用户视图-->用户组视图。
(1) 进入系统视图。
system-view
(2) 添加设备管理类本地用户,并进入设备管理类本地用户视图。
local-user user-name class manage
(3) 设置本地用户的密码。
password [ { hash | simple } string ]
可以不为本地用户设置密码。
(4) 设置本地用户可以使用的服务类型。
service-type { ftp | { ssh | telnet | terminal } * }
缺省情况下,本地用户不能使用任何服务类型。
(5) (可选)设置本地用户的状态。
state { active | block }
缺省情况下,本地用户处于活动状态,即允许该用户请求网络服务。
(6) (可选)设置使用当前本地用户名接入设备的最大用户数。
access-limit max-user-number
缺省情况下,不限制使用当前本地用户名接入的用户数。
由于FTP/SFTP/SCP用户不支持计费,因此FTP/SFTP/SCP用户不受此属性限制。
(7) (可选)设置本地用户的授权属性。
authorization-attribute { 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 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命令可以显示配置后本地用户及本地用户组的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除待审批来宾用户注册信息。
表1-3 本地用户及本地用户组显示和维护
操作 |
命令 |
显示本地用户的配置信息和在线用户数的统计信息 |
display local-user [ class manage | service-type { ftp | ssh | telnet | terminal } | state { active | block } | user-name user-name class manage ] |
显示本地用户组的相关配置 |
display user-group { all | name group-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扩展功能
RADIUS服务器探测功能是指,设备周期性发送探测报文探测RADIUS服务器是否可达:如果服务器不可达,则置服务器状态为block,如果服务器可达,则置服务器状态为active。该探测功能不依赖于实际用户的认证过程,无论是否有用户向RADIUS服务器发起认证,无论是否有用户在线,设备都会自动对指定的RADIUS服务器进行探测,便于及时获得该服务器的可达状态。
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 [ 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方案的从认证服务器。
在同一个方案中指定的主认证服务器和从认证服务器的IP地址、端口号和VPN参数不能完全相同,并且各从认证服务器的IP地址、端口号和VPN参数也不能完全相同。
(1) 进入系统视图。
system-view
(2) 进入RADIUS方案视图。
radius scheme radius-scheme-name
(3) 配置主RADIUS认证服务器。
primary authentication { 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 { 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方案的从计费服务器。
在同一个方案中指定的主计费服务器和从计费服务器的IP地址、端口号和VPN参数不能完全相同,并且各从计费服务器的IP地址、端口号和VPN参数也不能完全相同。
目前RADIUS不支持对FTP/SFTP/SCP用户进行计费。
(1) 进入系统视图。
system-view
(2) 进入RADIUS方案视图。
radius scheme radius-scheme-name
(3) 配置主RADIUS计费服务器。
primary accounting { 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 { 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 [ { ipv4-address | ipv6 ipv6-address } [ port-number | vpn-instance vpn-instance-name ] * ] { active | block }
¡ 设置从RADIUS计费服务器的状态。
state secondary accounting [ { ipv4-address | ipv6 ipv6-address } [ port-number | vpn-instance vpn-instance-name ] * ] { active | block }
缺省情况下,RADIUS服务器的状态为active。
接入用户通常以“userid@isp-name”的格式命名,“@”后面的部分为ISP域名,设备通过该域名决定将用户归于哪个ISP域。由于有些较早期的RADIUS服务器不能接受携带有ISP域名的用户名,因此就需要设备首先将用户名中携带的ISP域名去除后再传送给该类RADIUS服务器。通过设置发送给RADIUS服务器的用户名格式,就可以选择发送RADIUS服务器的用户名中是否要携带ISP域名,以及是否保持用户输入的原始用户名格式。
如果要在两个乃至两个以上的ISP域中引用相同的RADIUS方案,建议设置该RADIUS方案允许用户名中携带ISP域名,使得RADIUS服务器端可以根据ISP域名来区分不同的用户。
(1) 进入系统视图。
system-view
(2) 进入RADIUS方案视图。
radius scheme radius-scheme-name
(3) 设置发送给RADIUS服务器的用户名格式。
user-name-format { keep-original | with-domain | without-domain }
缺省情况下,发送给RADIUS服务器的用户名携带ISP域名。
接入模块发起的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 告警功能均处于关闭状态。
完成上述配置后,在任意视图下执行display命令可以显示配置后RADIUS的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,执行reset命令可以清除相关统计信息。
表1-4 RADIUS显示和维护
操作 |
命令 |
显示所有或指定RADIUS方案的配置信息 |
display radius scheme [ radius-scheme-name ] |
显示RADIUS报文的统计信息 |
display radius statistics |
清除RADIUS协议的统计信息 |
reset radius statistics |
HWTACACS配置任务如下:
(1) 创建HWTACACS方案
(2) 配置HWTACACS认证服务器
(3) 配置HWTACACS授权服务器
(4) 配置HWTACACS计费服务器
若配置HWTACACS服务器时未指定共享密钥,则可以通过本任务统一指定对所有认证/计费HWTACACS服务器生效的共享密钥。
若配置HWTACACS服务器时未指定所属的VPN,则可以通过本任务统一指定所有HWTACACS服务器所属的VPN。
(7) (可选)配置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方案的从认证服务器。
在同一个方案中指定的主认证服务器和从认证服务器的IP地址、端口号和VPN参数不能完全相同,并且各从认证服务器的IP地址、端口号和VPN参数也不能完全相同。
(1) 进入系统视图。
system-view
(2) 进入HWTACACS方案视图。
hwtacacs scheme hwtacacs-scheme-name
(3) 配置主HWTACACS认证服务器。
primary authentication { ipv4-address | ipv6 ipv6-address } [ port-number | key { cipher | simple } string | single-connection | vpn-instance vpn-instance-name ] *
缺省情况下,未配置主HWTACACS认证服务器。
(4) (可选)配置从HWTACACS认证服务器。
secondary authentication { 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方案的从授权服务器。
在同一个方案中指定的主授权服务器和从授权服务器的IP地址、端口号和VPN参数不能完全相同,并且各从授权服务器的IP地址、端口号和VPN参数也不能完全相同。
(1) 进入系统视图。
system-view
(2) 进入HWTACACS方案视图。
hwtacacs scheme hwtacacs-scheme-name
(3) 配置主HWTACACS授权服务器。
primary authorization { ipv4-address | ipv6 ipv6-address } [ port-number | key { cipher | simple } string | single-connection | vpn-instance vpn-instance-name ] *
缺省情况下,未配置主HWTACACS授权服务器。
(4) (可选)配置从HWTACACS授权服务器。
secondary authorization { 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方案的从计费服务器。
在同一个方案中指定的主计费服务器和从计费服务器的IP地址、端口号和VPN参数不能完全相同,并且各从计费服务器的IP地址、端口号和VPN参数也不能完全相同。
目前HWTACACS不支持对FTP/SFTP/SCP用户进行计费。
(1) 进入系统视图。
system-view
(2) 进入HWTACACS方案视图。
hwtacacs scheme hwtacacs-scheme-name
(3) 配置主HWTACACS计费服务器。
primary accounting { ipv4-address | ipv6 ipv6-address } [ port-number | key { cipher | simple } string | single-connection | vpn-instance vpn-instance-name ] *
缺省情况下,未配置主HWTACACS计费服务器。
(4) (可选)配置从HWTACACS计费服务器。
secondary accounting { 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服务器上通过IP地址来标识接入设备,并根据收到的HWTACACS报文的源IP地址是否与服务器所管理的接入设备的IP地址匹配,来决定是否处理来自该接入设备的认证、授权或计费请求。若HWTACACS服务器收到的HWTACACS认证或计费报文的源地址在所管理的接入设备IP地址范围内,则会进行后续的认证或计费处理,否则直接丢弃该报文。
设备发送HWTACACS报文时,根据以下顺序查找使用的源地址:
· 若当前所使用的HWTACACS方案中配置了发送HWTACACS报文使用源地址,则使用该地址。
· 否则,根据当前使用的服务器所属的VPN查找系统视图下通过hwtacacs nas-ip命令配置的私网源地址,对于公网服务器则直接查找该命令配置的公网源地址。
· 若系统视图下没有配置相应的源地址,则使用通过路由查找到的报文出接口地址。
发送给HWTACACS报文使用的源地址在系统视图和HWTACACS方案视图下均可以进行配置,系统视图下的配置将对所有HWTACACS方案生效,HWTACACS方案视图下的配置仅对本方案有效,并且具有高于前者的优先级。
为保证认证、授权和计费报文可被服务器正常接收并处理,接入设备上发送HWTACACS报文使用的源地址必须与HWTACACS服务器上指定的接入设备的IP地址保持一致。
通常,该地址为接入设备上与HWTACACS服务器路由可达的接口IP地址,为避免物理接口故障时从服务器返回的报文不可达,推荐使用Loopback接口地址为发送HWTACACS报文使用的源IP地址。但在一些特殊的组网环境中,例如在接入设备使用VRRP进行双机热备应用时,可以将该地址指定为VRRP上行链路所在备份组的虚拟IP地址。
(1) 进入系统视图。
system-view
(2) 设置设备发送HWTACACS报文使用的源地址。
hwtacacs nas-ip { ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ]
缺省情况下,未设置发送HWTACACS报文使用的源地址,设备将以发送报文的接口主IP地址作为源地址。
(1) 进入系统视图。
system-view
(2) 进入HWTACACS方案视图。
hwtacacs scheme hwtacacs-scheme-name
(3) 设置设备发送HWTACACS报文使用的源地址。
nas-ip { ipv4-address | ipv6 ipv6-address }
缺省情况下,使用系统视图下由命令hwtacacs nas-ip指定的源地址,若系统视图下未指定源地址,则使用发送HWTACACS报文的接口主IP地址。
接入用户通常以“userid@isp-name”的格式命名,“@”后面的部分为ISP域名,设备通过该域名决定将用户归于哪个ISP域的。由于有些HWTACACS服务器不能接受携带有ISP域名的用户名,因此就需要设备首先将用户名中携带的ISP域名去除后再传送给该类HWTACACS服务器。通过设置发送给HWTACACS服务器的用户名格式,就可以选择发送HWTACACS服务器的用户名中是否要携带ISP域名。
如果要在两个乃至两个以上的ISP域中引用相同的HWTACACS方案,建议设置该HWTACACS方案允许用户名中携带ISP域名,使得HWTACACS服务器端可以根据ISP域名来区分不同的用户。
(1) 进入系统视图。
system-view
(2) 进入HWTACACS方案视图。
hwtacacs scheme hwtacacs-scheme-name
(3) 设置发送给HWTACACS服务器的用户名格式。
user-name-format { keep-original | with-domain | without-domain }
缺省情况下,发送给HWTACACS服务器的用户名携带ISP域名。
完成上述配置后,在任意视图下执行display命令可以显示配置后HWTACACS的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,执行reset命令可以清除相关统计信息。
表1-5 HWTACACS显示和维护
操作 |
命令 |
查看所有或指定HWTACACS方案的配置信息或统计信息 |
display hwtacacs scheme [ hwtacacs-scheme-name [ statistics ] ] |
清除HWTACACS协议的统计信息 |
reset hwtacacs statistics { accounting | all | authentication | authorization } |
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属性映射表。
完成上述配置后,在任意视图下执行display命令可以显示配置后LDAP的运行情况,通过查看显示信息验证配置的效果。
表1-6 LDAP显示和维护
操作 |
命令 |
查看所有或指定LDAP方案的配置信息 |
display ldap scheme [ ldap-scheme-name ] |
在多ISP的应用环境中,不同ISP域的用户有可能接入同一台设备。而且各ISP用户的用户属性(例如用户名及密码构成、服务类型/权限等)有可能不相同,因此有必要通过设置ISP域把它们区分开,并为每个ISP域单独配置一套认证、授权、计费方法及ISP域的相关属性。
对于设备来说,每个接入用户都属于一个ISP域。系统中最多可以配置128个ISP域,包括一个系统缺省存在的名称为system的ISP域。如果某个用户在登录时没有提供ISP域名,系统将把它归于缺省的ISP域。系统缺省的ISP域可以手工修改为一个指定的ISP域;如果用户所属的ISP域下未应用任何认证、授权、计费方法,系统将使用缺省的认证、授权、计费方法,分别为本地认证、本地授权和本地计费。
用户认证时,设备将按照如下先后顺序为其选择认证域:接入模块指定的认证域-->用户名中指定的ISP域-->系统缺省的ISP域。
需要注意的是:
· 一个ISP域被配置为缺省的ISP域后,将不能够被删除,必须首先使用命令undo domain default enable将其修改为非缺省ISP域,然后才可以被删除。
· 系统缺省存在的system域只能被修改,不能被删除。
(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 ][ offline ] }
缺省情况下,当前ISP域处于活动状态,即允许任何属于该域的用户请求网络服务。
state block time-range name time-range-name
缺省情况下,未配置ISP域处于阻塞的时间段。
用户认证成功之后,对于User Group授权属性,用户优先采用服务器下发的属性值,其次采用ISP域下配置的属性值。
授权用户组:用户认证成功后,将继承该用户组中的所有属性。
(1) 进入系统视图。
system-view
(2) 进入ISP域视图。
domain name isp-name
(3) 设置当前ISP域下的用户授权属性。
authorization-attribute user-group user-group-name
缺省情况下,无授权属性。
在一个ISP域视图下,将任意一个用户组配置为负载分担用户组后,该域的用户组负载分担功能将处于开启状态。一个ISP域中,可以配置多个负载分担用户组,采用该域认证上线的用户将会加入到当前用户数最少的负载分担用户组中。
负载分担用户组用于配合业务模块实现分担用户业务流量的目的。
一个ISP域视图下最多配置32个负载分担用户组。
指定的用户组必须已经存在,否则负载分担用户组的配置不生效。
用户最终加入的用户组与实际配置相关,各类型用户组的生效先后顺序依次为:服务器下发的授权用户组、ISP域中配置的负载分担用户组、ISP域中配置的授权用户组。
(1) 进入系统视图。
system-view
(2) 进入ISP域视图。
domain name isp-name
(3) 配置负载分担用户组,且开启用户组负载分担功能。
load-sharing user-group group-name
缺省情况下,未配置负载分担用户组,用户组负载分担功能处于关闭状态。
配置ISP域的AAA认证方法时,需要注意的是:
· 当选择了RADIUS协议的认证方案以及非RADIUS协议的授权方案时,AAA只接受RADIUS服务器的认证结果,RADIUS授权的信息虽然在认证成功回应的报文中携带,但在认证回应的处理流程中不会被处理。
· 当使用HWTACACS方案进行用户角色切换认证时,系统使用用户输入的用户角色切换用户名进行角色切换认证;当使用RADIUS方案进行用户角色切换认证时,系统使用RADIUS服务器上配置的“$enabn$”形式的用户名进行用户角色切换认证,其中n为用户希望切换到的用户角色level-n中的n。
· 当采用本地认证方案为主认证方案,且配置了备选认证方案时,仅当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 [ radius-scheme radius-scheme-name | hwtacacs-scheme hwtacacs-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 [ radius-scheme radius-scheme-name | hwtacacs-scheme hwtacacs-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授权方法时,需要注意的是:
· 目前设备暂不支持使用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 [ radius-scheme radius-scheme-name | hwtacacs-scheme hwtacacs-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 [ radius-scheme radius-scheme-name | hwtacacs-scheme hwtacacs-scheme-name ] * [ none ] | none | radius-scheme radius-scheme-name [ hwtacacs-scheme hwtacacs-scheme-name ] [ local ] [ none ] }
缺省情况下,login用户采用缺省的授权方法。
配置ISP域的AAA认证方法时,需要注意的是:
· 不支持对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 [ radius-scheme radius-scheme-name | hwtacacs-scheme hwtacacs-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 [ radius-scheme radius-scheme-name | hwtacacs-scheme hwtacacs-scheme-name ] * [ none ] | none | radius-scheme radius-scheme-name [ hwtacacs-scheme hwtacacs-scheme-name ] [ local ] [ none ] }
缺省情况下,login用户采用缺省的计费方法。
(5) (可选)配置扩展计费策略。
¡ 配置用户计费开始失败策略。
accounting start-fail { offline | online }
缺省情况下,如果用户计费开始失败,则允许用户保持在线状态。
¡ 配置用户计费更新失败策略。
accounting update-fail { [ max-times times ] offline | online }
缺省情况下,如果用户计费更新失败,允许用户保持在线状态。
¡ 配置用户计费流量配额耗尽策略。
accounting quota-out { offline | online | redirect-url url-string [ stop-accounting ] }
缺省情况下,用户的计费流量配额耗尽后将被强制下线。
¡ 配置双协议栈用户的计费方式。
accounting dual-stack { merge | separate }
缺省情况下,双协议栈用户的计费方式为统一计费。
完成上述配置后,在任意视图下执行display命令可以显示配置后AAA的运行情况,通过查看显示信息验证配置的效果。
表1-7 ISP域显示和维护
操作 |
命令 |
显示所有或指定ISP域的配置信息 |
display domain [ isp-name ] |
通过配置同时在线的最大用户连接数,可以限制采用指定登录方式(FTP、SSH、Telnet等)同时接入设备的在线用户数。
该配置对于通过任何一种认证方式(none、password或者scheme)接入设备的用户都生效。
(1) 进入系统视图。
system-view
(2) 配置同时在线的最大用户连接数。
aaa session-limit { ftp | ssh | telnet } max-sessions
缺省情况下,最大用户连接数为32。
用户进行RADIUS认证时,系统会获取设备的NAS-ID来设置RADIUS报文中的NAS-Identifier属性,该属性用于向RADIUS服务器标识用户的接入位置。
(1) ISP域视图下的NAS-ID
若ISP域视图下配置不存在,则使用设备的名称(由sysname命令指定)作为设备的NAS-ID。
(1) 进入系统视图。
system-view
(2) 进入ISP域视图。
domain name isp-name
(3) 在ISP域视图下配置NAS-ID。
nas-id nas-identifier
缺省情况下,未配置ISP域下的NAS ID。
RADIUS计费过程使用Acct-Session-Id属性作为用户的计费ID。设备使用系统时间、随机数以及设备ID为每个在线用户生成一个唯一的Acct-Session-Id值。
在多机备份环境中,多台设备使用相同的RADIUS计费服务器时,为了避免不同设备为用户生成的计费ID出现小概率重复,影响计费的准确性,建议使用本命令为不同设备配置不同的设备ID。
(1) 进入系统视图。
system-view
(2) 配置设备ID。
aaa device-id device-id
缺省情况下,设备ID为0。
用户上下线记录功能是指当接入用户上线失败、正常或异常下线后,设备记录并保存相关用户信息,以便管理员进行用户管理以及对用户上下线故障进行快速定位。关闭本功能后,系统将停止记录用户上下线信息,可提高当前可用内存容量,但管理员将看不到用户上下线信息。
本功能仅支持对Login接入用户的上下线信息进行记录。
(1) 进入系统视图。
system-view
(2) 开启用户上线失败记录功能。
aaa online-fail-record enable
缺省情况下,用户上线失败记录功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 开启用户下线记录功能。
aaa offline-record enable
缺省情况下,用户下线记录功能处于关闭状态。
只有本功能处于开启状态,用户正常下线记录功能和用户异常下线记录功能才能生效。
(3) 开启用户正常下线记录功能。
aaa normal-offline-record enable
缺省情况下,用户正常下线记录功能处于关闭状态。
(4) 开启用户异常下线记录功能。
aaa abnormal-offline-record enable
缺省情况下,用户异常下线记录功能处于关闭状态。
完成上述配置后,在任意视图下执行display命令可以显示用户上下线记录。
在用户视图下执行reset命令可以清除用户上下线记录。
表1-8 用户上下线记录显示和维护
操作 |
命令 |
显示用户异常下线记录 |
display aaa abnormal-offline-record { access-type login | chassis chassis-number slot slot-number | domain domain-name | interface interface-type interface-number | { ip ipv4-address | ipv6 ipv6-address } | mac-address mac-address | svlan svlan-id [ cvlan cvlan-id ] | username user-name [ fuzzy-match ] } * [ brief | count count ] display aaa abnormal-offline-record offline-reason { quota-out | realtime-acct-fail | session-timeout | user-detect-fail } [ brief ] display aaa abnormal-offline-record time begin-time end-time [ date begin-date end-date ] [ brief ] display aaa abnormal-offline-record |
显示用户正常下线记录 |
display aaa normal-offline-record { access-type login | chassis chassis-number slot slot-number | domain domain-name | interface interface-type interface-number | { ip ipv4-address | ipv6 ipv6-address } | mac-address mac-address | s-vlan svlan-id [ c-vlan cvlan-id ] | username user-name [ fuzzy-match ] } * [ brief | count count ] display aaa normal-offline-record time begin-time end-time [ date begin-date end-date ] [ brief ] display aaa normal-offline-record |
显示用户下线记录 |
display aaa offline-record { access-type login | chassis chassis-number slot slot-number | domain domain-name | interface interface-type interface-number | { ip ipv4-address | ipv6 ipv6-address } | mac-address mac-address | s-vlan svlan-id [ c-vlan cvlan-id ] | username user-name [ fuzzy-match ] } * [ brief | count count ] display aaa offline-record time begin-time end-time [ date begin-date end-date ] [ brief ] display aaa offline-record |
显示用户上线失败记录 |
display aaa online-fail-record { access-type login | chassis chassis-number slot slot-number | domain domain-name | interface interface-type interface-number | { ip ipv4-address | ipv6 ipv6-address } | mac-address mac-address | s-vlan svlan-id [ c-vlan cvlan-id ] | username user-name [ fuzzy-match ] } * [ brief | count count ] display aaa online-fail-record time begin-time end-time [ date begin-date end-date ] [ brief ] display aaa online-fail-record |
清除当前所有用户异常下线记录 |
reset aaa abnormal-offline-record |
清除当前所有用户正常下线记录 |
reset aaa normal-offline-record |
清除当前所有用户下线记录 |
reset aaa offline-record |
清除当前所有用户上线失败记录 |
reset aaa online-fail-record |
如图1-11所示,SSH用户主机与Router直接相连,Router与一台RADIUS服务器相连,需要实现使用RADIUS服务器对登录Router的SSH用户进行认证和授权。
· 由一台iMC服务器(IP地址为10.1.1.1/24)担当认证/授权RADIUS服务器的职责;
· Router与RADIUS服务器交互报文时使用的共享密钥为expert,认证/授权、计费的端口号分别为1812和1813;
· Router向RADIUS服务器发送的用户名携带域名;
· SSH用户登录Router时使用RADIUS服务器上配置的用户名hello@bbb以及密码进行认证,认证通过后具有缺省的用户角色network-operator。
图1-11 SSH用户RADIUS认证/授权配置组网图
(1) 配置RADIUS服务器(iMC PLAT 5.0)
下面以iMC为例(使用iMC版本为:iMC PLAT 5.0(E0101)、iMC UAM 5.0(E0101)),说明RADIUS服务器的基本配置。
# 增加接入设备。
登录进入iMC管理平台,选择“业务”页签,单击导航树中的[接入业务/接入设备管理/接入设备配置]菜单项,进入接入设备配置页面,在该页面中单击“增加”按钮,进入增加接入设备页面。
a. 设置与Router交互报文时使用的认证、计费共享密钥为“expert”;
b. 设置认证及计费的端口号分别为“1812”和“1813”;
c. 选择业务类型为“设备管理业务”;
d. 选择接入设备类型为“H3C”;
e. 选择或手工增加接入设备,添加IP地址为10.1.1.2的接入设备;
f. 其它参数采用缺省值,并单击<确定>按钮完成操作。
添加的接入设备IP地址要与Router发送RADIUS报文的源地址保持一致。缺省情况下,设备发送RADIUS报文的源地址是发送RADIUS报文的接口IP地址。
· 若设备上通过命令nas-ip或者radius nas-ip指定了发送RADIUS报文的源地址,则此处的接入设备IP地址就需要修改并与指定源地址保持一致。
· 若设备使用缺省的发送RADIUS报文的源地址,例如,本例中为接口GigabitEthernet1/2/0/2的IP地址10.1.1.2,则此处接入设备IP地址就选择10.1.1.2。
图1-12 增加接入设备
# 增加设备管理用户。
选择“用户”页签,单击导航树中的[接入用户视图/设备管理用户]菜单项,进入设备管理用户列表页面,在该页面中单击<增加>按钮,进入增加设备管理用户页面。
g. 输入用户名“hello@bbb”和密码;
h. 选择服务类型为“SSH”;
i. 添加所管理设备的IP地址,IP地址范围为“10.1.1.0~10.1.1.255”;
j. 单击<确定>按钮完成操作。
添加的所管理设备的IP地址范围要包含添加的接入设备的IP地址。
图1-13 增加设备管理用户
(2) 配置Router
# 配置各接口的IP地址。(略)
# 创建本地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
# 使能缺省用户角色授权功能,使得认证通过后的SSH用户具有缺省的用户角色network-operator。
[Router] role default-role enable
# 创建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-operator所拥有的命令行执行权限。
如图1-14所示,配置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所拥有的命令行执行权限。
如图1-15所示,配置Router实现使用HWTACACS服务器对登录Router的SSH用户进行认证、授权、计费。
· 由一台HWTACACS服务器担当认证、授权、计费服务器的职责,服务器IP地址为10.1.1.1/24。
· Router与认证、授权、计费HWTACACS服务器交互报文时的共享密钥均为expert,向HWTACACS服务器发送的用户名不带域名。
· 认证通过后的SSH用户具有缺省的用户角色network-operator。
图1-15 SSH用户HWTACACS认证、授权和计费配置组网图
(1) 配置HWTACACS服务器
# 在HWTACACS服务器上设置与Router交互报文时的共享密钥为expert;添加SSH用户名及密码。(略)
(2) 配置Router
# 配置各接口的IP地址。(略)
# 创建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所拥有的命令行执行权限。
如图1-16所示,配置Router实现使用LDAP服务器对登录Router的SSH用户进行认证,且认证通过后具有缺省的用户角色level-0。
· 一台LDAP认证服务器与Router相连,服务器IP地址为10.1.1.1,服务器域名为ldap.com。
· 在LDAP服务器上设置管理员administrator的密码为admin!123456。
· 在LDAP服务器上添加用户名为aaa的用户,密码为ldap!123456。
图1-16 SSH用户LDAP认证配置组网图
(1) 配置LDAP服务器
本文以Microsoft Windows 2003 Server的Active Directory为例,说明该例中LDAP服务器的基本配置。
# 添加用户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。
# 将用户aaa加入Users组。
g. 在Active Directory用户管理界面的左侧导航树中,点击ldap.com节点下的“Users”按钮;
h. 在右侧的Users信息框中右键单击用户aaa,选择“属性”项;
i. 在弹出的[aaa属性]对话框中选择“隶属于”页签,并单击<添加(D)...>按钮。
图1-19 修改用户属性
j. 在弹出的[选择组]对话框中的可编辑区域框中输入对象名称“Users”,单击<确定>,完成用户aaa添加到Users组。
图1-20 添加用户aaa到用户组Users
# 完成用户aaa的添加之后,还需要配置管理员用户administrator的密码为admin!123456。
k. 在右侧的Users信息框中右键单击管理员用户administrator,选择“设置密码(S)...”项;
l. 在弹出的密码添加对话框中设置管理员密码,详细过程略。
(2) 配置Router
# 配置各接口的IP地址。(略)
# 生成本地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) 用户名不是“userid@isp-name”的形式,或设备上没有正确配置用于认证该用户的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) 用户名不是“userid@isp-name”的形式,或设备上没有正确配置用于认证该用户的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-9所示。
表1-9 常见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-10 常见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 |
会话结束之前,给用户提供服务的最大时间,即用户的最大可用时长 |
28 |
Idle-Timeout |
会话结束之前,允许用户持续空闲的最大时间,即用户的闲置切断时间 |
31 |
Calling-Station-Id |
NAS用于向Server告知标识用户的号码,在我司设备提供的lan-access业务中,该字段填充的是用户的MAC地址,采用的“HHHH-HHHH-HHHH”格式封装 |
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 |
用字符串来描述的认证端口信息 |
表1-11列出的RADIUS扩展属性为所有产品可支持属性的合集,具体产品支持情况有所不同。
表1-11 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策略名称 |
106 |
Up-Priority |
上行报文的用户优先级 |
107 |
Down-Priority |
下行报文的用户优先级 |
135 |
Client-Primary-DNS |
首选DNS服务器地址 |
136 |
Client-Secondary-DNS |
备用DNS服务器地址 |
140 |
User_Group |
SSL VPN用户认证成功后下发的用户组,一个用户可以属于多个用户组,多个用户组之间使用分号格开。本属性用于与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 |
自定义的属性对,可支持以下类型: · 下发的动态WEP密钥,格式为leap:session-key=xxx · 下发的Voice VLAN,格式为device-traffic-class=voice · 下发的用户角色,格式为shell:role=xxx · 下发的EDSG业务策略列表,格式为edsg-policy:activelist=policyname1;policyname2;…;policynameN · 下发的待取消的EDSG业务策略列表,格式为edsg-policy:deactivelist=policyname1;policyname2;…;policynameN · 下发的携带用户名的EDSG业务策略,格式为edsg-policy:username=[policyname]username · 下发的携带用户密码的EDSG业务策略,格式为edsg-policy:password=[policyname]password |
215 |
Accounting-Level |
ITA流量计费级别,取值范围为1~8 |
216 |
Ita-Policy |
ITA(Intelligent Target Accounting)策略名称 |
230 |
Nas-Port |
用户接入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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!