Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Cisco IOS XR supports external AAA using standard IP-based protocols such as TACACS+ and RADIUS. TACACS+ and RADIUS protocols can be used in conjunction with a product such as the Cisco Secure Access Control Server (ACS) to provide an external AAA database. The following describes some key elements of AAA configuration:
The security server and client are identified by IP addresses and a secret shared key is configured between them.
The notion of a user group on IOS XR local AAA is unrelated to a user group on an ACS server. The configuration of user groups on the ACS server is a separate ACS-only feature.
IOS XR task groups are identified as optional attributes on the ACS server. Two methods exist that can help identify task IDs remotely. The first method uses the concept of task maps and the second uses the privilege levels.
Example 6-5 demonstrates the external configuration for tasks. Note that these configurations are on the server side of external AAA and not on the router.
user = igpadmin{
member = igp-admin-group
opap = cleartext "cisco"
service = exec {
task = "rwxd:ospf,#operator"
}
} |
Example 6-5 specifies the task ID as an attribute in the external TACACS+ or RADIUS server. Note that this is shown as an example only. Because the procedure can vary from server to server, consult the TACACS+ or RADIUS server documentation to find out how you can use the optional attributes. A freeware TACACS+ server from Cisco might require an asterisk (*) instead of an equal sign (=) before the attribute value for optional attributes. Example 6-5 shows the task string in the configuration file of the TACACS+ server where tokens are delimited by a comma (,). Each token contains either a task ID name or its permissions in the following format:
task = "<permissions>:<taskid name>, #<usergroup name>, ..." .
In Example 6-5, the task = “rwxd:ospf,#operator” assigns READ, WRITE, EXECUTE, and DEBUG task IDs to the OSPF task and assigns the user group operator.
Example 6-6 is quoted from Cisco.com and demonstrates the ability to interact with a TACACS+ daemon that does not have the concept of task IDs. In this case a privilege-level mapping is used.
!
! TACACS+ example
!
user = admin1{
member = bar
service = exec-ext {
priv_lvl = 5
}
}
!
!RADIUS Example using Cisco AV-pair
!
user = admin2{
member = bar
Cisco-AVPair = "shell:tasks=#root-system,#cisco-support"{
Cisco-AVPair = "shell:priv-lvl=10"
}
} |
Cisco IOS XR AAA supports a mapping between privilege levels that can be defined for a given user in the external TACACS+ server file. The local user group on the router needs to be configured with a user group with a name that matches the privilege level. After TACACS+ authentication, the user gets assigned the task map of the user group mapped to the privilege level received from the external TACACS+ server. Example 6-6 shows a TACACS+ configuration followed by a RADIUS configuration. If the IOS XR router is configured with local user groups priv5 and priv10, they can be mapped to the privilege levels 5 and 10 configured for TACACS+ and RADIUS, respectively. Privilege levels from 1 to 13 may be used in a similar way. Privilege level 15 maps to the root-system and privilege level 14 maps to root-lr.
The following sections discuss the configuration behind external AAA. Various CLI command options for configuring TACACS+ are presented.
Figure 6-2 shows an IOS XR router connected to an ACS server. Example 6-7 creates a simple TACACS+ configuration using an external ACS server with an IP address of 172.18.172.16.
|
Code View:
Scroll
/
Show All RP/0/RP0/CPU0:CRS-A#show run aaa
usergroup priv11
taskgroup netadmin
taskgroup igpadmin
!
tacacs-server host 172.18.172.16 port 49
tacacs-server key 7 06150E2F46411A1C
tacacs source-interface MgmtEth0/0/CPU0/0
!
aaa group server tacacs+ chap6
server 172.18.172.17
!
aaa authentication login console local
aaa authentication login chap-6 group chap6 local
aaa default-taskgroup root-system
!
line template lab
login authentication chap-6
exec-timeout 30 0
!
line console
login authentication console
vty-pool default 0 99 line-template lab
|
In Example 6-7, a privilege 11 configuration exists on the ACS server. The AAA server is identified with the tacacs server host command and a backup server is identified with the aaa group server command. The local keyword in the aaa authentication login chap-6 group chap6 local command ensures that AAA will authenticate locally in the case of failure of both the ACS servers. The AAA method list chap-6 gets assigned to the vty pool.
This section shows some configuration examples for AAA RADIUS client configuration on IOS XR to allow authentication with an external ACS server.
Example 6-8 shows a basic AAA RADIUS configuration. The basic concept is the same as that shown in Example 6-7 except the TACACS+ protocol has been replaced by RADIUS.
RP/0/RP0/CPU0:CRS-B_IOX#show run aaa
usergroup priv13
taskgroup root-system
taskgroup cisco-support
!
radius-server host 172.18.172.16
key 7 104D000A0618
!
radius source-interface MgmtEth0/RP0/CPU0/0
aaa authentication login telnet group radius local
aaa authentication login default local
!
line template rads
login authentication telnet
exec-timeout 0 0
session-timeout 0
vty-pool default 0 99 line-template rads
telnet ipv4 server max-servers no-limit |
Example 6-9 shows AAA RADIUS authentication and introduces a new authorization command: aaa authorization exec default none. This command has the same effect as the keyword if-authenticated in IOS AAA authorization commands. The configuration states that if a user is authenticated, that user is also authorized.
|
Code View:
Scroll
/
Show All ! Configures Radius server dead times and dead-criteria ! radius-server deadtime 1 radius-server dead-criteria time 15 radius-server dead-criteria tries 2 ! ! Configures the RADIUS server hosts ! aaa group server radius XR-GROUP server 172.18.172.16 auth-port 1645 acct-port 1646 server 172.18.172.17 auth-port 1645 acct-port 1646 ! ! Enables AAA accounting aaa accounting exec default start-stop group XR-GROUP aaa accounting commands default start-stop group XR-GROUP ! ! Configure authorization to occur automatically if the user gets authenticated ! aaa authorization exec default none ! ! sets login authentication to use the default method list and XR-GROUP server aaa authentication login default group XR-GROUP local end |