02-AAA配置
本章节下载: 02-AAA配置 (1.21 MB)
1.4.12 配置发送给RADIUS服务器的用户名格式和数据统计单位
1.4.18 配置RADIUS Attribute 5的格式
1.4.19 配置RADIUS Attribute 15的检查方式
1.4.20 开启使用RADIUS Attribute 17支持在线修改用户密码功能
1.4.21 配置RADIUS Attribute 25的CAR参数解析功能
1.4.22 配置RADIUS Attribute 31中的MAC地址格式
1.4.23 配置RADIUS Attribute 87的格式
1.4.24 配置RADIUS Remanent_Volume属性的流量单位
1.4.25 配置Vendor ID为2011的RADIUS服务器版本号
1.4.26 配置设备使用的Acct-Session-Id属性模式
1.4.27 配置RADIUS扩展属性中携带DHCP Option信息
1.4.29 配置RADIUS服务器都处于block状态后的请求动作
1.4.31 配置用户下线时设备强制发送RADIUS计费停止报文
1.4.34 配置RADIUS的accounting-on功能
1.4.35 配置RADIUS的session control功能
1.5.10 配置发送给HWTACACS服务器的用户名格式和数据统计单位
1.5.13 配置HWTACACS服务器都处于block状态后的请求动作
1.8.3 设置设备上传到服务器的用户在线时间中保留闲置切断时间
1.8.7 配置PPPoE/L2TP用户主业务依赖的IP地址类型
1.8.8 配置PPPoE/L2TP用户等待分配IPv6地址的最大时长
1.20.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,表示子属性的内容。
H3C设备支持的私有RADIUS扩展属性的Vendor-ID为25506,属性的具体介绍请参见“1.20.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客户端向HWTACACS服务器发送认证持续报文,报文中携带了登录密码。
(5) 如果认证成功,HWTACACS服务器发送认证回应报文,指示用户通过认证。
(6) HWTACACS客户端向HWTACACS服务器发送授权请求报文。
(7) 如果授权成功,HWTACACS服务器发送授权回应报文,指示用户通过授权。
(8) HWTACACS客户端收到授权成功报文,向用户输出设备的配置界面,允许用户登录。
(9) HWTACACS客户端向HWTACACS服务器发送计费开始报文。
(10) HWTACACS服务器发送计费回应报文,指示计费开始报文已经收到。
(11) 用户请求断开连接。
(12) HWTACACS客户端向HWTACACS服务器发送计费结束报文。
(13) 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授权的基本消息交互流程
(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将用户划分为以下几个类型:
· lan-access用户:LAN接入用户,如802.1X认证、MAC地址认证用户。
· login用户:登录设备用户,如SSH、Telnet、FTP、终端接入用户(即从Console口、AUX口、Async口登录的用户)。
· ADVPN接入用户。
· X.25 PAD接入用户。
· Portal接入用户。
· PPP接入用户。
· IPoE接入用户:IP接入用户,比如二/三层专线,数字机顶盒接入的用户。
· IKE用户:使用IKE扩展认证的用户。
· HTTP/HTTPS用户:使用HTTP或HTTPS服务登录设备的用户。
· SSL VPN接入用户。
· ONU(Optical Network Unit,光网络单元)用户:专指接入OLT(Optial Line Terminal,光线路终端)的ONU设备。
· 5G用户:移动接入5G核心网络的终端用户。
对于某些接入方式,用户最终所属的ISP域可由相应的认证模块(例如802.1X)提供命令行来指定,用于满足一定的用户认证管理策略。
在具体实现中,一个ISP域对应着设备上一套实现AAA的配置策略,它们是管理员针对该域用户制定的一套认证、授权、计费方法,可根据用户的接入特征以及不同的安全需求组合使用。
图1-10 认证、授权、计费方法配置逻辑图
AAA支持以下认证方法:
· 不认证:对用户非常信任,不对其进行合法性检查,一般情况下不采用这种方法。
· 本地认证:认证过程在接入设备上完成,用户信息(包括用户名、密码和各种属性)配置在接入设备上。优点是速度快,可以降低运营成本;缺点是存储信息量受设备硬件条件限制。
· 远端认证:认证过程在接入设备和远端的服务器之间完成,接入设备和远端服务器之间通过RADIUS、HWTACACS或LDAP协议通信。优点是用户信息集中在服务器上统一管理,可实现大容量、高可靠性、支持多设备的集中式统一认证。当远端服务器无效时,可配置备选认证方式完成认证。
AAA支持以下授权方法:
· 不授权:接入设备不请求授权信息,不对用户可以使用的操作以及用户允许使用的网络服务进行授权。此时,认证通过的login用户只有系统给予的缺省用户角色level-0,其中FTP/SFTP/SCP用户的工作目录是设备的根目录,但并无访问权限;认证通过的非login用户,可直接访问网络。关于用户角色level-0的详细介绍请参见“基础配置指导”中的“RBAC”。
· 本地授权:授权过程在接入设备上进行,根据接入设备上为本地用户配置的相关属性进行授权。
· 远端授权:授权过程在接入设备和远端服务器之间完成。RADIUS协议的认证和授权是绑定在一起的,不能单独使用RADIUS进行授权。RADIUS认证成功后,才能进行授权,RADIUS授权信息携带在认证回应报文中下发给用户。HWTACACS/LDAP协议的授权与认证相分离,在认证成功后,授权信息通过授权报文进行交互。当远端服务器无效时,可配置备选授权方式完成授权。
AAA支持以下计费方法:
· 不计费:不对用户计费。
· 本地计费:计费过程在接入设备上完成,实现了本地用户连接数的统计和限制,并没有实际的费用统计功能。
· 远端计费:计费过程在接入设备和远端的服务器之间完成。当远端服务器无效时,可配置备选计费方式完成计费。
ISP域下可配置多种授权属性,域下配置的授权属性比服务器下发的授权属性优先级低。用户认证成功之后,如果域下配置的授权属性与服务器授权的属性冲突,则服务器下发的授权属性生效;如果域下配置的授权属性不与服务器授权的属性冲突,则域下配置的授权属性生效。这种互相补充的授权方式,使得基于域的用户授权行为更为灵活,而不必完全依赖服务器提供的授权。
特别的,除了PPP、IPoE、Portal用户之外,在服务器或ISP域授权了用户组,且该用户组下配置了授权属性的情况下,有如下注意事项:
· 若用户组下配置的授权属性和服务器或ISP域下配置的授权属性类型相同,则服务器或ISP域下配置的授权属性生效。
· 若用户组下配置的授权属性和服务器或ISP域下配置的授权属性类型不同,则用户组、服务器和ISP域下的授权属性均生效。
对于login用户,AAA还可以对其提供以下服务,用于提高对设备操作的安全性:
· 命令行授权:用户执行的每一条命令都需要接受授权服务器的检查,只有授权成功的命令才被允许执行。关于命令行授权的详细介绍请参考“基础配置指导”中的“对登录用户的控制”。
· 命令行计费:若未开启命令行授权功能,则计费服务器对用户执行过的所有有效命令进行记录;若开启了命令行授权功能,则计费服务器仅对授权通过的命令进行记录。关于命令行计费的详细介绍请参考“基础配置指导”中的“对登录用户的控制”。
· 用户角色切换认证:在不退出当前登录、不断开当前连接的前提下,用户将当前的用户角色切换为其它用户角色时,只有通过服务器的认证,该切换操作才被允许。关于用户角色切换的详细介绍请参考“基础配置指导”中的“RBAC”。
AAA一键诊断功能用于诊断AAA模块的功能是否运行正常,例如诊断用户登录异常、本地用户密码控制异常、用户上/下线异常等,帮助用户定位AAA功能异常。关于AAA一键诊断功能的详细描述和配置请参见“智能运维配置指导”中的“一键诊断”。
与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
¡ 配置连接记录策略
当选择使用本地认证、本地授权、本地计费方法对用户进行认证、授权或计费时,应在设备上创建本地用户并配置相关属性。
所谓本地用户,是指在本地设备上设置的一组用户属性的集合。该集合以用户名和用户类别为用户的唯一标识。本地用户分为两类,一类是设备管理用户;另一类是网络接入用户。设备管理用户供设备管理员登录设备使用,网络接入用户供通过设备访问网络服务的用户使用。
网络接入用户中还存在一种来宾用户,供临时接入网络的访客使用。来宾用户仅支持lan-access和Portal服务。
为使某个请求网络服务的用户可以通过本地认证,需要在设备上的本地用户数据库中添加相应的表项。具体步骤是,创建一个本地用户并进入本地用户视图,然后在本地用户视图下配置相应的用户属性,可配置的用户属性包括:
· 描述信息
· 服务类型
用户可使用的网络服务类型。该属性是本地认证的检测项,如果没有用户可以使用的服务类型,则该用户无法通过认证。
· 用户状态
用于指示是否允许该用户请求网络服务器,包括active和block两种状态。active表示允许该用户请求网络服务,block表示禁止该用户请求网络服务。
· 最大用户数
使用当前用户名接入设备的最大用户数目。若当前该用户名的接入用户数已达最大值,则使用该用户名的新用户将被禁止接入。
· 所属的用户组
每一个本地用户都属于一个本地用户组,并继承组中的所有属性(密码管理属性和用户授权属性)。关于本地用户组的介绍和配置请参见“1.3.5 配置用户组属性”。
· 所属身份识别用户组
本地用户加入身份识别用户组后,将成为该组的成员,接受基于组的用户身份识别业务处理。关于身份识别用户组的介绍和配置请参见“安全配置指导”中的“用户身份识别与管理”。
· 绑定属性
用户认证时需要检测的属性,用于限制接入用户的范围。若用户的实际属性与设置的绑定属性不匹配,则不能通过认证,因此在配置绑定属性时要考虑该用户是否需要绑定某些属性。
· 用户授权属性
用户认证通过后,接入设备给用户下发授权属性。由于可配置的授权属性都有其明确的使用环境和用途,因此配置授权属性时要考虑该用户是否需要某些属性。例如,PPP接入用户不需要授权的目录,因此就不要设置PPP用户的工作目录属性。
本地用户的授权属性在用户组和本地用户视图下都可以配置,且本地用户视图下的配置优先级高于用户组视图下的配置。用户组的配置对组内所有本地用户生效。
· 密码管理属性
用户密码的安全属性,可用于对本地用户的认证密码进行管理和控制。可设置的策略包括:密码老化时间、密码最小长度、密码组合策略、密码复杂度检查策略和用户登录尝试次数限制策略。
本地用户的密码管理属性在系统视图(具有全局性)、用户组视图和本地用户视图下都可以配置,其生效的优先级顺序由高到低依次为本地用户、用户组、全局。全局配置对所有本地用户生效,用户组的配置对组内所有本地用户生效。有关密码管理以及全局密码配置的详细介绍请参见“用户接入与认证配置指导”中的“Password Control”。
· 有效期
网络接入类本地用户在有效期内才能认证成功。
本地用户配置任务如下:
(1) 配置本地用户属性
(2) (可选)配置用户组属性
(3) (可选)批量配置本地用户
(4) (可选)配置本地用户过期自动删除功能
(5) (可选)配置本地用户告警功能
开启全局密码管理功能(通过命令password-control enable)后,设备上将不显示配置的本地用户密码,也不会将该密码保存在当前配置中。如果关闭了全局密码管理功能,已配置的密码将恢复在当前配置中。当前配置可通过display current-configuration命令查看。
授权属性和密码控制属性均可以在本地用户视图和用户组视图下配置,各视图下的配置优先级顺序从高到低依次为:本地用户视图-->用户组视图。
(1) 进入系统视图。
system-view
(2) 添加设备管理类本地用户,并进入设备管理类本地用户视图。
local-user user-name [ class manage [ copy copied-user-name [ password { hash | simple } string ] ] ]
(3) 设置本地用户的密码。
password [ { hash | simple } string ]
可以不为本地用户设置密码。为提高用户账户的安全性,建议设置本地用户密码。
(4) 设置本地用户可以使用的服务类型。
service-type { ftp | { http | https | pad | 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 enable
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。
开启网络接入类全局密码管理功能(通过命令password-control enable network-class)后,设备上将不显示配置的本地用户密码,也不会将该密码保存在当前配置中。如果关闭了网络接入类全局密码管理功能,已配置的密码将恢复在当前配置中。当前配置可通过display current-configuration命令查看。
授权属性和密码控制属性均可以在本地用户视图和用户组视图下配置,各视图下的配置优先级顺序从高到低依次为:本地用户视图-->用户组视图。
在绑定接口属性时要考虑绑定接口类型是否合理。对于不同接入类型的用户,请按照如下方式进行绑定接口属性的配置:
· 802.1X用户:配置绑定的接口为开启802.1X的二层以太网接口、二层聚合接口。
· MAC地址认证用户:配置绑定的接口为开启MAC地址认证的二层以太网接口、二层聚合接口。
· Web认证用户:配置绑定的接口为开启Web认证的二层以太网接口。
· Portal用户:若使能Portal的接口为VLAN接口,且没有通过portal roaming enable命令配置Portal用户漫游功能,则配置绑定的接口为用户实际接入的二层以太网接口;其它情况下,配置绑定的接口均为使能Portal的接口。
(1) 进入系统视图。
system-view
(2) 添加网络接入类本地用户,并进入网络接入类本地用户视图。
local-user user-name class network
(3) (可选)设置本地用户的密码。
password { cipher | simple } string
(4) (可选)设置本地用户的描述信息。
description text
缺省情况下,未配置本地用户的描述信息。
(5) 设置本地用户可以使用的服务类型。
service-type { advpn | ike | ipoe | lan-access | onu | portal | ppp | sslvpn }
缺省情况下,本地用户不能使用任何服务类型。
(6) (可选)设置本地用户的状态。
state { active | block }
缺省情况下,本地用户处于活动状态,即允许该用户请求网络服务。
(7) (可选)设置使用当前本地用户名接入设备的最大用户数。
access-limit max-user-number
缺省情况下,不限制使用当前本地用户名接入的用户数。
(8) (可选)设置本地用户的绑定属性。
bind-attribute { call-number call-number [ : subcall-number ] | ip ip-address | location interface interface-type interface-number | mac mac-address | vlan vlan-id } *
缺省情况下,未设置本地用户的任何绑定属性。
(9) (可选)设置本地用户的授权属性。
authorization-attribute { acl acl-number | callback-number callback-number | idle-cut minutes | ip ipv4-address | ip-pool ipv4-pool-name | ipv6 ipv6-address | ipv6-pool ipv6-pool-name | ipv6-prefix ipv6-prefix prefix-length | { primary-dns | secondary-dns } { ip ipv4-address | ipv6 ipv6-address } | session-group-profile session-group-profile-name | session-timeout minutes | subscriber-id subscriber-id | sslvpn-policy-group group-name | url url-string | user-group user-group-name | user-profile profile-name | vlan vlan-id | vpn-instance vpn-instance-name | wlan-vlan wlan-vlan-id | wlan-vlan-group wlan-vlan-group-name } *
缺省情况下,本地用户无授权属性。
(10) (可选)设置网络接入类本地用户的密码管理属性。请至少选择其中一项进行配置。
¡ 设置密码最小长度。
password-control length length
¡ 设置密码组合策略。
password-control composition type-number type-number [ type-length type-length ]
¡ 设置密码的复杂度检查策略。
password-control complexity { same-character | user-name } check
缺省情况下,采用本地用户所属用户组的密码管理策略。
(11) (可选)设置本地用户所属的用户组。
group group-name
缺省情况下,本地用户属于用户组system。
(12) (可选)将网络接入类本地用户加入身份识别用户组。
identity-group group-name
缺省情况下,本地用户未加入身份识别用户组。
一个用户可以加入多个身份识别用户组。将用户成功加入了某身份识别用户组,系统会自动在该用户组视图下添加该用户为身份识别成员。
(13) (可选)设置本地用户的有效期。
validity-datetime { from start-date start-time to expiration-date expiration-time | from start-date start-time | to expiration-date expiration-time }
为了简化本地用户的配置,增强本地用户的可管理性,引入了用户组的概念。用户组是一个本地用户属性的集合,某些需要集中管理的属性可在用户组中统一配置和管理,用户组内的所有本地用户都可以继承这些属性。
如果希望对无线用户基于用户组进行业务隔离,则可以为其授权用户组,并在用户组视图下配置用户组隔离策略:
· 组内隔离:该组内用户之间的二/三层报文不能互通。
· 组间隔离:该组的用户不能与其它组的用户互访。
(1) 进入系统视图。
system-view
(2) 创建用户组,并进入用户组视图。
user-group group-name
缺省情况下,存在一个用户组,名称为system。
(3) 设置用户组的授权属性。
authorization-attribute { acl acl-number | callback-number callback-number | idle-cut minutes | ip-pool ipv4-pool-name | ipv6-pool ipv6-pool-name | ipv6-prefix ipv6-prefix prefix-length | { primary-dns | secondary-dns } { ip ipv4-address | ipv6 ipv6-address } | session-group-profile session-group-profile-name | session-timeout minutes | subscriber-id subscriber-id | sslvpn-policy-group group-name | url url-string | user-profile profile-name | vlan vlan-id | vpn-instance vpn-instance-name | work-directory directory-name } *
缺省情况下,未设置用户组的授权属性。
(4) 配置基于终端类型的授权属性。
byod authorization device-type type-name { acl acl-number | callback-number callback-number | idle-cut minutes | ip-pool ipv4-pool-name | ipv6-pool ipv6-pool-name | ipv6-prefix ipv6-prefix prefix-length | { primary-dns | secondary-dns } { ip ipv4-address | ipv6 ipv6-address } | session-timeout minutes | url url-string | user-profile profile-name | vlan vlan-id | vpn-instance vpn-instance-name } *
缺省情况下,未配置基于终端类型的授权属性。
该授权属性用于配合本地用户的BYOD授权使用,且仅对网络接入类的本地用户生效。
(5) (可选)设置用户组的密码管理属性。请至少选择其中一项进行配置。
¡ 请依次执行以下命令,开启密码老化管理功能并设置密码老化时间。
¡ password-control aging enable
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”。
(6) (可选)配置用户组中的身份成员。
identity-member { group group-name | user user-name }
缺省情况下,用户组中不存在身份成员。
要添加的成员用户组中不能为其所属的用户组,即用户组之间的从属关系必须单向,不能形成循环嵌套关系。
(7) (可选)配置用户组隔离策略。
user-isolation { intra-group | inter-group } *
缺省情况下,未配置用户组隔离策略。
用户组隔离策略仅对无线集中式转发场景下的用户单播报文生效。
管理员可以通过命令行批量导入、导出网络接入类本地用户。
(1) 进入系统视图。
system-view
(2) 从CSV文件中导入用户信息并创建网络接入类本地用户。
local-user-import class network url url-string [ auto-create-group | override | start-line line-number ] *
用于导入的CSV文件中的用户名字段必须存在,其它信息如果未包含会使用缺省值。
(1) 进入系统视图。
system-view
(2) 从设备导出网络接入类本地用户信息到CSV文件。
local-user-export class network url url-string [ from { group group-name | user user-name } ]
导出的CSV文件可直接或在编辑之后可导入到本设备或其它支持该命令的设备上使用。
开启本地用户过期自动删除功能之后,设备将定时(10分钟,不可配)检查网络接入类本地用户是否过期并自动删除过期的本地用户。
(1) 进入系统视图。
system-view
(2) 开启本地用户过期自动删除功能。
local-user auto-delete enable
缺省情况下,本地用户过期自动删除功能处于关闭状态。
开启本地用户密码变化告警功能后,系统将在以下几种情况下生成告警信息:
· 通过命令行配置或者修改本地用户密码。
· 通过NETCONF、MIB、Web等方式修改本地用户密码。
· Portal、SSL VPN本地认证用户在登录页面上在线修改密码。
生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
(1) 进入系统视图。
system-view
(2) 开启本地用户密码变化告警功能。
snmp-agent trap enable local-server [ manage-password-change | network-password-change ] *
缺省情况下,本地用户密码变化告警功能处于关闭状态。
可在任意视图下执行以下命令:
· 显示本地用户的配置信息和在线用户数的统计信息。
display local-user [ class { manage | network [ guest ] } | idle-cut { disable | enable } | service-type { advpn | ftp | http | https | ike | ipoe | lan-access | onu | pad | portal | ppp | ssh | sslvpn | telnet | terminal } | state { active | block } | user-name user-name class { manage | network [ guest ] } | user-role role-name | vlan vlan-id ]
· 显示本地用户组的相关配置。
display user-group { all | name group-name [ byod-authorization ] } [ identity-member { all | group | user } ]
可在任意视图下执行以下命令,显示本地用户的接入计数信息
display local-user user-name user-name class { manage | network } access-count
可在任意视图下执行以下命令,显示待审批来宾用户注册信息。
display local-guest waiting-approval [ user-name user-name ]
请在用户视图下执行以下命令,清除待审批的来宾用户 注册信息。
reset local-guest waiting-approval [ user-name user-name ]
RADIUS配置任务如下:
(1) 配置EAP认证方案
若要对RADIUS认证服务器使用EAP认证方法进行可达性探测,则需要配置EAP认证方案,并在RADIUS服务器探测模板中引用该方案。
(2) 配置RADIUS服务器探测模板
若要对RADIUS认证服务器进行可达性探测,则需要配置RADIUS服务器探测模板,并在RADIUS认证服务器配置中引用该模板。
(3) 创建RADIUS方案
(4) 配置RADIUS认证服务器
(5) 配置RADIUS计费服务器
(6) 配置RADIUS私有服务器
仅当客户端指定了要使用的RADIUS服务器时,才需要采用该配置。
(7) 配置RADIUS报文的共享密钥
若配置RADIUS认证/计费服务器时未指定共享密钥,则可以通过本任务统一指定对所有认证/计费RADIUS服务器生效的共享密钥。
(8) 配置RADIUS方案所属的VPN
若配置RADIUS认证/计费服务器时未指定所属的VPN,则可以通过本任务统一指定所有认证/计费RADIUS服务器所属的VPN。
(9) (可选)配置RADIUS服务器的状态
(10) (可选)配置RADIUS服务器的定时器
(11) (可选)配置RADIUS报文交互参数
(12) (可选)配置RADIUS属性参数
¡ 开启使用RADIUS Attribute 17支持在线修改用户密码功能
¡ 配置RADIUS Attribute 25的CAR参数解析功能
¡ 配置RADIUS Attribute 31中的MAC地址格式
¡ 配置RADIUS Remanent_Volume属性的流量单位
¡ 配置Vendor ID为2011的RADIUS服务器版本号
¡ 配置RADIUS扩展属性中携带DHCP Option信息
(13) (可选)配置RADIUS扩展功能
RADIUS服务器探测功能是指,设备周期性发送探测报文探测RADIUS服务器是否可达或可用:如果服务器不可达,则置服务器状态为block,如果服务器可达,则置服务器状态为active。该探测功能不依赖于实际用户的认证过程,无论是否有用户向RADIUS服务器发起认证,无论是否有用户在线,设备都会自动对指定的RADIUS服务器进行探测,便于及时获得该服务器的可达状态。
RADIUS服务器探测模板用于配置探测参数,并且可以被RADIUS方案视图下的RADIUS服务器配置引用。
目前,设备支持两种探测方式:
· 简单探测方式:设备采用探测模板中配置的探测用户名、密码构造一个认证请求报文,并在探测周期内选择随机时间点向引用了探测模板的RADIUS服务器发送该报文。如果在本次探测周期内收到服务器的认证响应报文,则认为当前探测周期内该服务器可达。如果在连续指定数目个探测周期内均收到服务器的认证响应报文,则认为该服务器可达;如果在连续指定数目个探测周期内均未收到服务器的认证响应报文,则认为该服务器不可达;其它情况视为该服务器状态未改变。
· EAP探测方式:设备采用指定的EAP认证方案中配置的EAP认证方法启动服务器探测。在探测过程中,设备会在配置的探测周期超时后使用探测模板中配置的探测用户名和密码,模拟一个合法EAP认证用户向引用了该探测模板的RADIUS服务器发起一次EAP认证,如果在探测超时时间内(不可配)成功完成该次认证,则认为当前探测周期内该服务器可用。
EAP探测方式相较于简单探测方式,由于探测过程还原了完整的认证过程,更能保证RADIUS服务器探测结果的可靠性。建议在接入用户使用EAP认证方法的组网环境中,使用该方式的服务器探测功能。
系统支持同时存在多个RADIUS服务器探测模板。
仅当RADIUS服务器配置中成功引用了一个已经存在的服务器探测模板,设备才会启动对该RADIUS服务器的探测功能。
若探测模板中引用的EAP认证方案不存在,则设备会暂时采用简单探测方式发起探测。当引用的EAP认证方案配置成功后,下一个探测周期将使用EAP方式发起探测。
目前,RADIUS服务器探测支持的EAP认证方法包括:MD5-Challenge、PEAP-GTC、PEAP-MSCHAPV2、TTLS-GTC、TTLS-MSCHAPV2。
服务器探测功能启动后,以下情况发生将会导致探测过程中止:
· 删除该RADIUS服务器配置;
· 取消对服务器探测模板的引用;
· 删除对应的服务器探测模板;
· 将该RADIUS服务器的状态手工置为block;
· 删除当前RADIUS方案。
(1) 进入系统视图。
system-view
(2) 配置RADIUS服务器探测模板。
radius-server test-profile profile-name username name [ password { cipher | simple } string ] [ interval interval ] [ probe-count count ] [ eap-profile eap-profile-name ]
系统最多支持配置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服务器(本文将其简称为私有服务器)进行认证/授权/计费。例如,5G网络中,当移动终端设备完成5G网络注册后(也称为首次鉴权),如果要访问私有的企业数据网络,可以在企业网侧的接入设备上对这些终端进行二次鉴权,以保障企业数据网络的安全性。这类二次鉴权过程通常要求使用该企业提供的特定RADIUS服务器来完成。为了满足此类业务需求,就需要在接入设备上配置专用于此类业务的私有认证/计费服务器。
接入设备采用RADIUS私有服务器的工作机制由客户端侧发起的认证/计费请求决定:
· 如果客户端发起认证/计费请求时向接入设备提供了指定的服务器IP地址信息,接入设备会在用户使用的RADIUS方案下查询客户端指定的私有认证/计费服务器配置。若查询成功,接入设备将与该认证/计费服务器交互此客户端的认证/授权/计费信息;若查询失败,则此次认证/计费失败。若查询到的认证/计费服务器不存在或者不可达,接入设备也不会切换到该方案下的其它非私有服务器上进行认证/计费。
· 若客户端发起认证/计费请求时未指定服务器的IP地址信息,则设备将与用户使用的RADIUS方案下的非私有认证/计费服务器进行交互,而不去查询方案下的任何私有认证/计费服务器配置。
由于客户端可能仅指定了IPv4服务器地址或IPv6服务器地址,也可能同时指定两者,因此设备的认证/计费请求机制也有所不同:
· 如果客户端同时指定了一个IPv4认证/计费服务器地址和一个IPv6认证/计费服务器地址,则设备优先选择向IPv6服务器发送认证/计费请求。如果IPv6服务器响应超时,则设备切换到与IPv4服务器通信;如果IPv6服务器状态为block,则设备会查询IPv4服务器的状态,且仅当IPv4服务器的状态为active的情况下,才会切换到与IPv4服务器通信,否则仍然选择与IPv6服务器通信。
· 如果客户端仅指定了一个IPv4认证/计费服务器地址或一个IPv6认证/计费服务器地址,无论该服务器状态似乎否active,设备均会向指定的服务器发送认证/计费请求。
配置的私有认证/计费服务器的UDP端口号以及认证/计费报文的共享密钥必须与服务器的配置保持一致。
在同一个方案中,IP地址是私有服务器的唯一标识,最多可以存在16个私有认证服务器和16个私有计费服务器。
设备与私有服务器通信时优先使用本特性设置的私有服务器共享密钥,如果未设置私有服务器共享密钥,则使用同一个方案中key accounting命令设置的共享密钥。
若私有服务器位于MPLS VPN私网中,为保证RADIUS报文被发送到指定的私网服务器,必须指定服务器所属的VPN实例。指定的私有服务器所属的VPN实例比该方案所属的VPN实例具有更高的优先级。
(1) 进入系统视图。
system-view
(2) 进入RADIUS方案视图。
radius scheme radius-scheme-name
(3) 配置私有RADIUS认证服务器。
private authentication { ipv4-address | ipv6 ipv6-address } [ port-number | key { cipher | simple } string | vpn-instance vpn-instance-name ] *
缺省情况下,未配置私有RADIUS认证服务器。
(4) (可选)配置私有RADIUS计费服务器。
private accounting { ipv4-address | ipv6 ipv6-address } [ port-number | key { cipher | simple } string | vpn-instance vpn-instance-name ] *
缺省情况下,未配置RADIUS私有计费服务器。
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的服务器发送认证或计费请求。如果在认证或计费过程中改变了正在使用的服务器配置,设备将遵从以下原则调度服务器:
· 在认证或计费过程中修改该或删除了正在使用的服务器配置,且该服务器不可达,则设备在与当前服务器通信超时后,将会根据各服务器的权重以及服务器承载的用户负荷重新选择状态为active的服务器进行通信。
· 如果在线用户正在使用的计费服务器被删除,由于设备仅与发起计费开始请求的服务器通信,因此并不会选用其它服务器进行通信,继而实时计费将会失败。
当RADIUS服务器负载分担功能处于关闭状态时,设备上主从服务器的切换遵从以下原则:
· 当主服务器状态为active时,设备首先尝试与主服务器通信,若主服务器不可达,则按照从服务器的配置先后顺序依次查找状态为active的从服务器。
· 只要存在状态为active的服务器,设备就仅与状态为active的服务器通信,即使该服务器不可达,设备也不会尝试与状态为block的服务器通信。
· 当主/从服务器的状态均为block时,设备会尝试与主服务器进行通信,若未配置主服务器,则设备尝试与首个配置的从服务器通信。
· 如果服务器不可达,则设备将该服务器的状态置为block,并启动该服务器的quiet定时器。当服务器的quiet定时器超时,或者手动将服务器状态置为active时,该服务器将恢复为active状态。
· 在一次认证或计费过程中,如果设备在尝试与从服务器通信时,之前已经查找过的服务器状态由block恢复为active,则设备并不会立即恢复与该服务器的通信,而是继续查找从服务器。如果所有已配置的服务器都不可达,则认为本次认证或计费失败。
· 对于每一个新用户,设备都会遵照以上原则为其选择可达的服务器;已在线用户的重认证时,设备会按照RADIUS服务器的选择模式(reauthentication server-select命令设置)来决定是否需要依照以上原则重新选择认证服务器,或是选用之前认证时使用的服务器。
· 如果在认证或计费过程中删除了当前正在使用的服务器,且该服务器不可达,则设备在与该服务器通信超时后,将会立即从主服务器开始依次查找状态为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服务器的状态。
state private { accounting | authentication } [ { ipv4-address | ipv6 ipv6-address } ] { active | block }
该配置仅用于特殊组网环境下使用的私有服务器,具体请查看“1.4.6 配置RADIUS私有服务器”。
缺省情况下,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.9 配置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携带在IPv4报文中的ToS字段以及IPv6报文中的Traffic Class字段中,决定报文传输的优先程度。通过本命令可以指定设备发送的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服务器发送的DAE请求报文中携带该属性,则该属性将会作为接入设备查找用户的匹配条件之一,具体的用户查找规则请参见“1.4.36 配置RADIUS DAE服务器功能”。
RADIUS方案视图和系统视图下均可以配置发送RADIUS报文携带的NAS-IP地址,具体生效情况如下:
· RADIUS方案视图下配置的NAS-IP地址(通过nas-ip命令)只对本RADIUS方案有效。
· 系统视图下的配置的NAS-IP地址(通过radius nas-ip命令)对所有RADIUS方案有效。
· RADIUS方案视图下的设置具有更高的优先级。
M-LAG组网环境中,需要在两台M-LAG设备上均指定RADIUS报文中携带的NAS-IP地址,每台M-LAG设备发送RADIUS报文时选择NAS-IP地址的顺序与上述描述相同。该场景下,为了使得M-LAG设备故障导致用户流量切换后,RADIUS服务器不用感知到处理用户业务的接入设备发生变化,就需要保证已在线用户发送的RADIUS报文的NAS-IP地址始终保持不变。因此,RADIUS方案视图下的NAS-IP地址需要结合接入业务(如端口安全)在M-LAG接口上采用的用户处理模式进行设置:
· 集中处理模式下,需要在两台M-LAG设备上均配置相同的NAS-IP地址。
当M-LAG系统中的一台M-LAG设备发生故障时,原故障设备上处理的用户在另外一台M-LAG设备上使用配置的NAS-IP地址发送RADIUS报文。
· 分布处理模式下,需要在两台M-LAG设备上配置不同的NAS-IP地址,或者在两台M-LAG设备上均配置一个local NAS-IP地址和一个peer NAS-IP地址,且两台设备上的这组地址彼此相反。前一种配置方式下,本端设备会通过M-LAG系统自动获得对端同步过来的NAS-IP地址。
当M-LAG系统中的一台M-LAG设备发生故障时,原故障设备上处理的用户在另外一台M-LAG设备上将使用配置的peer NAS-IP地址或者同步过来NAS-IP地址发送RADIUS报文。
M-LAG组网环境中,必须通过nas-ip命令配置RADIUS报文中携带的NAS-IP地址,且该NAS-IP地址必须为M-LAG虚拟IP地址。关于M-LAG虚拟IP地址的详细介绍,请参见“二层技术-以太网交换”中的“M-LAG”。
指定源接口和指定IP地址两种方式设置的NAS-IP配置不能同时存在,后配置的生效。
(1) 进入系统视图。
system-view
(2) 设置RADIUS报文中携带的NAS-IP地址。
radius nas-ip { interface interface-type interface-number | { 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 [ m-lag { local | peer } ] { ipv4-address | interface | ipv6 ipv6-address }
缺省情况下,未设置RADIUS报文中携带的NAS-IP地址,使用系统视图下由命令radius nas-ip指定的NAS-IP地址。
m-lag { local | peer }参数仅用于M-LAG场景,用于为从M-LAG接口接入的用户指定发送RADIUS报文携带的NAS-IP地址。若不配置该参数,则设备重启不会发送accounting-on报文。在集中处理模式下,两台设备上可以都使用m-lag local参数或都不使用m-lag local参数来配置本端M-LAG接口使用的NAS-IP地址,效果相同,后者配置更简便;在分布处理模式下,两台设备上可以都使用m-lag local参数和m-lag peer参数分别配置一组本端和对端的NAS-IP地址,也可以都仅配置本端的NAS-IP地址,效果相同,后者配置更简便。
RADIUS的5号属性为NAS-Port属性,该属性由设备发给RADIUS服务器,不同的RADIUS服务器对填充在RADIUS Attribute 5中的内容有不同的格式要求。目前,可支持配置以下2种类型的属性格式:
· Default格式:成员设备编号(8bit)+槽位号(4bit)+端口号(8bit)+VLAN ID(12bit)
· Port格式:使用用户上线接口编号的最后一维。例如,若用户从接口GigabitEthernet1/0/2上线,则填充在RADIUS Attribute 5的字段为接口编号的最后一维“2”。
不同的RADIUS服务器对RADIUS Attribute 5的格式要求不同,为了保证RADIUS报文的正常交互,设备发送给服务器的RADIUS Attribute 5号属性格式必须与服务器的要求保持一致。
(1) 进入系统视图。
system-view
(2) 进入RADIUS方案视图。
radius scheme radius-scheme-name
(3) 配置RADIUS Attribute 5的格式。
attribute 5 format port
缺省情况下,RADIUS Attribute 5的格式为Default格式。
RADIUS 15号属性为Login-Service属性,该属性携带在Access-Accept报文中,由RADIUS服务器下发给设备,表示认证用户的业务类型,例如属性值0表示Telnet业务。设备检查用户登录时采用的业务类型与服务器下发的Login-Service属性所指定的业务类型是否一致,如果不一致则用户认证失败 。由于RFC中并未定义SSH、FTP、Terminal、HTTP、HTTPS这几种业务的Login-Service属性值,因此设备无法针对SSH、FTP、Terminal、HTTP、HTTPS用户进行业务类型一致性检查,为了支持对这些业务类型的检查,H3C为Login-Service属性定义了表1-3所示的扩展取值。
属性值 |
描述 |
50 |
用户的业务类型为SSH |
51 |
用户的业务类型为FTP |
52 |
用户的业务类型为Terminal |
53 |
用户的业务类型为HTTP |
54 |
用户的业务类型为HTTPS |
可以通过配置设备对RADIUS 15号属性的检查方式,控制设备是否使用扩展的Login-Service属性值对用户进行业务类型一致性检查。
· 严格检查方式:设备使用标准属性值和扩展属性值对用户业务类型进行检查,对于SSH、FTP、Terminal、HTTP、HTTPS用户,当RADIUS服务器下发的Login-Service属性值为对应的扩展取值时才能够通过认证。
· 松散检查方式:设备使用标准属性值对用户业务类型进行检查,对于SSH、FTP、Terminal、HTTP、HTTPS用户,在RADIUS服务器下发的Login-Service属性值为0(表示用户业务类型为Telnet)时才能够通过认证。
由于某些RADIUS服务器不支持自定义的属性,无法下发扩展的Login-Service属性,若要使用这类RADIUS服务器对SSH、FTP、Terminal、HTTP、HTTPS用户进行认证,建议设备上对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方式。
设备支持SSL VPN接入用户在线修改密码功能,开启本功能后:
· 用户认证成功后,若服务器向设备发送携带了Reply-Message属性的Access-Challenge报文,设备会提示用户需要在线修改密码,并在收到用户的密码修改请求后,向用户认证上线的RADIUS服务器发送一个认证请求报文,在该报文中使用2号标准属性携带用户的新密码。
· 用户在线期间,若用户主动发起密码修改请求,设备会重新选择可达的RADIUS服务器发送一个认证请求报文,该报文中使用2号、17号标准属性携带用户的新密码和旧密码。如果该方案下的RADIUS服务器支持用户在线修改密码,则会响应此认证请求。设备重新选择RADIUS服务器的机制与首次认证时选择RADIUS服务器的机制相同,但选择的结果可能会因为网络状况的变化而有所不同,因此密码修改有可能失败。
目前,仅部分RADIUS服务器可支持SSL VPN接入用户在线修改密码,因此请结合实际组网环境开启本功能。若RADIUS服务器不支持此功能,请确保设备上关闭了此功能。
(1) 进入系统视图。
system-view
(2) 进入RADIUS方案视图。
radius scheme radius-scheme-name
(3) 开启使用RADIUS Attribute 17支持在线修改用户密码功能。
attribute 17 old-password
缺省情况下,不支持在线修改用户密码功能。
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 { one | { six | three } separator separator-character } { lowercase | uppercase }
缺省情况下,RADIUS Attribute 31中的MAC地址为大写字母格式,且被分隔符“-”分成6段,即为HH-HH-HH-HH-HH-HH的格式。
RADIUS的87号属性为NAS-Port-ID属性,该属性由设备发给RADIUS服务器,不同的RADIUS服务器对填充在RADIUS Attribute 87中的内容有不同的格式要求。目前,可支持配置以下2种类型的属性格式:
· Default格式:
¡ 对于Portal用户为:槽位号(2个字节)+00(固定字符,2个字节)+端口号(3个字节)+VLAN编号(9个字节)。
¡ 对于IPoE、PPP用户为:slot=xx;subslot=xx;port=xx;vlanid=xx;vlanid2=xx。其中,slot为成员设备编号,subslot为槽位号,port为端口号,vlanid为外层VLAN编号,vlanid2为内层VLAN编号。
¡ 对于802.1X、MAC地址认证用户为:slot=xx;subslot=xx;port=xx;vlanid=xx。其中,slot为成员设备编号,subslot为槽位号,port为端口号,vlanid为VLAN编号。
¡ 对于Login用户,不携带Attribute 87属性。
· Interface-name格式:使用用户上线的接口名称。例如,若用户从接口GigabitEthernet1/0/1上线,则填充在RADIUS Attribute 87的字段为接口名称“GigabitEthernet1/0/1”。
不同的RADIUS服务器对RADIUS Attribute 87的格式要求不同,为了保证RADIUS报文的正常交互,设备发送给服务器的RADIUS Attribute 87号属性格式必须与服务器的要求保持一致。
(1) 进入系统视图。
system-view
(2) 进入RADIUS方案视图。
radius scheme radius-scheme-name
(3) 配置RADIUS Attribute 87的格式。
attribute 87 format interface-name
缺省情况下,RADIUS Attribute 87的格式为Default格式。
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服务器支持的Acct-Session-Id属性的格式可能有所不同,可通过本配置指定设备使用的Acct-Session-Id属性格式:
· 普通模式(common):该模式下的Acct-Session-Id属性取值长度为37个字符,由前缀、日期时间、序列号、接入节点的LIP地址、设备ID以及进程的Job ID信息组成。
· 精简模式(simplified):该模式下的Acct-Session-Id属性取值长度为16个字符,由前缀、月份值、序列号、设备ID以及接入节点的LIP地址信息组成。
(1) 进入系统视图。
system-view
(2) 配置设备使用的Acct-Session-Id属性模式。
aaa session-id mode { common | simplified }
缺省情况下,设备使用的Acct-Session-Id属性模式为普通模式。
设备厂商可以通过对RADIUS协议中的26号属性进行扩展,实现标准RADIUS未定义的功能。Vendor ID为25506的设备厂商定义了私有218号属性,用来携带客户端的DHCP Option信息。如果RADIUS服务器希望设备能够上报认证客户端的一些DHCP Option信息,就需要在客户端使用的RADIUS方案中配置本特性,使得设备能够将获取到的DHCP Option信息按照服务器要求的格式封装在私有属性中,并通过RADIUS计费开始请求报文或计费更新请求报文发送给服务器。
目前,本特性仅支持DHCP Option 55和DHCP Option 61。
如果在include-attribute 218 vendor-id 25506命令中同时指定了两个类型的DHCP Option,设备会将获取到的两类DHCP Option封装在两个私有218号属性中同时发送给服务器。
(1) 进入系统视图。
system-view
(2) 进入RADIUS方案视图。
radius scheme radius-scheme-name
(3) 配置RADIUS报文中携带Vendor ID为25506的私有218号属性。
include-attribute 218 vendor-id 25506 dhcp-option { 12 | 55 | 60 | 61 } * { format1 | format2 }
缺省情况下,RADIUS报文中携带Vendor ID为25506的私有218号属性,且以format1格式封装DHCP Option 61信息。
不同厂商的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属性禁用规则。
(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 DAE服务器视图。
radius dynamic-author server
(4) 开启RADIUS属性解释功能。
attribute translate
缺省情况下,RADIUS属性解释功能处于关闭状态。
(5) 配置RADIUS属性转换/禁用规则。请至少选择其中一项进行配置。
¡ 配置RADIUS属性转换。
attribute convert src-attr-name to dest-attr-name { { coa-ack | coa-request } * | { received | sent } * }
缺省情况下,未配置任何RADIUS属性转换。
¡ 配置RADIUS属性禁用。
attribute reject attr-name { { coa-ack | coa-request } * | { received | sent } * }
缺省情况下,未配置任何RADIUS属性禁用。
当RADIUS方案下的所有服务器都处于block状态后,设备收到用户的认证/计费请求时,有以下两种处理方式:
· Attempt方式:尝试向当前方案中的一个认证/计费服务器发送认证/计费请求(手工置于block状态的服务器除外)。具体的服务器选择机制请参见“1.4.9 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服务器负载分担功能处于关闭状态。
(4) 配置RADIUS认证服务器的负载分担方式。
server-load-sharing mode { packet-based | session-based }
缺省情况下,RADIUS认证服务器的负载分担方式为session-based。
可以通过本特性对用户重认证时认证服务器的选择模式进行控制:
· 继承模式:也是缺省模式,该模式下,设备直接沿用用户认证时使用的服务器,不再做其它尝试。使用此模式可以达到快速重认证的效果,但如果该认证服务器不可达,则会导致重认证失败。
· 重新选择模式:该模式下,设备会根据当前RADIUS方案中服务器的配置、服务器负载分担功能的开启状态,以及各服务器的可达状态重新选择认证服务器。使用此模式,可以尽可能得保证重认证时选择到当前最优且可达的服务器。
(1) 进入系统视图。
system-view
(2) 进入RADIUS方案视图。
radius scheme radius-scheme-name
(3) 配置重认证时RADIUS服务器的选择模式。
reauthentication server-select { inherit | reselect }
缺省情况下,重认证时仍然选用认证时使用的认证服务器。
开启accounting-on功能后,整个设备会在重启后主动向RADIUS服务器发送accounting-on报文来告知自己已经重启,并要求RADIUS服务器停止计费且强制通过本设备上线的用户下线。该功能可用于解决设备重启后,重启前的原在线用户因被RADIUS服务器认为仍然在线而短时间内无法再次登录的问题。为了确保发送accounting-on报文时设备与RADIUS服务器间链路可达,设备会在重启后监听链路的状态,待链路可达后再发送accounting-on报文。若设备发送accounting-on报文后RADIUS服务器无响应,则会在按照一定的时间间隔(interval interval)尝试重发几次(send send-times)。
对于指定型号的设备,accounting-on报文的发送机制为:设备以10次为一个通知周期向RADIUS服务器发送accounting-on报文,即以interval秒为间隔发送10次accounting-on报文,如果在该通知周期内RADIUS服务器无响应,则延迟一段时间(60秒×Delay系数)后,启动下一个通知周期的发送过程,并依次类推。当设备发送accounting-on报文的总次数达到send-times次时,仍然没有收到RADIUS服务器的响应,则停止发送accounting-on报文。其中,Delay系数=当前已发送报文次数 ÷ 10。
accounting-on扩展功能是为了适应分布式架构而对accounting-on功能的增强。
accounting-on扩展功能适用于PPP(L2TP组网的LAC侧)、IPoE和lan-access用户,该类型的用户数据均保存在用户接入的成员设备上。开启accounting-on扩展功能后,当有用户发起接入认证的成员设备重启时,设备会向RADIUS服务器发送携带设成员设备标识的accounting-on报文,用于通知RADIUS服务器对该成员设备的用户停止计费且强制用户下线。如果自上一次重启之后,成员设备上没有用户接入认证的记录,则该成员设备再次重启,并不会触发设备向RADIUS服务器发送携带成员设备标识的accounting-on报文。
只有在accounting-on功能处于开启状态,且和H3C iMC服务器配合使用的情况下,accounting-on扩展功能才能生效。
(1) 进入系统视图。
system-view
(2) 进入RADIUS方案视图。
radius scheme radius-scheme-name
(3) 开启accounting-on功能。
accounting-on enable [ interval interval | send send-times ] *
缺省情况下,accounting-on功能处于关闭状态。
(4) (可选)开启accounting-on扩展功能。
accounting-on extended
缺省情况下,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服务器且服务器需要对用户授权信息进行动态修改或强制用户下线的情况下,必须开启此功能。
为保证RADIUS session control功能可以正常运行,请确保设备作为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客户端。
DAE(Dynamic Authorization Extensions,动态授权扩展)协议是RFC 5176中定义的RADIUS协议的一个扩展,它用于强制认证用户下线,或者更改在线用户授权信息。DAE采用客户端/服务器通信模式,由DAE客户端和DAE服务器组成。
· DAE客户端:用于发起DAE请求,通常驻留在一个RADIUS服务器上,也可以为一个单独的实体。
· DAE服务器:用于接收并响应DAE客户端的DAE请求,通常为一个NAS(Network Access Server,网络接入服务器)设备。
DAE报文包括以下两种类型:
· DMs(Disconnect Messages):用于强制用户下线。DAE客户端通过向NAS设备发送DM请求报文,请求NAS设备按照指定的匹配条件强制用户下线。
· COA(Change of Authorization)Messages:用于更改用户授权信息。DAE客户端通过向NAS设备发送COA请求报文,请求NAS设备按照指定的匹配条件更改用户授权信息。
在设备上开启RADIUS DAE服务后,设备将作为RADIUS DAE服务器在指定的UDP端口监听指定的RADIUS DAE客户端发送的DAE请求消息,然后根据请求消息进行用户授权信息的修改、断开用户连接、关闭/重启用户接入端口或重认证用户,并向RADIUS DAE客户端发送DAE应答消息。
设备查找用户的依据是DAE请求报文中携带的用户标识信息(如用户名、用户IP地址、Acct-Session-Id等)以及设备标识信息(如NAS-IP,NAS-ID等)。如果设备没有查找到对应的用户,则不处理该DAE请求。缺省情况下,设备对DAE请求报文中的所有用户标识信息以及设备信息都进行校验,只有在设备上查找到了严格匹配所有信息的用户才会处理该DAE请求。如果设备上开启了宽松检查功能,则设备只会校验DAE报文中的部分用户标识信息(用户IP地址、Acct-Session-Id以及纯用户名部分),不再校验设备标识信息。
由于缺省情况下,设备作为DAE服务器和DAE代理时均使用UDP端口3799来监听DAE报文,因此,当设备上的DAE功能和DAE代理功能均开启时,请保证这两种功能配置了不同的监听端口,以避免DAE报文会被随机接收而处理不当。关于DAE代理功能的相关介绍请参见“用户接入与认证配置指导”中的“DAE代理”。
(1) 进入系统视图。
system-view
(2) 开启RADIUS DAE服务,并进入RADIUS DAE服务器视图。
radius dynamic-author server
缺省情况下, RADIUS DAE服务处于关闭状态。
(3) 指定RADIUS DAE客户端。
client { ip ipv4-address | ipv6 ipv6-address } [ key { cipher | simple } string | vendor-id 2011 version { 1.0 | 1.1 } | vpn-instance vpn-instance-name ] *
缺省情况下,未指定RADIUS DAE客户端。
(4) (可选)指定RADIUS DAE服务端口。
port port-number
缺省情况下,RADIUS DAE服务端口为3799。
(5) (可选)指定免校验的RADIUS DAE客户端的IP。
(IPv4网络)
trust ip ipv4-address [ vpn-instance vpn-instance-name ]
(IPv6网络)
trust ipv6 ipv6-address [ vpn-instance vpn-instance-name ]
缺省情况下,未指定免校验的RADIUS DAE客户端的IP地址。
(6) (可选)开启DAE报文的宽松检查功能
dae-loose-check enable
缺省情况下,DAE报文的宽松检查功能处于关闭状态。
有些DAE客户端上记录的用户以及设备信息可能与设备上用户的实际信息不完全一致,为了避免DAE客户端发送的DAE请求因无法进行完全匹配式校验而被丢弃,建议在这种情况下开启本功能。
接入模块发起的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服务器希望接入设备在用户认证成功后采用指定的用户名进行后续的AAA处理,该用户名与用户认证时采用的用户名不同。因此,需要设备端可以接受这种用户名,并且使用此用户名进行计费、用户信息的查询和显示等AAA处理。
配置设备接受RADIUS服务器下发的用户名后,如果RADIUS服务器发送给设备的认证应答报文中携带了User-Name属性,则设备会将此属性的内容告知给接入模块,且在后续的AAA处理过程中使用服务器下发的用户名进行处理。例如,这种情况下,设备发送给RADIUS服务器的计费开始请求报文中将会携带服务器下发的用户名,具体封装在User-Name属性中的内容需要结合RADIUS方案中的用户名格式(通过user-name-format配置)进行处理:
· 如果用户名格式为keep-original,则User-Name属性内容为服务器下发的用户名。
· 如果用户名格式为without-domain,则将服务器下发的用户名去掉域名后封装在User-Name属性中。
· 如果用户名格式为with-domain,则首先将服务器下发的用户名中的域名替换为认证时采用的域名,然后将此用户名封装在User-Name属性中。
目前,本功能仅对IPoE用户生效。
(1) 进入系统视图。
system-view
(2) 进入RADIUS方案视图。
radius scheme radius-scheme-name
(3) 配置设备接受RADIUS服务器下发的用户名。
username-authorization apply
缺省情况下,不接受RADIUS服务器下发的用户名,而是采用用户认证时使用的用户名进行AAA处理。
开启相应的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 告警功能均处于关闭状态。
(3) (可选)配置发送RADIUS告警信息采用的MIB节点版本。
radius trap-version { v1 | v2 } [ accounting-server-down | accounting-server-up | authentication-server-down | authentication-server-up ] *
缺省情况下,使用v1版本的MIB节点发送RADIUS告警信息。
缺省情况下,RADIUS协议功能处于开启状态,设备可以接收和发送RADIUS报文。由于攻击者可能会通过RADIUS的session control报文监听端口或RADIUS DAE服务端口向设备发起网络攻击,因此设备管理员可以通过临时关闭RADIUS协议功能来阻止攻击,并在网络环境恢复安全后,再重新打开RADIUS协议功能。另外,如果服务器需要调整配置或暂时不提供服务,则可以通过关闭设备上的RADIUS协议功能来协助完成此过程。
关闭RADIUS协议功能后,设备将停止接收和发送RADIUS报文,具体处理机制如下:
若有新用户上线,则根据配置的备份方案进行认证、授权和计费处理。
· 若已经为用户发送了RADIUS认证请求报文:
¡ 如果收到RADIUS服务器的响应报文,则根据响应完成认证和授权。
¡ 如果未收到RADIUS服务器响应报文,则根据配置的备份方案进行认证处理。
· 若已经为用户发送了RADIUS计费开始请求报文:
¡ 如果收到RADIUS服务器的响应报文,则用户上线,但后续计费更新和计费结束请求报文无法发出,也不能被缓存下来尝试继续发送。RADIUS服务器因为收不到在线用户的下线报文,会出现有一段时间用户已经下线,但RADIUS服务器上还有此用户的情况。另外,已缓存的计费报文也将从缓存中被删除。计费报文的发送失败,都会直接影响用户计费信息的准确性。
¡ 如果未收到RADIUS服务器的响应报文,则根据配置的备份方案进行处理。
关闭RADIUS协议功能对设备的RADIUS服务器功能没有影响。
关闭RADIUS协议功能后,若再重新开启RADIUS协议功能,已经使用其它方案进行的认证、授权或计费过程并不会切换为RADIUS方案来执行。
(1) 进入系统视图。
system-view
(2) 关闭RADIUS协议功能。
undo radius enable
缺省情况下,RADIUS协议功能处于开启状态。
(1) 进入系统视图。
system-view
(2) 开启RADIUS协议功能。
radius enable
缺省情况下,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 }
可在任意视图下执行以下命令,显示RADIUS服务器的负载统计信息。
display radius server-load statistics
请在用户视图下执行以下命令,清除缓存的RADIUS停止计费请求报文。
reset radius server-load statistics
HWTACACS配置任务如下:
(1) 创建HWTACACS方案
(2) 配置HWTACACS认证服务器
(3) 配置HWTACACS授权服务器
(4) 配置HWTACACS计费服务器
若配置HWTACACS服务器时未指定共享密钥,则可以通过本任务统一指定对所有认证/计费HWTACACS服务器生效的共享密钥。
若配置HWTACACS服务器时未指定所属的VPN,则可以通过本任务统一指定所有HWTACACS服务器所属的VPN。
(7) (可选)配置HWTACACS服务器的定时器
(8) (可选)配置HWTACACS报文交互参数
¡ 配置发送给HWTACACS服务器的用户名格式和数据统计单位
(9) (可选)配置HWTACACS服务器状态探测功能
(10) (可选)配置HWTACACS服务器都处于block状态后的请求动作
(11) (可选)配置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地址。
源接口配置和源IP地址配置不能同时存在,后配置的生效。
(1) 进入系统视图。
system-view
(2) 设置设备发送HWTACACS报文使用的源IP地址。
hwtacacs nas-ip { interface interface-type interface-number | { ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] }
缺省情况下,未指定发送HWTACACS报文使用的源IP地址,设备将使用到达HWTACACS服务器的路由出接口的主IPv4地址或IPv6地址作为发送HWTACACS报文的源IP地址。
(1) 进入系统视图。
system-view
(2) 进入HWTACACS方案视图。
hwtacacs scheme hwtacacs-scheme-name
(3) 设置设备发送HWTACACS报文使用的源IP地址。
nas-ip { ipv4-address | interface interface-type interface-number | 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 } } *
DSCP携带在IPv4报文中的ToS字段以及IPv6报文中的Traffic Class字段中,用来体现报文自身的优先等级,决定报文传输的优先程度。通过本命令可以指定设备发送的HWTACACS报文携带的DSCP优先级的取值。配置DSCP优先级的取值越大,HWTACACS报文的优先级越高。
(1) 进入系统视图。
system-view
(2) 配置HWTACACS报文的DSCP优先级。
hwtacacs [ ipv6 ] dscp dscp-value
缺省情况下,HWTACACS报文的DSCP优先级为0。
在对HWTACACS认证、授权、计费的实时性要求较高的组网环境中,可以通过配置HWTACACS服务器与Track项关联来对HWTACACS服务器的可达性状态进行主动探测。
缺省情况下,设备发送HWTACACS请求报文后,若在指定的响应时间内没有得到HWTACACS服务器的响应,则会将该服务器的状态置为block,并向下一个HWTACACS服务器发起请求。处于block状态的服务器在设定的静默定时器间隔之后,将自动恢复为active状态。这种基于定时器的服务器状态变迁机制使得设备并不能及时感知到服务器的真实状态。通过配置HWTACACS服务器与Track项关联,并由Track项联动TCP类型的NQA测试组,可以实现通过NQA测试机制来主动探测服务器是否可达:
· 服务器与Track项关联期间,该服务器的状态仅由探测结果决定。
· 启动与Track项联动的NQA测试组后,Track模块将根据NQA的监测结果改变Track项的状态,AAA模块再根据Track项的状态来设置服务器的状态:
¡ 若Track项状态为Positive,说明服务器状态变为可达,则服务器状态将被置为active。
¡ 若Track项状态为Negative,说明服务器状态变为不可达,则服务器状态将被置为block,同时该服务器对应的静默定时器也将被关闭。
¡ 若Track项状态一直处于NotReady,或由其它状态变为NotReady,说明探测机制不生效,此时服务器的状态将被置为active。
· 取消服务器与Track项的关联后,该服务器的状态将恢复为由定时器机制决定。
配置Track项与TCP类型的NQA测试组联动,具体介绍请参见“可靠性配置指导”中的“Track”。
配置与Track项联动的NQA测试组,以及调度NQA测试组,具体介绍请参见“网络管理和监控配置指导”中的“NQA”。
(1) 进入系统视图。
system-view
(2) 配置HWTACACS服务器与Track项关联,探测服务器是否可达。
hwtacacs server-probe { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ port port-number ] track track-entry-number
缺省情况下,HWTACACS服务器未与任何Track项相关联。
当HWTACACS方案下的所有服务器都处于block状态后,设备收到用户的认证/授权/计费请求时,有以下两种处理方式:
· Attempt方式:尝试与一个认证/授权/计费服务器(优先选择主服务器,若未配置则选择配置的第一个从服务器,手工置于block状态的主从服务器除外)建立一次连接,如果与该服务器建立连接失败,才会切换到为该用户配置的下一个认证/授权/计费方法去处理这个请求。
· Skip方式:跳过当前方案中的所有服务器,直接使用为该用户配置的下一个认证/授权/计费方法去处理这个请求。
Attempt方法保证了设备尽量优先使用第一个认证方法处理用户请求,但同时会增加请求的响应时间。因此,对于对AAA响应时间要求比较高的场合,建议选择Skip方式。
(1) 进入系统视图。
system-view
(2) 进入HWTACACS方案视图。
hwtacacs scheme hwtacacs-scheme-name
(3) 设置HWTACACS服务器都处于block状态后的请求动作。
server-block-action { attempt | skip }
缺省情况下,所有服务器都处于block状态后的请求动作为attempt。
当用户请求断开连接或者设备强行切断用户连接的情况下,设备会向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 hwtacacs statistics
可在任意视图下执行以下命令,显示缓存的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用户属性参数
g. 配置用户组的过滤条件
(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服务器会根据设置的用户组过滤条件筛选出符合条件的用户组信息发送给设备。
(1) 进入系统视图。
system-view
(2) 进入LDAP服务器视图。
ldap server server-name
(3) 配置用户组的过滤条件。
group-filter group-filter
缺省情况下,用户组的过滤条件是"(objectclass=group)"。
在用户的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 | user-profile }
系统最多支持配置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字符,否会导致认证、授权或计费失败。
如果一个ISP域中使用RADIUS方案对用户进行计费,请保证设备发送给RADIUS服务器的用户名中携带的域名长度不超过247个字符,否会导致计费失败。
(1) 进入系统视图。
system-view
(2) 创建ISP域并进入其视图。请根据使用习惯,选择其中一种命令行形式进行配置。
¡ domain name isp-name
¡ domain isp-name
缺省情况下,存在一个的ISP域,名称为system。
以上两种形式的命令行中,isp-name参数可支持的字符范围不同,具体情况请参见“用户接入与认证命令参考”中的“AAA”。
(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域处于活动状态,即允许任何属于该域的用户请求网络服务。
若指定offline参数,则该域从活动状态切换为阻塞状态后,通过该域接入的网络接入类(包括802.1X、MAC地址认证、Portal、IPoE、PPP)用户将被强制下线。
(4) 设置ISP域处于阻塞状态的时间段。
state block time-range name time-range-name
缺省情况下,未配置ISP域处于阻塞的时间段。
ISP域下可配置如下授权属性:
· ACL:用户被授权访问匹配指定ACL的网络资源。
· CAR:用户流量将受到指定的监管动作控制。
· 闲置切断:若用户在指定的闲置检测时间内产生的流量小于指定的数据流量,则会被强制下线。
· 可点播的最大节目数:用户可以同时点播的最大节目数。
· IPv4地址池:用户可以从指定的地址池中分配得到一个IPv4地址。
· IPv6地址池:用户可以从指定的地址池中分配得到一个IPv6地址。
· IPv6地址前缀:用户使用该前缀作为自己的IPv6地址前缀。
· DNS服务器地址:用户使用该DNS服务器提供的DNS服务。
· Session Group Profile:用户访问行为将受到该Session Group Profile中预设配置的限制。
· 授权会话超时时间:如果用户在线时长超过该值,设备会强制该用户下线。
· 重定向URL:用户认证成功后,首次访问网络时将被推送此URL提供的Web页面。
· 用户组:用户将继承该用户组中的所有属性。
· 用户优先级:该用户优先级通过QoS优先级映射之后,可用于指定用户报文进入的优先级队列,高优先级队列中的用户报文在流量拥塞处理时优先得到处理。
· User Profile:用户访问行为将受到该User Profile中预设配置的限制。
· VPN实例:用户被授权允许访问指定VPN中的网络资源。
用户认证成功之后,优先采用服务器下发的属性值(闲置切断属性除外),其次采用ISP域下配置的属性值。
若ISP域下配置了闲置切断授权属性值,则优先采用ISP域下的配置,其次采用服务器下发的闲置切断属性值。
对于Portal、IPoE和PPP用户,若被授权了用户组,则并不会继承该用户组中的授权属性。
(1) 进入系统视图。
system-view
(2) 进入ISP域视图。
domain name isp-name
(3) 设置当前ISP域下的用户授权属性。
authorization-attribute { acl acl-number | author-profile profile-name | car inbound cir committed-information-rate [ pir peak-information-rate ] outbound cir committed-information-rate [ pir peak-information-rate ] | idle-cut minutes [ flow ] [ traffic { both | inbound | outbound } ] | igmp max-access-number max-access-number | ip-pool ipv4-pool-name | ipv6-pool ipv6-pool-name | ipv6-prefix ipv6-prefix prefix-length | microsegment microsegment-id | mld max-access-number max-access-number | { primary-dns | secondary-dns } { ip ipv4-address | ipv6 ipv6-address } | session-group-profile session-group-profile-name | session-timeout timeout | url url-string | user-group user-group-name | user-priority { inbound | outbound } priority | user-profile profile-name | vlan vlan-id | vpn-instance vpn-instance-name | vsi vsi-name }
authorization-attribute { acl acl-number | car inbound cir committed-information-rate [ pir peak-information-rate ] outbound cir committed-information-rate [ pir peak-information-rate ] | idle-cut minutes [ flow ] [ traffic { both | inbound | outbound } ] | igmp max-access-number max-access-number | ip-pool ipv4-pool-name | ipv6-pool ipv6-pool-name | ipv6-prefix ipv6-prefix prefix-length | mld max-access-number max-access-number | { primary-dns | secondary-dns } { ip ipv4-address | ipv6 ipv6-address } | session-timeout timeout | user-group user-group-name | user-priority { inbound | outbound } priority | vlan vlan-id | vpn-instance vpn-instance-name }
缺省情况下,当前ISP域下的用户闲置切断功能处于关闭状态,IPv4用户可以同时点播的最大节目数为4,IPv6用户可以同时点播的最大节目数为4,无其它授权属性。
设备上传到服务器的用户在线时间中保留闲置切断时间:当用户异常下线时,上传到服务器上的用户在线时间中包含了一定的闲置切断时间,此时服务器上记录的用户时长将大于用户实际在线时长。该闲置切断时间在用户认证成功后由AAA授权,对于Portal认证用户,若接入接口上开启了Portal用户在线探测功能,则Portal在线探测闲置时长为闲置切断时间。
(1) 进入系统视图。
system-view
(2) 进入ISP域视图。
domain name isp-name
(3) 设置设备上传到服务器的用户在线时间中保留闲置切断时间。
session-time include-idle-time
缺省情况下,设备上传到服务器的用户在线时间中扣除闲置切断时间。
缺省情况下,设备向用户发送HTTP/HTTPS重定向报文时采用Java Script的方式携带重定向URL,重定向报文中携带的状态码为200,用户终端通过解析HTTP/HTTPS报文中Java Script来获取重定向URL。如果用户访问网络的终端(例如APP)不支持解析HTTP/HTTPS报文中Java Script,将无法获取重定向URL,也就无法完成设备预期的重定向行为。这种情况下,可以开启暂时重定向功能,改变设备发送HTTP/HTTPS重定向报文时携带重定向URL的方式来适配这些终端。
开启暂时重定向功能后,设备将通过发送状态码为302的暂时重定向响应报文向用户终端推送重定向URL。
仅当网络中存在不支持解析HTTP/HTTPS报文中Java Script的终端时,才建议开启本功能。
目前,本功能仅对授权了重定向URL的有线802.1X和MAC地址认证用户生效。
若修改了本功能的配置,则修改后的配置仅对新上线的用户或已上线且重新授权的用户生效。
(1) 进入系统视图。
system-view
(2) 进入ISP域视图。
domain isp-name
(3) 开启暂时重定向功能。
redirect move-temporarily enable
缺省情况下,暂时重定向功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入ISP域视图。
domain name isp-name
(3) 设置当前ISP域下的用户地址类型。
user-address-type { ds-lite | ipv6 | nat64 | private-ds | private-ipv4 | public-ds | public-ipv4 }
缺省情况下,未配置用户地址类型。
不同的组网环境中,对于用户认证失败后的处理策略有所不同。缺省情况下,用户认证失败后无法成功上线。如果希望用户在首次认证失败后有机会尝试其它的授权/计费方案,则可以使其处于在线状态,并转至指定的认证失败域内重新进行授权/计费。认证失败域内也会预先配置一套独立的授权和计费策略,为加入此域的用户提供一定的网络资源。
该功能仅适用于有线802.1X认证、MAC地址认证、Web认证用户。
以下情况不会采用认证失败域:
· 因认证超时导致的认证失败,例如认证服务器无响应、无本地用户等。
· 因认证域的状态为block或认证域属于接口下指定的deny域而引起的认证失败。
(1) 进入系统视图。
system-view
(2) 进入ISP域视图。
domain isp-name
(3) 配置用户认证失败后采取的处理策略。
authen-fail { offline | online domain new-isp-name no-authen }
缺省情况下,用户认证失败后采取的处理策略是直接下线。
缺省情况下,如果PPP用户上线后没有获取到相应业务类型对应的IP地址,设备将会强制其下线。
当PPPoE/L2TP用户可能请求多种IP地址类型的业务,且并非所有IP类型的业务均为其主业务时,为了保证非主业务的IP地址获取失败的情况下用户也能够上线,则需要通过本特性来满足该需求。
当配置主业务依赖于某IP类型时,如果该IP类型的地址分配失败,则不允许用户上线。
该特性仅在设备作为PPPoE Server或L2TP LNS时有效。
(1) 进入系统视图。
system-view
(2) 进入ISP域视图。
domain name isp-name
(3) 设置PPPoE/L2TP用户主业务依赖的IP地址类型。
basic-service-ip-type { ipv4 | ipv6 | ipv6-pd } *
缺省情况下,PPPoE/L2TP用户主业务不依赖于任何IP地址类型。
PPPoE/L2TP用户与设备完成IPv6CP协商之后,如果在一定的时长内未能成功分配到主业务依赖类型的IPv6地址/PD,则被强制下线,否则使用分配到的IPv6地址上线。
实际应用中,需要通过本特性来合理调整此等待时长以保障用户的正常上线。例如,当设备与某ISP域PPPoE/L2TP用户连接所在网络质量比较差,使用DHCPv6为用户分配IPv6地址,或者某ISP域接入的PPPoE/L2TP用户数量比较大时,可以适当增加此等待时长避免用户因为地址分配失败而下线。
该特性仅在设备作为PPPoE Server或L2TP LNS时有效。
(1) 进入系统视图。
system-view
(2) 进入ISP域视图。
domain name isp-name
(3) 设置PPPoE/L2TP用户等待分配IPv6地址的最大时长。
dhcpv6-follow-ipv6cp timeout delay-time
缺省情况下,未配置PPPoE/L2TP接入用户等待分配IPv6地址的最大时长。
配置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本地认证处理过程异常或者没有本地用户配置的情况下,用户本地认证失败后才会尝试使用备选方案进行认证,其它情况下不会转换认证方案,直接认为认证失败。
· 当为SSL VPN用户指定了多个认证方法时,SSL VPN用户登录成功后不支持修改密码。
配置前的准备工作:
· 确定要配置的接入方式或者服务类型。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) 为指定类型的用户或服务配置认证方法。
¡ 为5G用户配置认证方法。
authentication 5g { none | radius-scheme radius-scheme-name [ none ] }
缺省情况下,5G用户采用缺省的认证方法。
¡ 为ADVPN用户配置认证方法。
authentication advpn { local [ radius-scheme radius-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,ADVPN用户采用缺省的认证方法。
¡ 为IPoE用户配置认证方法。
authentication ipoe { local [ radius-scheme radius-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,IPoE用户采用缺省的认证方法。
¡ 为IKE扩展认证配置认证方法。
authentication ike { local [ radius-scheme radius-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,IKE扩展认证采用缺省的认证方法。
¡ 为lan-access用户配置认证方法。
authentication lan-access { ldap-scheme ldap-scheme-name [ local ] [ none ] | local [ ldap-scheme ldap-scheme-name | radius-scheme radius-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,lan-access用户采用缺省的认证方法。
¡ 为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用户采用缺省的认证方法。
¡ 为ONU用户配置认证方法。
authentication onu { local [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,ONU用户采用缺省的认证方法。
ONU用户不支持授权和计费。
¡ 为Portal用户配置认证方法。
authentication portal { ldap-scheme ldap-scheme-name [ local ] [ none ] | local [ ldap-scheme ldap-scheme-name | radius-scheme radius-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,Portal用户采用缺省的认证方法。
¡ 为PPP用户配置认证方法。
authentication ppp { 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 ] }
缺省情况下,PPP用户采用缺省的认证方法。
¡ 为SSL VPN用户配置认证方法。
authentication sslvpn { ldap-scheme ldap-scheme-name [ local ] [ none ] | local [ ldap-scheme ldap-scheme-name | radius-scheme radius-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,SSL VPN用户采用缺省的认证方法。
¡ 配置用户角色切换认证方法。
authentication super { hwtacacs-scheme hwtacacs-scheme-name | radius-scheme radius-scheme-name } *
缺省情况下,用户角色切换认证采用缺省的认证方法。
配置ISP域的AAA授权方法时,需要注意的是:
· 为了提高可靠性,可以指定多个备选的授权方法,在当前的授权方法无效时设备将按照配置顺序尝试使用备选的方法完成授权。例如,radius-scheme radius-scheme-name local none表示,先进行RADIUS授权,若RADIUS授权无效则进行本地授权,若本地授权也无效则不进行授权。远程授权无效是指,指定的授权方案不存在、授权报文发送失败或者服务器无响应。本地授权无效是指没有找到对应的本地用户配置。
· 目前仅SSL VPN 用户支持使用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) 为指定类型的用户或服务配置授权方法。
¡ 为5G用户配置授权方法。
authorization 5g { none | radius-scheme radius-scheme-name [ none ] }
缺省情况下,5G用户采用缺省的授权方法。
¡ 为ADVPN用户配置授权方法。
authorization advpn { local [ radius-scheme radius-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,ADVPN用户采用当缺省的授权方法。
¡ 配置命令行授权方法。
authorization command { hwtacacs-scheme hwtacacs-scheme-name [ local ] [ none ] | local [ none ] | none }
缺省情况下,命令行授权采用缺省的授权方法。
¡ 为IKE扩展认证配置授权方法。
authorization ike { local [ none ] | none }
缺省情况下,IKE扩展认证采用缺省的授权方法。
¡ 为IPoE用户配置授权方法。
authorization ipoe { local [ radius-scheme radius-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,IPoE用户采用缺省的授权方法。
¡ 为lan-access用户配置授权方法。
authorization lan-access { local [ radius-scheme radius-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,lan-access用户采用缺省的授权方法。
¡ 为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用户采用缺省的授权方法。
¡ 为Portal用户配置授权方法。
authorization portal { local[ radius-scheme radius-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,Portal用户采用缺省的授权方法。
¡ 为PPP用户配置授权方法。
authorization ppp { 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 ] }
缺省情况下,PPP用户采用缺省的授权方法。
¡ 为SSL VPN用户配置授权方法。
authorization sslvpn { ldap-scheme ldap-scheme-name [ local ] [ none ] | local [ ldap-scheme ldap-scheme-name | radius-scheme radius-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,SSL VPN用户采用缺省的授权方法。
配置ISP域的AAA计费方法时,需要注意的是:
· 为了提高可靠性,可以指定多个备选的计费方法,在当前的计费方法无效时设备将按照配置顺序尝试使用备选的方法完成计费。例如,radius-scheme radius-scheme-name local none表示,先进行RADIUS计费,若RADIUS计费无效则进行本地计费,若本地计费也无效则不进行计费。远程计费无效是指,指定的计费方案不存在、计费报文发送失败或者服务器无响应。本地计费无效是指没有找到对应的本地用户配置。
· 不支持对FTP/SFTP/SCP类型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) 为指定类型的用户配置计费方法。
¡ 为5G用户配置计费方法。
accounting 5g { none | radius-scheme radius-scheme-name [ none ] }
缺省情况下,5G用户采用缺省的计费方法。
¡ 为ADVPN用户配置计费方法。
accounting advpn { local [ radius-scheme radius-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,ADVPN用户采用缺省的计费方法。
¡ 配置命令行计费方法。
accounting command hwtacacs-scheme hwtacacs-scheme-name
缺省情况下,命令行计费采用缺省的计费方法。
¡ 为IPoE用户配置计费方法。
accounting ipoe { broadcast radius-scheme radius-scheme-name1 radius-scheme radius-scheme-name2 [ local ] [ none ] | local [ radius-scheme radius-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,IPoE用户采用缺省的计费方法。
¡ 为lan-access用户配置计费方法。
accounting lan-access { broadcast radius-scheme radius-scheme-name1 radius-scheme radius-scheme-name2 [ local ] [ none ] | local [ radius-scheme radius-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,lan-access用户采用缺省的计费方法。
¡ 为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用户采用缺省的计费方法。
¡ 为Portal用户配置计费方法。
accounting portal { broadcast radius-scheme radius-scheme-name1 radius-scheme radius-scheme-name2 [ local ] [ none ] | local [ radius-scheme radius-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,Portal用户采用缺省的计费方法。
¡ 为PPP用户配置计费方法。
accounting ppp { broadcast radius-scheme radius-scheme-name1 radius-scheme radius-scheme-name2 [ hwtacacs-scheme hwtacacs-scheme-name ] [ local ] [ none ] | 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 ] }
缺省情况下,PPP用户采用缺省的计费方法。
¡ 为SSL VPN用户配置计费方法。
accounting sslvpn { local [ radius-scheme radius-scheme-name ] [ none ] | none | radius-scheme radius-scheme-name [ local ] [ none ] }
缺省情况下,SSL VPN用户采用缺省的计费方法。
(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 ] [ user-profile profile-name ] } [ no-accounting-update ]
缺省情况下,用户的计费配额耗尽后,设备会向服务器发送计费更新报文来获取新的配额,若计费回应报文未携带新的配额,则该用户被强制下线。
¡ 配置双协议栈用户的计费方式。
accounting dual-stack { merge | separate }
缺省情况下,双协议栈用户的计费方式为统一计费。
可在任意视图下执行以下命令:
· 显示授权策略模板的信息
display aaa author-profile
· 显示所有或指定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。
AAA用户逃生功能用于解决RADIUS服务器不可达时用户无法上线的问题,包括以下两个处理机制:
(1) 通过在用户认证域下配置逃生域,允许用户在RADIUS服务器不可达时 “逃离”当前域,在新域中进行上线。通常情况下,逃生行为只是一个应急措施,因此用户可以无需再次认证而直接上线。
(2) 当原认证域中的任一RADIUS服务器恢复可达时,对于已逃生的用户,有三种处理策略:
¡ 如果希望用户重新进行认证/授权/计费,则可以直接使其下线。
¡ 如果希望用户保持在线,且无需重新认证,可配置一个逃生恢复域。
¡ 如果希望对用户直接重新认证,且无需用户感知,则可以配置重认证。
为了使得设备能够及时感知到RADIUS服务器实际状态的变化,系统将以指定的时间间隔定期检查各RADIUS方案下的RADIUS认证服务器的状态,并通知接入模块将存在可达认证服务器的RADIUS方案下的已逃生用户取消逃生。
本功能仅适用于有线802.1X认证、MAC地址认证和Web认证用户。
关于逃生域,需要注意的是:
· 如果逃生域中配置了非none的认证/授权/计费方案,用户将不会使用该域的方案重新进行认证、授权,而是保持在线的情况下使用该域的计费方案进行计费。
· 逃生域不支持嵌套配置,包括两种情况:逃生域中配置的逃生域不会生效,已经配置了逃生域的认证域被指定为其它认证域的逃生域时不会生效。
关于逃生恢复域,需要注意的是:
· 如果用户逃生之前所在的原认证域中,为RADIUS认证方案配置了none备份方案,则RADIUS服务器从不可达恢复为可达时,用户也会进入配置的逃生恢复域。
· 为了准确地判断RADIUS认证服务器是否可达,使得逃生恢复措施及时生效,建议配置RADIUS服务器探测功能。
· 目前,指定的逃生恢复域必须与该命令行所在的ISP视图同名。
对于RADIUS认证服务器状态检查的时间间隔,需要注意的是:
· 如果设置的状态检查时间间隔过小,将会占用接入业务处理的系统资源;如果设置的状态检查时间间隔过大,对于服务器实际状态变化的感知将不够及时。
· 在有大量用户集中上线的情况下,建议综合考虑接入业务的处理效率和逃生处理的准确性。
(1) 进入系统视图。
system-view
(2) (可选)设置RADIUS认证服务器状态检查的时间间隔。
radius-server authen-state-check interval interval
缺省情况下,RADIUS认证服务器状态检查的时间间隔默认为10分钟。
(3) 进入ISP域视图。
domain isp-name
(4) 配置用户认证过程中,RADIUS服务器不可达时的逃生域。
authen-radius-unavailable online domain new-isp-name
缺省情况下,未指定用户认证过程中RADIUS服务器不可达时的逃生域。
(5) 指定当用户因为RADIUS服务器不可达逃生后,在服务器恢复可达时的处理策略。
authen-radius-recover { offline | online domain new-isp-name | re-authen }
缺省情况下,未指定用户因为RADIUS服务器不可达逃生后,在服务器又恢复可达时的处理策略。
用户进行RADIUS认证时,系统会获取设备的NAS-ID来设置RADIUS报文中的NAS-Identifier属性,该属性用于向RADIUS服务器标识用户的接入位置。
设备支持多种途径配置NAS-ID,按照获取优先级从高到低的顺序依次包括:
(1) 多机备份实例视图下的NAS-ID。其相关配置请参见“可靠性配置指导”中的“多机备份”。
(2) 与用户接入VLAN绑定的NAS-ID。
(3) 接口视图下的NAS-ID。
(4) ISP域视图下的NAS-ID
若以上配置都不存在,则使用设备的名称(由sysname命令指定)作为设备的NAS-ID。
若在实际网络中,用户的接入VLAN可以标识用户的接入位置,则可通过建立用户接入VLAN与指定的NAS-ID之间的绑定关系来实现接入位置信息的映射。
NAS-ID Profile将被Portal或端口安全相应特性进行引用,具体应用请参见“用户接入与认证配置指导”中的“Portal”或“端口安全”。
一个NAS-ID Profile中可以指定多组NAS-ID和VLAN绑定。
一个NAS-ID可以与多个VLAN进行绑定,一个VLAN只能绑定一个NAS-ID。
(1) 进入系统视图。
system-view
(2) 创建NAS-ID Profile,并进入NAS-ID Profile视图。
aaa nas-id profile profile-name
(3) 设置NAS-ID 与VLAN的绑定关系。
nas-id nas-identifier bind { { c-vid vlan-id | s-vid vlan-id } * | vlan vlan-id }
QinQ组网情况下,建议指定s-vid和c-vid参数或两者之一;非QinQ组网情况下,只能指定vlan参数。
接口上配置的NAS-ID和NAS-ID Profile仅对Portal、PPP和IPoE用户有效。
若接口上同时配置了NAS-ID和NAS-ID Profile,则NAS-ID Profile中定义的绑定关系优先生效。
(1) 进入系统视图。
system-view
(2) 进入三层接口视图。
interface interface-type interface-number
(3) 在接口上配置NAS-ID。
aaa nas-id nas-identifier
缺省情况下,接口上未配置NAS-ID。
(4) (可选)指定接口引用的NAS-ID Profile。
aaa nas-id-profile profile-name
缺省情况下,未指定引用的NAS-ID Profile。
对于Portal用户,若接口上同时通过本命令和portal nas-id-profile命令指定了NAS-ID Profile,则后者指定的NAS-ID Profile优先级高。关于portal nas-id-profile命令的详细介绍,请参见“用户接入与认证命令参考”中的“Portal”。
(1) 进入系统视图。
system-view
(2) 进入ISP域视图。
domain name isp-name
(3) 在ISP域视图下配置NAS-ID。
nas-id nas-identifier
RADIUS计费过程使用Acct-Session-Id属性作为用户的计费ID。设备会为每个在线用户生成一个唯一的Acct-Session-Id值。设备ID是Acct-Session-Id属性值中的一个组成字段。
在多机备份环境中,多台设备使用相同的RADIUS计费服务器时,为了避免不同设备为用户生成的计费ID出现小概率重复,影响计费的准确性,建议使用本命令为不同设备配置不同的设备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
缺省情况下,密码修改周期性提醒日志功能处于开启状态。
EAP认证方案是一个EAP认证选项的配置集合,用于指定设备采用的EAP认证方法以及某些EAP认证方法需要引用的CA证书。
一个EAP认证方案可以同时被多个探测模板引用。
系统最多支持配置16个EAP认证方案。
设备支持多种EAP认证方法,在向对端发起认证请求时优先使用EAP认证方案中配置的缺省EAP认证方法。若对端使用的EAP认证方法与该缺省认证方法不一致,会告知设备自己支持的EAP认证方法,然后设备将采用本地支持且与对端一致的EAP认证方法重新向对端发起认证请求。但是,当设备采用EAP终结方式对无线客户端进行认证处理时,仅且只能支持使用指定的缺省认证方法PEAP-GTC与对端进行协商。
配置本地证书、本地证书的私钥、CA证书之前,需要通过FTP或TFTP的方式将证书文件导入设备的存储介质的根目录下。
在IRF组网环境中,需要保证主/从设备的存储介质的根目录下均已保存了对应的文件。
配置EAP认证使用的SSL服务器端策略之前,需要完成SSL服务器端策略以及SSL服务器端策略所使用的PKI域的配置。关于SSL服务器端策略的详细配置,请参见“安全配置指导”中的“SSL”,关于PKI域的详细配置,请参见“安全配置指导”中的“PKI”。
(1) 进入系统视图。
system-view
(2) 创建EAP认证方案,并进入EAP认证方案视图。
eap-profile eap-profile-name
(3) 配置EAP认证方法。
method { md5 | peap-gtc | peap-mschapv2 | tls | ttls-gtc | ttls-mschapv2 }
缺省情况下,采用的EAP认证方法为MD5-Challenge。
(4) 配置EAP认证使用的本地证书及私钥。
a. 配置本地证书。
certificate-file file-name
缺省情况下,未配置EAP认证使用的本地证书。
当客户端使用的EAP认证方法为PEAP-GTC、PEAP-MSCHAPv2、TTLS-GTC、TTLS-MSCHAPv2、TLS时,如果客户端选择校验服务器的证书,则需要提供本地证书供客户端校验。
b. 配置本地证书的私钥。
private-key-file file-name
缺省情况下,未配置EAP认证使用的本地证书的私钥。
如果本地证书中携带了私钥,则此处指定的私钥文件的名称必须和本地证书文件名称相同。
c. 配置本地证书的私钥密码。
private-key-password { cipher | simple } string
缺省情况下,未配置本地证书的私钥密码。
设备在导入和使用本地证书的私钥时,需要提供对应的私钥密码。本命令配置的私钥密码必须与导出此私钥时指定的密码一致。
(5) 配置EAP认证使用的CA证书。
ca-file file-name
缺省情况下,未配置EAP认证使用的CA证书。
当客户端使用的使用EAP认证方法为PEAP-GTC、PEAP-MSCHAPv2、TTLS-GTC、TTLS-MSCHAPv2时,设备使用CA证书来校验客户端的证书。
(6) 配置EAP认证使用的SSL服务器端策略。
ssl-server-policy policy-name
缺省情况下,未配置EAP认证使用的SSL服务器端策略。
当设备采用EAP终结方式对无线客户端进行认证处理,且客户端使用的EAP认证方法为PEAP-GTC时,设备作为SSL服务器端需要使用SSL服务器端策略与客户端进行TLS隧道的协商。关于设备采用EAP终结方式的详细介绍,请参见“WLAN配置指导”中的“WLAN用户接入认证”。
用户上下线记录功能是指当接入用户上线失败、正常或异常下线后,设备记录并保存相关用户信息,以便管理员进行用户管理以及对用户上下线故障进行快速定位。关闭本功能后,系统将停止记录用户上下线信息,可提高当前可用内存容量,但管理员将看不到用户上下线信息。
本功能仅支持对IPoE、Telnet、SSH、FTP、HTTP、HTTPS接入用户的上下线信息进行记录。
在IPoE支持EDSG的应用环境中,本功能对EDSG业务不生效。
(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 aaa online-fail-record { access-type { ipoe | lan-access | login | portal | ppp } | 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 ] | slot slot-number | 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
可在任意视图下执行以下命令,显示用户正常下线记录。
display aaa normal-offline-record { access-type { ipoe | lan-access | login | portal | ppp } | 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 ] | slot slot-number | 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 abnormal-offline-record { access-type { ipoe | lan-access | login | portal | ppp } | 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 ] | slot slot-number | username user-name [ fuzzy-match ] } * [ brief | count count ]
display aaa abnormal-offline-record offline-reason { idle-cut | 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 offline-record { access-type { ipoe | lan-access | login | portal | ppp } | 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 ] | slot slot-number | 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
请在用户视图下执行以下命令:
· 清除当前所有用户上线失败记录。
reset aaa online-fail-record
· 清除当前所有用户正常下线记录。
reset aaa normal-offline-record
· 清除当前所有用户异常下线记录。
reset aaa abnormal-offline-record
· 清除当前所有用户下线记录。
reset aaa offline-record
本功能适用于设备作为Telnet客户端或者FTP/SSH/SFTP客户端与服务器端建立连接的场景。如果设备上配置了连接记录策略,当设备作为客户端与服务器端成功建立连接时,系统会按照策略中指定的计费方案向AAA服务器发送计费开始报文,并在设备与服务器端断开连接时发送计费结束报文。通过此功能,AAA服务器上将会记录设备的连接情况,便于管理员进行查看。
连接记录业务处理过程中,系统发送给AAA服务器的计费报文中封装的是用户输入的原始用户名,因此计费方案中通过user-name-format命令设置的用户名格式并不生效。
(1) 进入系统视图。
system-view
(2) 创建连接计录策略,并进入连接记录策略视图。
aaa connection-recording policy
(3) 指定连接记录策略采用的HWTACACS计费方案。
accounting hwtacacs-scheme hwtacacs-scheme-name
可在任意视图下执行本命令,显示连接记录策略的配置信息。
display aaa connection-recording policy
AAA请求测试功能是指,通过执行测试命令,由设备向指定的AAA服务器发起一次测试请求来模拟一个用户的认证/计费过程。本功能主要用于排查设备与AAA服务器交互时的故障原因,目前仅支持对RADIUS服务器发起测试。
当故障发生时,管理员可在设备上执行测试命令发起一次RADIUS请求,并通过查看打印出的认证/计费请求结果以及报文交互信息,来快速定位故障发生的关键环节,以及及时排查影响认证/计费结果的RADIUS属性。
基本的AAA请求测试原则如下:
· 整个测试过程不受服务器状态(是否为active状态)以及工作模式(是否为负载分担模式)的影响,所有在测试命令中指定的RADIUS服务器都有可能作为测试对象。
· 如果测试命令中未指定具体的RADIUS服务器,设备将对测试命令中指定的RADIUS方案中的所有服务器轮询测试。轮询测试过程中,设备按照认证请求测试->计费开始请求测试->计费结束请求测试的顺序依次进行,具体测试过程如下:
a. 设备向主认证服务器发送一个认证请求报文,请求报文携带的用户名和密码在测试命令中指定。如果设备收到应答报文(无论认证结果为成功或失败),或最终测试完所有认证服务器后都未收到应答报文,则停止测试认证服务器,并开始测试计费服务器。如果RADIUS方案中未配置认证服务器,则直接进入下个测试环节。
b. 设备开始发送计费开始请求报文,其测试原则与认证服务器的测试原则类似,收到应答或所有服务器都未响应时,则停止测试计费服务器,并进入下个测试环节。
c. 设备向曾经发送过计费开始请求报文的服务器发送计费停止报文,收到应答或所有服务器都未响应时,结束本次测试。
· 如果测试命令中指定了具体的RADIUS服务器,且该服务器参数能够与测试命令中指定的RADIUS方案中的某服务器参数完全匹配,则设备将对该认证/计费服务器发起一次认证/计费请求。
缺省情况下,设备在测试过程中发送的RADIUS请求报文会携带一些属性,如表1-4所示。为了便于辅助排查认证/计费故障,设备还支持由用户通过配置来选择这些RADIUS请求报文中最终要携带的属性,以及允许自定义所携带属性的取值。
表1-4 RADIUS请求报文中缺省携带的属性
报文类型 |
缺省携带的RADIUS属性 |
RADIUS认证请求 |
User-Name、CHAP-Password(或User-Password)、CHAP-Challenge、NAS-IP-Address(或NAS-IPv6-Address)、Service-Type、Framed-Protocol、NAS-Identifier、NAS-Port-Type、Acct-Session-Id |
RADIUS计费请求 |
User-Name、Acct-Status-Type、NAS-IP-Address(NAS-IPv6-Address)、NAS-Identifier、Acct-Session-Id、Acct-Delay-Time、Acct-Terminate-Cause |
关于测试过程,需要关注的是:
· 由于测试期间不能保证设备与AAA服务器可以正常通信,因此不建议同时允许用户进行正常的上线、下线操作。
· 测试过程中,如果引用的RADIUS方案配置发生变化,则仅在下次测试中生效,不对本次测试产生影响。
· 仅允许在同一时间内存在一个测试过程,下一次测试只能在当前测试过程完成后执行。
关于RADIUS报文中携带的属性,需要关注的是:
· 如果一个属性已经被配置为不能携带在RADIUS报文中(通过exclude命令),则需要先执行undo exclude命令取消该配置,才能将其配置为携带在RADIUS报文中。
· 如果一个属性已经被配置为需要携带在RADIUS报文中(通过include命令),则需要先执行undo include命令取消该配置,才能将其配置为不携带在RADIUS报文中。
完成待测试的RADIUS服务器所属RADIUS方案的配置,该RADIUS方案中至少需要配置一个RADIUS服务器。
由于设备按照配置的先后顺序在RADIUS报文中添加属性,且RADIUS报文最大长度为4096个字节,如果配置了过多的RADIUS属性,则在报文长度超过最大值后,部分属性将不会被添加在报文中。因此,请合理规划要添加的RADIUS报文属性数目。
(1) (可选)配置RADIUS属性测试组来调整携带在RADIUS报文中的属性。
a. 进入系统视图。
system-view
b. 创建RADIUS属性测试组,并进入RADIUS属性测试组视图。
radius attribute-test-group attr-test-group-name
系统支持配置多个RADIUS属性测试组。
c. 配置RADIUS报文中携带的属性。
include { accounting | authentication } { name attribute-name | [ vendor vendor-id ] code attribute-code } type { binary | date | integer | interface-id | ip | ipv6 | ipv6-prefix | octets | string } value attribute-value
对于RADIUS报文中缺省携带的属性,可通过本命令来修改属性取值;对于RADIUS报文中非缺省携带的属性,可通过本命令将其添加在RADIUS报文中。
d. 配置RADIUS报文中不能携带的属性。
exclude { accounting | authentication } name attribute-name
可通过本命令排除掉RADIUS报文中携带的一些缺省属性,来辅助排查认证/计费故障。
e. 退回系统视图。
quit
f. 退回用户视图。
quit
(2) 请在用户视图下执行本命令,发起一次AAA请求测试。
test-aaa user user-name password password radius-scheme radius-scheme-name [ radius-server { ipv4-address | ipv6 ipv6-address } port-number [ vpn-instance vpn-instance-name ] ] [ chap | pap ] [ attribute-test-group attr-test-group-name ] [ trace ]
· 执行test-aaa命令后,如果打印认证/计费请求已超时的提示信息,则可能的原因有:
¡ 设备和RADIUS服务器之间路由不可达。
该情况下,需要排查设备和服务器中间通信故障问题。
¡ 设备上配置的认证/计费服务器的UDP端口号以及认证/计费报文的共享密钥与RADIUS服务器上的配置不一致。
该情况下,需要检查用户认证域下引用的RADIUS方案,并在方案下配置与服务器匹配的端口号以及共享密钥。
¡ RADIUS服务器上没有添加接入设备的IP地址或者添加的IP地址不正确。
该情况下,需要在服务器上添加正确的接入设备IP地址,该地址要与设备发送RADIUS报文的源地址保持一致。
¡ RADIUS服务器上的认证或计费端口号被其它程序占用。
该情况下,需要在服务器上检查该端口是否被其它程序占用,若被占用,请将占用端口的程序关闭。
· 执行test-aaa命令后,如果打印RADIUS服务器拒绝此认证请求的提示信息,则需要继续查看RADIUS服务器上记录的认证日志,并结合打印的拒绝原因以及认证日志中描述的失败原因进行相应的处理。比如,RADIUS服务器的数据库中没有该用户信息,用户密码错误。
· 执行test-aaa命令后,如果打印指定的RADIUS方案中未配置要探测的认证/计费服务器的提示信息,则可能的原因有:
¡ test-aaa命令中指定的RADIUS方案下,不存在任何RADIUS服务器的配置。
¡ test-aaa命令中指定的RADIUS方案下,不存在与该命令中指定的RADIUS服务参数匹配的RADIUS服务器。
以上两种情况下,需要保证待测试的RADIUS服务器所属的RADIUS方案中至少配置一个RADIUS服务器,然后重新执行test-aaa命令,并指定正确的RADIUS服务器参数。
用户认证/授权总是失败。
(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) 确保设备的认证服务器和计费服务器的设置与实际情况相同。
使用radius-server activate命令激活RADIUS服务器时返回错误信息:The connection to the active directory server failed.
[sysname-probe] view /var/samba/result.log
FAILURE!
Failed to join domain: failed to lookup DC info for domain 'XXX.COM' over rpc: {Device Timeout} The specified I/O operation on %hs was not completed before the time-out period expired.
(1) 设备与AD服务器之间存在通信故障。
(2) AD服务器主机名对应的主机IP地址不存在或错误。
(3) 设备与AD服务器通信的源IP地址错误。
(1) 使用ping命令检查设备与AD服务器是否可达。
(2) 通过系统视图下display this查看ip host配置是否存在且正确。
(3) 通过ACL过滤445端口号,再通过执行debugging tcp packet acl命令观察TCP报文源IP地址是否正确。
(4) 执行上述操作后,如果确定源IP地址错误,可以在LoopBack0接口下配置IP地址作为RADIUS服务器与AD服务器通信的源IP地址。
(5) 执行上述操作后,再通过在设备侧和AD服务器/交换机侧配置路由保证指定的源IP地址与AD服务器可达。
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-5所示。
表1-5 常见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-6 常见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-group=name1;name2;..;namex。该属性仅对SSL VPN用户生效 · 若不全为数字,不包含等号,且同时下发的下一个属性为H3c-ACL-Version,则表示ACL名称;如果下一个属性不是H3c-ACL-Version,则表示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告知标识用户的号码,在H3C设备提供的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地址 |
185 |
WLAN-Reason-Code |
WLAN终端认证失败的原因码,长度为32bit,前16bit为保留位,后16bit为Reason Code |
186 |
WLAN-Pairwise-Cipher |
WLAN单播帧加密套件,长度为32bit,前24bit为OUI,后8bit为Suite Type |
187 |
WLAN-Group-Cipherr |
WLAN组播帧加密套件,长度为32bit,前24bit为OUI,后8bit为Suite Type |
188 |
WLAN-AKM-Suite |
AKM(Authentication and Key Management,身份认证与密钥管理)模式,长度为32bit,前24bit为OUI,后8bit为Suite Type |
189 |
WLAN-Group-Mgmt-Cipher |
WLAN组播管理帧加密套件,长度为32bit,前24bit为OUI,后8bit为Suite Type |
表1-7列出的RADIUS扩展属性为所有产品可支持属性的合集,具体产品支持情况有所不同。
表1-7 RADIUS扩展属性(Vendor-ID=25506)
子属性编号 |
子属性名称 |
描述 |
1 |
Input-Peak-Rate |
用户接入到NAS的峰值速率,缺省以bps为单位 若通过Av-Pair属性下发了CAR属性的单位,则此属性的单位以下发的单位为准 |
2 |
Input-Average-Rate |
用户接入到NAS的平均速率,缺省以bps为单位 若通过Av-Pair属性下发了CAR属性的单位,则此属性的单位以下发的单位为准 |
3 |
Input-Basic-Rate |
用户接入到NAS的基本速率,缺省以bps为单位 若通过Av-Pair属性下发了CAR属性的单位,则此属性的单位以下发的单位为准 |
4 |
Output-Peak-Rate |
从NAS到用户的峰值速率,缺省以bps为单位 若通过Av-Pair属性下发了CAR属性的单位,则此属性的单位以下发的单位为准 |
5 |
Output-Average-Rate |
从NAS到用户的平均速率,缺省以bps为单位 若通过Av-Pair属性下发了CAR属性的单位,则此属性的单位以下发的单位为准 |
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 |
用户角色列表。多个用户角色名称之间使用空格分隔 |
182 |
Microsegment-Id |
微分段ID |
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 · 下发的授权VSI,格式为vxlan:vsi-name=xxx · 支持按照VSI Index分配ACL资源,格式为ACL:match-by-vsiindex=x(仅x取值为1时表示支持本功能,其它取值保留使用) · 下发的黑洞MAC,格式为mac:block-mac=xxx · 下发的CAR属性的单位,格式为car:car-unit="xxx" · 下发给无线用户的VLAN,格式为vlan:wlan-vlan-id=xxx · 下发给无线用户的VLAN组,格式为vlan:wlan-vlan-group=xxx |
215 |
Accounting-Level |
ITA流量计费级别,取值范围为1~8 |
216 |
Ita-Policy |
ITA(Intelligent Target Accounting)策略名称 |
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 |
产品名称 |
动态授权ACL由若干条动态ACL规则组成,单条动态ACL规则的格式如下:
aclrule?same?acl-name?acl-type?ver-type?rule-id?protocol=protocol-type?counting?dst-ip=ip-addr?src-ip=ip-addr?dst-port=port-value?src-port=port-value?action=action-type。如下例所示:
aclrule?same?test?1?1?1?protocol=3?counting?dst-ip=1.1.1.1/1.1.1.1?src-ip=1.1.1.1/0?dst-port=1.2000?src-port=5.2000-3000?action=1
关于动态授权ACL的定义,需遵循以下约定:
· 服务器端下发的一个动态授权ACL中若需要包含多条ACL规则,则可以在一个子授权属性中同时携带多条ACL规则(彼此以?分隔),或同时授权多个子属性(仅部分服务器支持此方式)。
· ACL规则首部的6组参数(aclrule?same?acl-name?acl-type?ver-type?rule-id)顺序固定,不可调整,后面其余参数顺序可变,且可根据需要进行删减。
· ACL规则中的参数设置必需满足设备上ACL规则的配置逻辑。
· 一次认证时下发的多条ACL规则有相同的ACL名称。
· ACL规则不能为空,且格式合法。
动态ACL规则中各字段含义如下:
· aclrule:固定字符串,用于标识后面的信息是动态ACL规则。
· same:固定字符串,用于标识规则的处理动作为继承。若服务器先后给不同用户下发了同一个ACL,则后续用户上线时,设备将会以该ACL首次成功下发时的规则为准进行授权。目前仅支持same。
· acl-name:ACL名称,为1~63个字符的字符串,不区分大小写,必须以英文字母a~z或A~Z开头,不能为all。动态ACL不能和设备上配置的ACL重名。
· acl-type:ACL的类型,取值为1(高级ACL),且目前仅支持该取值。
· ver-type:IP协议版本,取值为1(IPv4)和2(IPv6协议)。
· rule-id:ACL规则编号,取值范围为0~65534。
· protocol-type:协议类型,取值为1(IP)、2(ICMP)、3(TCP)、4(UDP)、5(ICMPv6)、6(IPv6)。
· counting:标识规则的匹配统计功能处于开启状态。若规则中未携带该字段,则表示该统计功能处于关闭状态。
· ip-addr:地址信息,取值为any或具体的IP地址。例如:1.1.1.1/1.1.1.1、1.1.1.1/0、3::3/128。
· port-value:TCP/UDP端口信息,格式为X.YYY。其中,X表示操作符,取值为1(等于)、2(大于)、3(小于)、4(不等于)、5(在范围内,包括边界值),YYY表示具体的端口信息。例如:1.3000、5.2000-3000。
· action-type:动作类型,取值为1(deny)和2(permit)。
服务器端通过Vendor-ID为9的自定义属性对(CISCO-AV-Pair)为用户下发动态ACL时,采用的属性格式如下:
· CiscoSecure-Defined-ACL=#ACSACL#-IP-name-number
其中,name表示ACL名称,number表示版本号。
例如:CiscoSecure-Defined-ACL=#ACSACL#-IP-UACL-0
· ip:inacl#number=rule
其中,number表示ACL规则编号,rule表示规则字符串。
例如:ip:inacl#1=permit udp any any eq 21862
目前,仅部分设备的802.1X和MAC地址认证支持以上自定义属性对。如果RADIUS服务器同时通过Vendor-ID为25506的自定义属性对为用户下发了动态ACL,则本属性将被忽略。
下发动态ACL的总体业务流程如下:
(1) 用户认证通过后,服务器通过CiscoSecure-Defined-ACL属性对为其授权动态ACL名称。
(2) 设备采用该动态ACL名称作为认证的用户名对用户进行二次认证。
(3) 用户的二次认证通过后,服务器通过ip:inacl#number=rule属性对为其授权ACL规则(可多条)。
(4) 设备解析收到的授权ACL规则属性对,为用户创建并下发对应的ACL规则。
当前,设备仅支持解析如下格式的动态ACL规则:
{ deny | permit } protocol [ destination { dest-address dest-wildcard | any } | destination-port operator port1 [ port2 ] | source { source-address source-wildcard | any } | source-port operator port1 [ port2 ] ]
以上ACL规则中的operator为操作符,取值可以为lt(小于)、gt(大于)、eq(等于)、neq(不等于)。
在HWTACACS授权或计费报文中,携带了服务器下发给用户或用户上传给服务器的属性信息。设备支持的HWTACACS属性如表1-8所示,对于不在该表内的属性,设备不对其进行解析,直接忽略。
表1-8 HWTACACS属性描述
属性名称 |
描述 |
acl |
授权的ACL编号 |
idletime |
空闲切断时间,单位为秒 |
priv-lvl |
用户的级别,表示level0~level15 |
ftp-directory |
FTP用户的初始目录 |
addr |
用户的授权IP地址 |
addr-pool |
用户的授权IP地址池 |
tunnel-type |
将要建立的隧道类型,目前仅支持L2TP隧道 |
ip-addresses |
LNS的IP地址 |
tunnel-id |
L2TP隧道的Group ID |
gw-password |
L2TP隧道的验证密码 |
roles |
授权的用户角色 |
allowed-roles |
允许的super用户角色 |
server_msg |
服务器的响应信息,长度不能超过253个字节,否则信息将被截断 |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!