Remote Authentication Dial-In User Service
RADIUS is a client/server-based system that secures a Cisco network against intruders. Implemented in Cisco IOS, RADIUS sends authentication requests to a RADIUS server. RADIUS was created by Livingston Enterprises and is now defined in RFCs 2865/2866 (RFCs 2138/2139 are now obsolete).
A RADIUS server is a device that has the RADIUS daemon or application installed. RADIUS must be used with AAA to enable the authentication, authorization, and accounting of remote users when using Cisco IOS routers.
When a RADIUS server authenticates a user, the following events occur:
The user is prompted for and enters a username and password.
The username and encrypted password are sent over the network to the RADIUS server. These events are sent via the packet format known as Access-Request.
The user receives one of the following responses from the RADIUS server:
- ACCESS-ACCEPT— The user is authenticated.
- ACCESS-REJECT— The user is not authenticated and is prompted to re-enter the username and password, or access is denied. The RADIUS server sends this response when the user enters an invalid username/password pairing.
- ACCESS-CHALLENGE— A challenge is issued by the RADIUS server. The challenge collects additional data from the user.
- CHANGE PASSWORD— The RADIUS server issues a request asking the user to select a new password.
An ACCESS-ACCEPT or ACCESS-REJECT response may contain additional information for services that the user can access, including Telnet, rlogin, or local-area transport (LAT) connections, and PPP, Serial Line Internet Protocol (SLIP), or EXEC services.
RADIUS is commonly used when PPP is used. Figure 4-2 displays a typical PPP connection request to a RADIUS server.
Figure 4-2 RADIUS Sequence Example
The RADIUS server accepts or rejects a username and password pair. In some instances, a user might be asked to enter more information (this is called a challenge response). For example, if a user's password has expired, a RADIUS server prompts the user for a new password.
Transactions between the client (end user) and the RADIUS server are authenticated through a shared secret. The username is sent as clear text. RADIUS supports both Password Authentication Protocol (PAP) and Challenge Handshake Authentication Protocol (CHAP). PAP and CHAP are security protocols that allow users to gain access to remote devices with PPP. A RADIUS server will never send the user's password over the network in any circumstance. If the username/password pairing is entered incorrectly, the RADIUS server sends an ACCESS-REJECT response. The end user must re-enter the pairings or the connection will be rejected. Note that PAP sends the end user's password in the clear to the NAS, but from the NAS to the RADIUS server (the NAS and the RADIUS communicate using the shared secret), the end user's password is encrypted.
RADIUS supports a number of predefined attributes that can be exchanged between client and server, such as the client's IP address. RADIUS attributes carry specific details about authentication.
RFC 2138 defines a number of attributes. The following list provides details for the most common attributes:
- Attribute type 1— Username (defines usernames, such as numeric, simple ASCII characters, or a Simple Mail Transfer Protocol [SMTP] address).
- Attribute type 2— User Password (defines the password, which is encrypted using Message Digest 5 [MD5]).
- Attribute type 3— CHAP Password (used only in access-request packets).
- Attribute type 4— NAS IP Address (defines the NAS's IP address; used only in access-request packets).
- Attribute type 5— NAS Port (this is not the User Datagram Protocol [UDP] port number; it indicates the NAS's physical port number, ranging from 0 to 65,535).
- Attribute type 6— Service-Type of service requested or type of service to be provided. Now supported in Cisco IOS. See (requires CCO login) http://www.cisco.com/en/US/partner/products/sw/iosswrel/ps1839/products_feature_guide09186a0080110bed.html#1024276.
- Attribute type 7— Framed-Protocol defines required framing; for example, PPP is defined when this attribute is set to 1 and SLIP is set to 2.
- Attribute type 8— Framed-IP-Address defines the IP address to be used by the remote user.
- Attribute type 9— Framed-IP-Netmask defines the subnet mask to be used by the remote user.
- Attribute type 10— Framed-Routing.
- Attribute type 13 —Framed-Compression.
- Attribute type 19— Callback-Number.
- Attribute type 26— Vendor-Specific. Cisco (vendor-ID 9) uses one defined option: vendor type 1 named cisco-avpair; this attribute transmits TACACS+ A/V pairs.
- Attribute type 61— NAS-Port-Type
Table 4-2 summarizes the RADIUS protocol's main features.
Table 4-2. Summary of RADIUS Protocol Features
Packets sent between the client and server are UDP, primarily because TCP's overhead does not allow for significant advantages. Typically, the user can wait for a username/password prompt.
UDP destination port
1812 and 1813. Defined in RFC 2865, which supersedes RFC 2138. Early deployments RADIUS used UDP ports 1645 and 1646.
Attributes are used to exchange information between the NAS and client.
Client/server-based model in which packets are exchanged in a unidirectional manner.
The password is encrypted using MD5; the username is not encrypted. RADIUS encrypts only the password in the access-request packet, sent from the client to the server. The remainder of the packet is transmitted in clear text. A third party could capture other information, such as the username, authorized services, and accounting information.
Does not support protocols such as AppleTalk, NetBIOS, or IPX. IP is the only protocol supported.
Now, examine the RADIUS configuration tasks required on a Cisco router.
IETF Attribute 26 (Vendor-Specific) encapsulates vendor-specific attributes, thereby allowing vendors to support their own extended attributes. Attribute 26 contains the following three elements:
- String (also known as data)
RADIUS Configuration Task List
A RADIUS server is usually software that runs on a variety of platforms, including Microsoft Windows 2000 Server and various UNIX hosts. RADIUS can authenticate router users and even validate IP routes.
To configure RADIUS on your Cisco router or NAS, perform the following tasks:
Enable AAA with the aaa new-model global configuration command. AAA must be configured if you plan to use RADIUS.
Use the aaa authentication global configuration command to define method lists for RADIUS authentication.
Use line and interface commands to enable the defined method lists to be used.
Define the RADIUS server and secret key with the following IOS commands:
radius-server ip-address radius-server key secret-key
Examples are the best method to show the enormous IOS command set that is available for use when configuring RADIUS support with AAA.
Example 4-3 configures a Cisco IOS router with AAA and RADIUS support.
Example 4-3. AAA and RADIUS IOS Configuration
aaa new-model aaa authentication login use-radius group radius local aaa authentication ppp user-radius if-needed group radius aaa authorization exec default group radius aaa authorization network default group radius radius-server 188.8.131.52 radius-server key ccie2005 ! Ensure you apply the named access list on the VTY line line vty 0 4 aaa authentication login
The command lines in this RADIUS authentication and authorization configuration are defined as follows:
- The aaa authentication login use-radius group radius local command configures the router to use RADIUS for authentication at the login prompt. If RADIUS returns an error, the user is authenticated using the local database. In this example, use-radius is the name of the method list, which specifies RADIUS and then local authentication. If the RADIUS server returns the ACCESS-REJECT response, the user is denied access and the router will not check its local database.
- The aaa authentication ppp user-radius if-needed group radius command configures the Cisco IOS software to use RADIUS authentication for lines using PPP with CHAP or PAP, if the user is not already authorized. If the EXEC facility has authenticated the user, RADIUS authentication is not performed. In this example, user-radius is the name of the method list defining RADIUS as the if-needed authentication method.
- The aaa authorization exec default group radius command sets the RADIUS information used for EXEC authorization, autocommands, and access lists.
- The aaa authorization network default group radius command sets RADIUS for network authorization, address assignment, and access lists.
- The radius-server commands define the NAS.
- The radius-server key commands define the shared secret text string between the NAS and the RADIUS server host.
Example 4-4 displays an example in which AAA is enabled on a Cisco IOS router.
Example 4-4. AAA and RADIUS Example
Hostname R1 username simon password SimonisisAgreatdrummeR aaa new-model aaa authentication ppp dialins group radius local aaa authorization network default group radius local aaa accounting network default start-stop group radius aaa authentication login simon local aaa authorization exec default local radius-server host 184.108.40.206 radius-server key CCIEsrock line vty 0 4 login authentication radius-login
The Example 4-4 line configurations are defined as follows:
- The radius-server host command defines the RADIUS server host's IP address.
- The radius-server key command defines the shared secret text string between the NAS and the RADIUS server host.
- The aaa authentication ppp dialins group radius local command defines the authentication method list, dialins, which specifies that RADIUS authentication and then (if the RADIUS server does not respond) local authentication will be used on serial lines using PPP.
- The aaa authorization network default group radius local command sets RADIUS for network authorization, address assignment, and access lists.
- The aaa accounting network default start-stop group radius command tracks PPP usage. This command is used for all network services. It can be PPP, but also SLIP or ARAP.
- The aaa authentication login simon local command defines the method list, simon, for local authentication.
- The aaa authentication login simon command applies the simon method list for login authentication.