Dial-In User Authentication, Authorization, and Accounting (AAA)
This section deals with the authentication of users accessing dial-in services. Authentication can occur at either the user or the device level.
The most commonly used protocols for a dial-in connection are the Point-to-Point Protocol (PPP) and the Serial Line Internet Protocol (SLIP). Both of these protocols require a minimum of a 1200 baud connection.
Although using Password Authentication Protocol (PAP) or Challenge Handshake Authentication Protocol (CHAP) for authentication is a viable option in smaller environments, the administrative overhead involved might become unmanageable in a larger environment. This is because each user should have a separate entry. A single entry can be made for multiple users, but this practice violates a basic rule that passwords should not be shared. Imagine the overhead involved in setting up and maintaining 100 users, especially if you are trying to enforce a policy that requires changing of passwords every 60 days.
In addition to PAP and CHAP password authentication, TACACS+ or RADIUS authentication can also be used to perform AAA functions. Both of these build a database of users and passwords. Terminal Access Controller Access Control System Plus (TACACS+) and Remote Access Dial-In User Service (RADIUS) also have the added benefit of including authorization and accounting services.
Some confusion within the industry surrounds the distinctions between the three areas of AAA: authentication, authorization, and accounting. This note is provided to clear up any residual uncertainty.
Authentication refers to the process of ensuring that the claimed identity of a device or end user is valid. An example is user Terry being authenticated through the use of a password.
Authorization refers to the act of allowing or disallowing access to certain areas of the network (programs, data, and so on) based on the user, system, or program. An example is user Terry being allowed to access payroll data as a member of the payroll department.
Accounting refers to tracking (and by implication, logging) the resources that are used by a given user or system. This allows a company to charge for the specific services used. An example is logging the time user Terry spends logged in through a dialed connection.
As an example, when Terry starts up the computer, there is a password prompt. If the password is the correct one, Terry is authenticated and can now use the computer.
Terry starts to open the payroll program, which resides on a network server. Before the program is opened, the authorization process occurs to ensure that Terry should have access to the program. If Terry is authorized to use the program, the process continues.
If Terry dials into the network, the accounting process would start recording facts about this access, such as the user and the date and time.
Now take a few minutes and explore a simple example configuration. In this example, AAA is enabled using the local security database, instead of either a TACACS+ or RADIUS server. This example will serve as a primer to the AAA methodology. The local database is stored within the router and does not require any outside entity to work properly. Look through this configuration and read the imbedded comment lines, which are preceded by a (!). The commands shown here will be more fully explained throughout the chapter.
aaa new-model !Get ready to use AAA security aaa authentication login default local !By default, use the local database for authentication of logins aaa authentication arap default local !By default, use the local database for authentication of ARAP aaa authentication ppp default local !By default, use the local database for authentication on PPP aaa authorization exec local !Use the local database for authentication of EXEC commands aaa authorization network local !Use the local database for authentication of Network Services !The aaa authorization command is fully explained later in this !chapter in the section, "AAA Authorization Setup." !For the moment, it is sufficient to know that this command !authorized the user to do certain commands and run certain programs. !Using the username command is what actually builds the local security database. !In this example, three users are being added !to the local database: amason, mnewcomb, and jkane. username amason privilege exec level 7 password 7 Aeb98768 !Set Andrew Mason's exec privilege level at 7 and set Andrew Mason's password username mnewcomb privilege exec level 6 password 7 010102238746 !Set Mark Newcomb's EXEC privilege level to 6 and set Mark Newcomb's password username jkane privilege exec level 8 password 7 095E4F10140A1916 !Set John Kane's EXEC level to 8 and set John Kane's password privilege exec level 6 slip privilege exec level 7 ppp privilege exec level 8 arap !This associates the execution of SLIP, PPP, and ARAP with privilege levels. !Because John Kane has a privilege level of 8, he can use ARAP, PPP, or SLIP. !Andrew can use both ARAP and PPP because he has a privilege level of 7. !Mark can only use SLIP because he has a privilege level of 6. !The higher the privilege level, from 0-15, the more rights a user has. interface Group-Async1 ppp authentication chap default !Use PPP authentication on this interface group-range 1 16 ! line console 0 login authentication default !Previously the default authentication method for !logins was set to use the local database line 1 16 arap authentication default !Previously the default authentication method for !ARAP was set to use the local database
This configuration relies solely on the local security database to authenticate and authorize users. This is one of the simplest configurations available, but it should suffice to give you some exposure to the AAA model. The AAA model will continue to be explored throughout this chapter. The next section will deal with authentication using TACACS+ and RADIUS servers.