- Cisco Secure ACS Introduction
- Installing Cisco Secure ACS 3.0 for Windows 2000/NT Servers
- Administering and Troubleshooting Cisco Secure ACS for Windows
- TACACS+ Overview
- RADIUS Overview
- Kerberos Overview
- Chapter Summary
- Cisco IOS Commands Presented in This Chapter
- Chapter Review Questions
- Case Study
RADIUS Overview
RADIUS is an access server AAA protocol developed by Livingston Enterprises, Inc. (now part of Lucent Technologies). It is a system of distributed security that secures remote access to networks and network services against unauthorized access. RADIUS is composed of three components:
Protocol with a frame format that uses UDP/IP
Server
Client
The server runs on a central computer, typically at the customer's site, while the clients reside in the dial-up access servers and can be distributed throughout the network. Cisco incorporated the RADIUS client into Cisco IOS, starting with Cisco IOS Release 11.1.
Client/Server Model
A router operates as a client of RADIUS. The client is responsible for passing user information to designated RADIUS servers, and then acting on the response that is returned. RADIUS servers are responsible for receiving user connection requests, authenticating the user, and then returning all configuration information that is necessary for the client to deliver service to the user. The RADIUS servers can act as proxy clients to other kinds of authentication servers.
Network Security
Transactions between the client and RADIUS server are authenticated using a shared secret, which is never sent over the network. In addition, any user passwords are sent encrypted between the client and RADIUS server to eliminate the possibility that someone who is snooping on an unsecured network could determine a user's password.
Flexible Authentication Mechanisms
The RADIUS server supports a variety of methods to authenticate a user. When it is provided with the username and original password given by the user, it can support PPP, PAP, CHAP, or MS-CHAP UNIX login, and other authentication mechanisms.
Configuring RADIUS
RADIUS configuration is a three-step process:
Step 1 |
|
Configure communication between the router and the RADIUS server. |
Step 2 |
|
Use the AAA global configuration commands to define authentication and authorization method lists containing RADIUS. Method lists include the keywords as follows: |
|
|
enableUses the enable password for authentication |
|
|
lineUses the line password for authentication |
|
|
localUses the local username database for authentication |
|
|
noneUses no authentication |
|
|
radiusUses RADIUS authentication |
|
|
tacacs+Uses TACACS+ authentication |
Step 3 |
|
Use line and interface commands to cause the defined method lists to be used. |
Use the following radius-server command to configure router to RADIUS server communication:
radius-server key keystring radius-server host {host-name ? ipaddress}
You can also accomplish the same thing by combining these two commands into the following single command:
radius-server host ipaddress key keystring
Examples of using these three commands are shown here:
router(config)# radius-server key 2bor!2b@? router(config)# radius-server host 10.1.2.4 ! router(config)# radius-server host 10.1.2.4 key 2bor!2b@?
NOTE
The radius-server global command is analogous to tacacs-server global commands.
RADIUS is a fully open protocol, distributed in source code format that can be modified to work with any security system that is currently available on the market. Cisco supports RADIUS under its AAA security paradigm. RADIUS can be used with other AAA security protocols, such as TACACS+, Kerberos, or local username lookup. Cisco Secure ACS for Windows supports RADIUS.
RADIUS has been implemented in a variety of network environments that require high levels of security while maintaining network access for remote users. RADIUS combines authentication and authorization. The protocol is specified in RFCs 2138 and 2139.
As of this writing, three major versions of RADIUS are available:
IETF, with approximately 63 attributesDeveloped and proposed to IETF by Livingston Enterprises, now a division of Lucent Technologies. The RADIUS protocol is specified in RFC 2138, and RADIUS accounting in RFC 2139.
Cisco implementation, supporting approximately 58 attributesStarting in Cisco IOS Release 11.2, an increasing number of attributes and functionality are included in each release of Cisco IOS software and Cisco Secure ACS for Windows.
Lucent implementation, supporting over 254 attributesLucent is constantly changing and adding vendor-specific attributes, such as token caching and password changing. An API enables rapid development of new extensions, making competing vendors work hard to keep up. Although Livingston Enterprises developed RADIUS originally, it was championed by Ascend.
Vendors have implemented proprietary extensions to RADIUS features. TACACS+ is considered superior because:
TACACS+ encrypts the entire TACACS+ packet (RADIUS only encrypts the shared-secret password portion).
TACACS+ separates authentication and authorization, making possible distributed security services.
RADIUS has limited "name space" for attributes.
Figure 3-13 shows a typical network configuration that uses both TACACS+ and RADIUS.
Figure 3-13 Comparison of TACACS+ and RADIUS
There are several differences between TACACS+ and RADIUS:
FunctionalityTACACS+ separates AAA functions according to the AAA architecture, allowing modularity of the security server implementation. RADIUS combines authentication and authorization and separates accounting, thus allowing less flexibility in implementation.
Transport protocolTACACS+ uses TCP. RADIUS uses UDP, which was chosen for simplification of client and server implementation, yet UDP makes the RADIUS protocol less robust and requires the server to implement reliability measures, such as packet retransmission and timeouts, instead having them built into the TCP protocol.
Challenge/responseTACACS+ supports bidirectional challenge and response as used in CHAP between two routers. RADIUS supports unidirectional challenge and response from the RADIUS security server to the RADIUS client.
Protocol supportTACACS+ provides more complete dial-up and WAN protocol support than RADIUS.
Data integrityTACACS+ encrypts the entire packet body of every packet. RADIUS only encrypts the Password Attribute portion of the Access-Request packet, which makes TACACS+ more secure.
CustomizationThe flexibility provided in the TACACS+ protocol allows many things to be customized on a per-user basis (that is, customizable username and password prompts). RADIUS lacks flexibility and therefore many features that are possible with TACACS+ are not possible with RADIUS (that is, message catalogs).
Authorization processWith TACACS+, the server accepts or rejects the authentication request based on the contents of the user profile. The client (router) never knows the contents of the user profile. With RADIUS, all reply attributes in the user profile are sent to the router. The router accepts or rejects the authentication request based on the attributes that are received.
AccountingTACACS+ accounting includes a limited number of information fields. RADIUS accounting can contain more information than TACACS+ accounting records, which is RADIUS's key advantage over TACACS+.
RADIUS Attribute Enhancements
Cisco has introduced enhancements in the latest releases of the Cisco IOS software to support RADIUS attribute capabilities. Some of the more important ones are discussed here.
ACL Default Direction (RADIUS Attribute 11)
The ACL Default Direction feature permits you to configure access lists that dynamically change the RADIUS packet filter direction upon successful RADIUS user authentication. Default filter direction without the application of the RADIUS Attribute 11 capability is outbound, which means that packets must enter the router and be filtered before being sent to the outbound interface.
With RADIUS Attribute 11, you can set the default direction and override that setting as RADIUS authentication occurs. Setting the direction to filter inbound packets causes the router to filter the packets before they are allowed to enter the router.
The following steps are required to implement RADIUS Attribute 11 on a Cisco IOS router:
Step 1 |
|
Set the default direction of filters from RADIUS to inbound or outbound using the global radius-server attribute 11 command. The command format is |
|
|
radius-server attribute 11 direction default |
Step 2 |
|
Attach the Filter-Id attribute to the clients on the RADIUS server. Use the format Filter-Id = "myfilter.out" to override the default direction to outbound. Use the format Filter-ID = "myfilter.in" to override the default direction to inbound. A typical RADIUS user configuration might look like this: |
|
|
Client Password = "mypasswd" |
Accounting Input Gigawords (RADIUS Attribute 52)
Enabled by default, RADIUS Attribute 52 allows the router to maintain a running count of how many times the Acct-Input-Octets counter has wrapped around 232 (4,294,967,296) while providing RADIUS service. The counter resets to 0 at 232 and RADIUS Attribute 52 simply keeps track of how many times the counter refreshed in order to provide an accurate packet count when viewing service statistics. This attribute does not require any configuration.
Accounting Output Gigawords (RADIUS Attribute 53)
Enabled by default, RADIUS Attribute 53 allows the router to maintain a running count of how many times the Acct-Output-Octets counter has wrapped around 232 (4,294,967,296) while providing RADIUS service. The counter resets to 0 at 232 and RADIUS Attribute 52 simply keeps track of how many times the counter refreshed in order to provide an accurate packet count when viewing service statistics. This attribute does not require any configuration.
Tunnel Client Endpoint (Radius Attribute 66)
The Tunnel Client Endpoint capability allows the user to specify the host name of the network access server, rather than having to remember the IP address of the NAS. A typical client configuration might look like the following example:
Cisco.com Password = "cisco" Service-Type = Outbound-User, Tunnel-Type = :1:L2F, Tunnel-Medium-Type = :1:IP, Tunnel-Client-Endpoint = :1:"cisco2" Tunnel-Server-Endpoint = :1:"172.21.135.4", Tunnel-Assignment-Id = :1:"nas1", Tunnel-Password = :1:"cisco"
Connection Information (RADIUS Attribute 77)
This attribute is enabled by default and keeps track of the upstream and downstream speeds of connecting clients. You can view these speeds by using the debug radius command on the router. You can tell whether the modem connection speed was renegotiated to a lower speed after the connection was made.