Notes - AAA
IOS-XE
Enable AAA new-model
Add a radius server
Authentication
Authentication verifies the identity of a user to allow access to the device.
Set the authentication default method list. The “default” method list is used by default on the console, VTY lines, and the AUX port. You can also specify a different name for the method list and apply it manually to the lines.
Possible methods include:
Local (local username authentication)
Line (line password)
Group (radius, tacacs or ldap)
enable (use enable password for authentication)
Subsequent methods are only attempted if the previous method cannot be used. (For example the radius server cannot be reached).
To use a named list you instead use:
Besides performing authentication for remote logins, you can also configure authentication for enable mode, ppp, dot1x and more.
To apply a non-default method list to a line you use:
Authorization
Authorization defines what the user can do once they are authenticated. This can be simply defined locally using the privilege level, or the privilege level can be associated with the user in the radius/tacacs database.
You can define authorization methods for:
commands (exec shell commands)
config-commands (config mode commands)
exec (for the ability to start an exec shell)
console (this is separate from starting an exec shell)
Just like with authentication, you can use a default list or a named list.
The if-authenticated keyword means that authorization is only used if the user was previously authenticated through RADIUS/TACACS.
To apply a non-default authorization list to a line you use:
TACACS can also provide a per-command authorization. This cannot be used with RADIUS. You define authorization for commands and the specific level. By deafult a device has commands for level 0, 1, and 15.
Accounting
Accounting keeps track of what the user has done. This can be configured for:
commands (every exec command that is entered)
exec (starting an exec shell)
network (ppp)
dot1x
When you define a method list, you must specify whether it is for start and stop, or stop only. If using stop-only, this means that the record is taken only when the service terminates. With accounting you can only send accounting information to a radius and/or tacacs group.
IOS-XR
User groups
AAA using IOS-XR is quite similar to IOS-XE. The same idea of defining AAA method lists and applying them to lines exists. However, IOS-XR also uses the concept of task groups and user groups to define permissions instead of using privilege levels.
By default, the router has several pre-defined user groups. The root-system user group allows access to the entire system. The root-lr user group allows access to that specific SDR. (A user belonging to root-lr cannot enter admin mode). There are also other pre-defined user groups such as cisco-support, operator, sysadmin, etc.
You can create custom user groups to have granular control over what access a user has. Each task can have a read/write/execute/debug permission. For example:
A handy way to determine what tasks a user needs to execute a given ommand is to use describe <command> from exec mode.
These taskgroups are then applied to usergroups. Each usergroup can have multiple taskgroups. You can mix and match pre-defined taskgroups and custom taskgroups.
Taskgroups and usergroups can also inherit each other to provide for flexibilty. Below, the taskgroup NEW will inherit all tasks from the taskgroup operator, plus add write for OSPF. The usergroup NEW_UG will inherit all taskgroups for the usergroup UG1, plus add taskgroup NEW.
A user is assigned to a usergroup as follows. They can be assigned to multiple groups at once.
AAA
External AAA works very similarly to IOS-XE. You can also assign the usergroup via TACACS or RADIUS by adding the group as an attribute to the user on the external server. For example, this gives the user R/W/X/D for OSPF plus assigns them to the group “operator”. This is defined the server itself, not the router.
You can also use legacy privilege levels from the external AAA server. These will automatically be mapped to corresponding usergroups on IOS-XR with the name “priv#”. So if you assign a user to privilege level 10 on the AAA server, it will be assigned to usergroup priv10 on IOS-XR.
The following defines a radius server and uses it in a group:
The following defines a tacacs server and uses it in a group:
AAA method lists work just like IOS-XE:
These must be applied to VTY lines by using a template or using the default template:
Last updated