此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍ASR 9000系列汇聚服务路由器(ASR)的配置,以通过TACACS+和思科安全访问控制服务器(ACS) 5.x服务器进行身份验证和授权。
以下示例说明了基于任务的授权管理模型的实施,该模型用于控制思科IOS XR软件系统中的用户访问。实施基于任务的授权所需的主要任务涉及如何配置用户组和任务组。用户组和任务组通过用于身份验证、授权和记帐(AAA)服务的Cisco IOS XR软件命令集进行配置。身份验证命令用于验证用户或主体的身份。授权命令用于验证经过身份验证的用户(或主体)是否被授予执行特定任务的权限。记帐命令用于记录会话,并通过记录某些用户或系统生成的操作来创建审核跟踪。
Cisco 建议您了解以下主题:
本文档中的信息基于以下软件和硬件版本:
本文档中的信息在特定实验室环境设备上创建。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有配置更改的潜在影响。
IOS XR中有预定义的用户组和任务组。管理员可以根据需要使用这些预定义组或定义自定义组。
这些用户组在IOS XR上已预定义:
用户组 | 权限 |
---|---|
Cisco支持 | 调试和故障排除功能(通常由思科技术支持人员使用)。 |
网络管理员 | 配置网络协议,例如开放最短路径优先(OSPF)(通常由网络管理员使用)。 |
操作员 | 执行日常监控活动,并具有有限的配置权限。 |
root-lr | 显示和执行单个RP中的所有命令。 |
根系统 | 显示并执行系统中所有RP的所有命令。 |
sysadmin | 执行路由器的系统管理任务,例如维护核心转储的存储位置或设置网络时间协议(NTP)时钟。 |
serviceadmin | 执行服务管理任务,例如会话边界控制器(SBC)。 |
根系统用户组具有预定义的授权;也就是说,它完全负责根系统用户管理的资源,并负责其他服务中的某些责任。
使用以下命令检查预定义用户组:
RP/0/RSP1/CPU0:ASR9k#show aaa usergroup ? | Output Modifiers root-lr Name of the usergroup netadmin Name of the usergroup operator Name of the usergroup sysadmin Name of the usergroup root-system Name of the usergroup serviceadmin Name of the usergroup cisco-support Name of the usergroup WORD Name of the usergroup <cr>
管理员可使用这些预定义任务组,通常用于初始配置:
使用以下命令检查预定义任务组:
RP/0/RSP1/CPU0:ASR9k#show aaa taskgroup ? | Output Modifiers root-lr Name of the taskgroup netadmin Name of the taskgroup operator Name of the taskgroup sysadmin Name of the taskgroup root-system Name of the taskgroup serviceadmin Name of the taskgroup cisco-support Name of the taskgroup WORD Name of the taskgroup <cr>
使用此命令检查支持的任务:
RP/0/RSP1/CPU0:ASR9k#show aaa task supported
以下是支持的任务列表:
AAA |
Acl |
管理员 |
Ancp |
Atm |
基本服务 |
Bcdl |
Bfd |
调试输出中显示“bgp |
Boot |
捆绑包 |
呼叫总部 |
CDP |
Cef |
Cgn |
Cisco支持 |
配置管理 |
配置服务 |
加密 |
Diag |
不允许 |
驱动因素 |
Dwdm |
Eem |
Eigrp |
以太网服务 |
外部访问 |
交换矩阵 |
故障管理器 |
文件系统 |
防火墙 |
Fr |
HDLC |
主机服务 |
hsrp |
接口 |
资产 |
IP服务 |
Ipv4 |
Ipv6 |
伊希斯 |
L2vpn |
李 |
Lisp |
日志记录 |
Lpts |
监控 |
mpls-ldp |
mpls-static |
mpls-te |
组播 |
Netflow |
网络 |
nps |
OSPF |
乌尼 |
Pbr |
pkg-mgmt |
pos-dpt |
PPP |
Qos |
Rcmd |
rib |
RIP |
root-lr |
根系统 |
route-map |
路由策略 |
Sbc |
SNMP |
sonet-sdh |
静态 |
Sysmgr |
system |
传输 |
tty访问 |
隧道 |
通用 |
Vlan |
Vpdn |
vrrp |
上述每项任务都可以赋予上述任意或上述所有四种权限。
读取 |
指定仅允许读取操作的指定。 |
写入 |
指定允许更改操作并隐式允许读取操作的指定。 |
执行 |
指定允许访问操作的标识;例如ping和Telnet。 |
调试 |
指定允许调试操作的指定。 |
管理员可以配置自己的用户组以满足特定需求。 以下是配置示例:
RP/0/RSP1/CPU0:ASR9k(config)#usergroup TAC-Defined RP/0/RSP1/CPU0:ASR9k(config-ug)#taskgroup operator RP/0/RSP1/CPU0:ASR9k(config-ug)#commit
管理员可以配置自己的任务组以满足特定需求。 以下是配置示例:
RP/0/RSP1/CPU0:ASR9k(config)#taskgroup TAC-Defined-TASK RP/0/RSP1/CPU0:ASR9k(config-tg)#task ? debug Specify a debug-type task ID execute Specify a execute-type task ID read Specify a read-type task ID write Specify a read-write-type task ID RP/0/RSP1/CPU0:ASR9k(config-tg)#task read aaa RP/0/RSP1/CPU0:ASR9k(config-tg)#task write aaa RP/0/RSP1/CPU0:ASR9k(config-tg)#task execute aaa RP/0/RSP1/CPU0:ASR9k(config-tg)#task debug aaa RP/0/RSP1/CPU0:ASR9k(config-tg)#task read acl RP/0/RSP1/CPU0:ASR9k(config-tg)#task write acl RP/0/RSP1/CPU0:ASR9k(config-tg)#task execute acl RP/0/RSP1/CPU0:ASR9k(config-tg)#commit RP/0/RSP1/CPU0:ASR9k#show aaa taskgroup TAC-Defined-TASK Task group 'TAC-Defined-TASK' Task IDs included directly by this group: Task: aaa : READ WRITE EXECUTE DEBUG Task: acl : READ WRITE EXECUTE Task group 'TAC-Defined-TASK' has the following combined set of task IDs (including all inherited groups): Task: aaa : READ WRITE EXECUTE DEBUG Task: acl : READ WRITE EXECUTE
如果您不确定如何查找特定命令所需的任务组和权限,可以使用describe 命令查找。 例如:
示例 1:
RP/0/RSP1/CPU0:ASR9k#describe show aaa usergroup Package: ..... User needs ALL of the following taskids: aaa (READ) RP/0/RSP1/CPU0:ASR9k#
为了允许用户运行show aaa usergroup命令,您需要在任务组中允许此行:
任务读取aaa
示例 2:
RP/0/RSP1/CPU0:ASR9k(config)#describe aaa authentication login default group tacacs+ Package: ..... User needs ALL of the following taskids: aaa (READ WRITE) RP/0/RSP1/CPU0:ASR9k(config)#
为了允许用户从配置模式运行aaa authentication login default group tacacs+命令,您需要在任务组中允许此行:
任务读写aaa
您可以定义可以导入多个任务组的用户组。以下是配置示例:
RP/0/RSP1/CPU0:ASR9k#show aaa usergroup TAC-Defined Tue Feb 16 00:50:56.799 UTC User group 'TAC-Defined' Inherits from task group 'operator' User group 'TAC-Defined' has the following combined set of task IDs (including all inherited groups): Task: basic-services : READ WRITE EXECUTE DEBUG Task: cdp : READ Task: diag : READ Task: ext-access : READ EXECUTE Task: logging : READ RP/0/RSP1/CPU0:ASR9k#conf t RP/0/RSP1/CPU0:ASR9k(config)#usergroup TAC-Defined RP/0/RSP1/CPU0:ASR9k(config-ug)#taskgroup TAC-Defined-TASK RP/0/RSP1/CPU0:ASR9k(config-ug)#commit RP/0/RSP1/CPU0:ASR9k#show aaa usergroup TAC-Defined Tue Feb 16 00:51:31.494 UTC User group 'TAC-Defined' Inherits from task group 'operator' Inherits from task group 'TAC-Defined-TASK' User group 'TAC-Defined' has the following combined set of task IDs (including all inherited groups): Task: aaa : READ WRITE EXECUTE DEBUG Task: acl : READ WRITE EXECUTE Task: basic-services : READ WRITE EXECUTE DEBUG Task: cdp : READ Task: diag : READ Task: ext-access : READ EXECUTE Task: logging : READ
在路由器上定义TACACS服务器:
此处您将ACS服务器IP地址定义为tacacs-server,密钥为cisco
RP/0/RSP1/CPU0:ASR9k(config)#tacacs-server host 10.106.73.233 port 49 RP/0/RSP1/CPU0:ASR9k(config-tacacs-host)#key 0 cisco RP/0/RSP1/CPU0:ASR9k(config-tacacs-host)#commit ! tacacs-server host 10.106.73.233 port 49 key 7 14141B180F0B !
将身份验证和授权指向外部TACACS服务器。
#aaa authentication login default group tacacs+ local #aaa authorization exec default group tacacs+ local
命令授权(可选):
#aaa authorization commands default group tacacs+
将记帐指向外部服务器(可选)。
#aaa accounting commands default start-stop group tacacs+ #aaa accounting update newinfo
步骤1:要在ACS服务器上的AAA客户端列表中定义路由器IP,请导航到Network Resources > Network Devices and AAA Clients,如图所示。在本示例中,请按照ASR中的配置将cisco定义为共享密钥。
第二步:根据您的要求定义用户组。在此示例中,您使用四个组,如下图所示。
第三步:如图所示,创建用户并将其映射到上面创建的各个用户组。
注意:在本示例中,使用ACS内部用户进行身份验证,如果要使用在外部身份库中创建的用户也可以使用他们。在本示例中,不包括外部身份源用户。.
第四步:定义要为各个用户推送的外壳配置文件。
在已创建的外壳配置文件中,配置以推送各个任务组,如图所示。
第五步:定义访问策略。对内部用户执行身份验证。
第六步:使用之前创建的用户身份组并根据要求配置授权并映射各自的Shell配置文件,如图所示。
要登录,请使用用户名asrread。 以下是验证命令。
username: ASRread password: RP/0/RSP1/CPU0:ASR9k#show user ASRread RP/0/RSP1/CPU0:ASR9k#show user group operator RP/0/RSP1/CPU0:ASR9k#show user tasks Task: basic-services : READ WRITE EXECUTE DEBUG Task: cdp : READ Task: diag : READ Task: ext-access : READ EXECUTE Task: logging : READ
要登录,请使用用户名asraaa。以下是验证命令。
注意:asraaa是从TACACS服务器推送的操作员任务,具有aaa任务读写和执行权限。
username: asraaa password: RP/0/RSP1/CPU0:ASR9k#sh user asraaa RP/0/RSP1/CPU0:ASR9k#sh user group operator RP/0/RSP1/CPU0:ASR9k#sh user tasks Task: aaa : READ WRITE EXECUTE Task: basic-services : READ WRITE EXECUTE DEBUG Task: cdp : READ Task: diag : READ Task: ext-access : READ EXECUTE Task: logging : READ
要登录,请使用用户名asrwrite。 以下是验证命令。
username: asrwrite password: RP/0/RSP1/CPU0:ASR9k#sh user asrwrite RP/0/RSP1/CPU0:ASR9k#sh user group sysadmin RP/0/RSP1/CPU0:ASR9k#sh user tasks Task: aaa : READ Task: acl : READ WRITE EXECUTE DEBUG Task: admin : READ Task: ancp : READ Task: atm : READ Task: basic-services : READ WRITE EXECUTE DEBUG Task: bcdl : READ Task: bfd : READ Task: bgp : READ Task: boot : READ WRITE EXECUTE DEBUG Task: bundle : READ Task: call-home : READ Task: cdp : READ WRITE EXECUTE DEBUG Task: cef : READ Task: cgn : READ Task: config-mgmt : READ WRITE EXECUTE DEBUG Task: config-services : READ WRITE EXECUTE DEBUG Task: crypto : READ WRITE EXECUTE DEBUG Task: diag : READ WRITE EXECUTE DEBUG Task: drivers : READ Task: dwdm : READ Task: eem : READ WRITE EXECUTE DEBUG Task: eigrp : READ Task: ethernet-services : READ --More-- (output omitted )
要登录,请使用用户名asrroot。以下是验证命令。
username: asrroot password: RP/0/RSP1/CPU0:ASR9k#show user asrroot RP/0/RSP1/CPU0:ASR9k#show user group root-system RP/0/RSP1/CPU0:ios#show user tasks Task: aaa : READ WRITE EXECUTE DEBUG Task: acl : READ WRITE EXECUTE DEBUG Task: admin : READ WRITE EXECUTE DEBUG Task: ancp : READ WRITE EXECUTE DEBUG Task: atm : READ WRITE EXECUTE DEBUG Task: basic-services : READ WRITE EXECUTE DEBUG Task: bcdl : READ WRITE EXECUTE DEBUG Task: bfd : READ WRITE EXECUTE DEBUG Task: bgp : READ WRITE EXECUTE DEBUG Task: boot : READ WRITE EXECUTE DEBUG Task: bundle : READ WRITE EXECUTE DEBUG Task: call-home : READ WRITE EXECUTE DEBUG Task: cdp : READ WRITE EXECUTE DEBUG Task: cef : READ WRITE EXECUTE DEBUG Task: cgn : READ WRITE EXECUTE DEBUG Task: config-mgmt : READ WRITE EXECUTE DEBUG Task: config-services : READ WRITE EXECUTE DEBUG Task: crypto : READ WRITE EXECUTE DEBUG Task: diag : READ WRITE EXECUTE DEBUG Task: drivers : READ WRITE EXECUTE DEBUG Task: dwdm : READ WRITE EXECUTE DEBUG Task: eem : READ WRITE EXECUTE DEBUG Task: eigrp : READ WRITE EXECUTE DEBUG --More-- (output omitted )
您可以从monitoring and reporting页面验证ACS报告。 如图所示,您可以单击放大镜按钮查看详细报告。
以下是在ASR上进行故障排除的一些有用命令:
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
07-Nov-2017 |
初始版本 |