Configuring RADIUS and TACACS+ Servers

This chapter describes how to enable and configure the Remote Authentication Dial-In User Service (RADIUS) and Terminal Access Controller Access Control System Plus (TACACS+), that provides detailed accounting information and flexible administrative control over authentication and authorization processes. RADIUS and TACACS+ are facilitated through AAA and can be enabled only through AAA commands.


Note You can configure your access point as a local authenticator to provide a backup for your main server or to provide authentication service on a network without a RADIUS server. See “Configuring Authentication Types,” for detailed instructions on configuring your access point as a local authenticator.



Note For complete syntax and usage information for the commands used in this chapter, refer to the Cisco IOS Security Command Reference for Release 12.2.


This chapter contains the following sections:

Configuring and Enabling RADIUS

This section describes how to configure and enable RADIUS. These sections describe RADIUS configuration:

Understanding RADIUS

RADIUS is a distributed client/server system that secures networks against unauthorized access. RADIUS clients run on supported Cisco devices and send authentication requests to a central RADIUS server, which contains all user authentication and network service access information. The RADIUS host is normally a multiuser system running RADIUS server software from Cisco (Cisco Identity Services Engine), FreeRADIUS, Microsoft, or another software provider. For more information, refer to the RADIUS server documentation.

Use RADIUS in these network environments, which require access security:

  • Networks with multiple-vendor access servers, each supporting RADIUS. For example, access servers from several vendors use a single RADIUS server-based security database. In an IP-based network with multiple vendors’ access servers, dial-in users are authenticated through a RADIUS server that is customized to work with the Kerberos security system.
  • Turnkey network security environments in which applications support the RADIUS protocol, such as an access environment that uses a smart card access control system.
  • Networks already using RADIUS. You can add a Cisco access point containing a RADIUS client to the network.
  • Networks that require resource accounting. You can use RADIUS accounting independently of RADIUS authentication or authorization. The RADIUS accounting functions allow data to be sent at the start and end of services, showing the amount of resources (such as time, packets, bytes, and so forth) used during the session. An Internet service provider might use a freeware-based version of RADIUS access control and accounting software to meet special security and billing needs.

RADIUS is not suitable in these network security situations:

  • Multiprotocol access environments– RADIUS does not support, for example, AppleTalk Remote Access (ARA), NetBIOS Frame Control Protocol (NBFCP), NetWare Asynchronous Services Interface (NASI), or X.25 PAD connections.
  • Networks using a variety of services. RADIUS generally binds a user to one service model.

RADIUS Operation

When a wireless user attempts to log in and authenticate to an access point whose access is controlled by a RADIUS server, authentication to the network occurs in the steps shown in Figure 13-1:

Figure 13-1 Sequence for EAP Authentication

 

As shown in Figure 13-1, at the start, a wireless client device and a RADIUS server on the wired LAN use 802.1x and EAP to perform a mutual authentication through the access point. The initial phase is an 802.11 open authentication and association. The EAP process then starts.

The AP communicates with the client over the wireless link using EAP/802.1x, and relays the client messages to the RADIUS server using RADIUS encapsulation. Once the client and the authentication server agrees on an EAP method, the RADIUS server sends an authentication challenge to the client.

Some EAP methods also require the client to authenticate the RADIUS server before accepting a challenge from the server. In all cases, the credential exchange is encrypted and cannot be read by eavesdroppers.

When (one way or mutual) authentication is complete, and when WPA/WPA2 is in use, the RADIUS server and the client derive an initial key called Pairwise Master Key (PMK). The the client and the RADIUS server use the same method to derive the PKM, and therefore derive the same PMK. However, the PMK is not exchanged over the wireless link.

The RADIUS server sends a copy of the PMK to the AP. The AP and the client will then use this PMK to derive unicast encryption keys that will be used to encrypt the exchanges between the client and the AP during the client session. The AP will also use the unicast encryption key to communicate to the client the broadcast key, or the key used to encrypt traffic broadcasted to all clients in the cell.

There is more than one type of EAP authentication, but the access point behaves the same way for each type. The AP relays authentication messages from the wireless client device to the RADIUS server and from the RADIUS server to the wireless client device. See the “Assigning Authentication Types to an SSID” for instructions on setting up client authentication using a RADIUS server.

Configuring RADIUS

This section describes how to configure your access point to support RADIUS. At the minimum, you must identify the host(s) that run the RADIUS server software and define the method lists for RADIUS authentication. You can optionally define method lists for RADIUS authorization and accounting.

A method list defines the sequence and methods to be used to authenticate, to authorize, or to keep accounts on a user. You can use method lists to designate one or more security protocols to be used, thus ensuring a backup system if the initial method fails. The software uses the first method listed to authenticate, to authorize, or to keep accounts on users; if that method does not respond, the software selects the next method in the list. This process continues until there is successful communication with a listed method or the method list is exhausted.

You should have access to and should configure a RADIUS server before configuring RADIUS features on your access point.

This section contains this configuration information:


Note The RADIUS server CLI commands are disabled until you enter the aaa new-model command.


Default RADIUS Configuration

RADIUS and AAA are disabled by default.

To prevent a lapse in security, you cannot configure RADIUS through a network management application. When enabled, RADIUS can authenticate users accessing the access point through the CLI.

Identifying the RADIUS Server Host

Access point-to-RADIUS-server communication involves several components:

  • Host name or IP address
  • Authentication destination port
  • Accounting destination port
  • Key string
  • Timeout period
  • Retransmission value

You identify RADIUS security servers by their host name or IP address, host name and specific UDP port numbers, or their IP address and specific UDP port numbers. The combination of the IP address and the UDP port number creates a unique identifier allowing different ports to be individually defined as RADIUS hosts providing a specific AAA service. This unique identifier enables RADIUS requests to be sent to multiple UDP ports on a server at the same IP address.


Note For Cisco IOS Releases 12.2(8)JA and later, the access point uses a randomly chosen UDP source port number in the range of 21645 to 21844 for communication with RADIUS servers.


If two different host entries on the same RADIUS server are configured for the same service—such as accounting—the second host entry configured acts as a fail-over backup to the first one. Using this example, if the first host entry fails to provide accounting services, the access point tries the second host entry configured on the same device for accounting services. (The RADIUS host entries are tried in the order that they are configured.)

A RADIUS server and the access point use a shared secret text string to encrypt passwords and exchange responses. To configure RADIUS to use the AAA security commands, you must specify the host running the RADIUS server daemon and a secret text (key) string that it shares with the access point.

The timeout, retransmission, and encryption key values can be configured globally per server for all RADIUS servers or in some combination of global and per-server settings. To apply these settings globally to all RADIUS servers communicating with the access point, use the three unique global configuration commands: radius-server timeout, radius-server retransmit, and radius-server key. To apply these values on a specific RADIUS server, use the radius-server host global configuration command.


Note If you configure both global and per-server functions (timeout, retransmission, and key commands) on the access point, the per-server timer, retransmission, and key value commands override global timer, retransmission, and key value commands. For information on configuring these setting on all RADIUS servers, see the “Configuring Settings for All RADIUS Servers” section.


You can configure the access point to use AAA server groups to group existing server hosts for authentication. For more information, see the “Defining AAA Server Groups” section.

Beginning in privileged EXEC mode, follow these steps to configure per-server RADIUS server communication. This procedure is required.

 

Command
Purpose

Step 1

configure terminal

Enter global configuration mode.

Step 2

aaa new-model

Enable AAA.

Step 3

radius-server {hostname | ip-address}[ auth-port port-number ] [ acct-port port-number ] [ timeout seconds ] [ retransmit retries ] [ key string ]


Note This command was supported in the older releases. You are recommended to use the following new commands.


These series of new commands have been introduced in this release to replace earlier command:

radius server name

address [ IP address ip-address ] [ auth-port port-number ] [ acct-port port-number ]

address {ipv4 radius-server-IPv4-Address | ipv6 radius-server-IPv6-Address}

Specify the server name of the remote RADIUS server host.

  • (Optional) For auth-port port-number, specify the UDP destination port for authentication requests.(Optional) For acct-port port-number, specify the UDP destination port for accounting requests.
  • (Optional) For timeout seconds, specify the time interval that the access point waits for the RADIUS server to reply before retransmitting. The range is 1 to 1000. This setting overrides the radius-server timeout global configuration command setting. If no timeout is set with the radius-server host command, the setting of the radius-server timeout command is used.
  • (Optional) For retransmit retries, specify the number of times a RADIUS request is resent to a server if that server is not responding or responding slowly. The range is 1 to 1000. If no retransmit value is set with the radius-server host command, the setting of the radius-server retransmit global configuration command is used.
  • (Optional) For key string, specify the authentication and encryption key used between the access point and the RADIUS daemon running on the RADIUS server.

Note The key is a text string that must match the encryption key used on the RADIUS server. Always configure the key as the last item in the radius-server host command. Leading spaces are ignored, but spaces within and at the end of the key are used. If you use spaces in your key, do not enclose the key in quotation marks unless the quotation marks are part of the key.

To configure the access point to recognize more than one host entry associated with a single IP address, enter this command as many times as necessary, making sure that each UDP port number is different. The access point software searches for hosts in the order in which you specify them. Set the timeout, retransmit, and encryption key values to use with the specific RADIUS host.

Step 4

dot11 ssid ssid-string

Enter SSID configuration mode for an SSID on which you need to enable accounting. The SSID can consist of up to 32 alphanumeric characters. SSIDs are case sensitive.

Step 5

accounting list-name

Enable RADIUS accounting for this SSID. For list-name, specify the accounting method list. Click this URL for more information on method lists:

http://www.cisco.com/c/en/us/td/docs/ios/12_2/security/configuration/guide/fsecur_c/scfacct.html

Note To enable accounting for an SSID, you must include the accounting command in the SSID configuration. Click this URL to browse to a detailed description of the SSID configuration mode accounting command.

Step 6

end

Return to privileged EXEC mode.

Step 7

show running-config

Verify your entries.

Step 8

copy running-config startup-config

(Optional) Save your entries in the configuration file.

To remove the specified RADIUS server, use the no radius-server host hostname | ip-address global configuration command.

This example shows how to configure one RADIUS server to be used for authentication and another to be used for accounting:

AP(config)# radius-server host 172.29.36.49 auth-port 1612 key rad1
AP(config)# radius-server host 172.20.36.50 acct-port 1618 key rad2
 

This example shows how to configure an SSID for RADIUS accounting:

AP(config)# dot11 ssid batman
AP(config-ssid)# accounting accounting-method-list
 

This example shows how to configure host1 as the RADIUS server and to use the default ports for both authentication and accounting:

AP(config)# radius-server host host1
 

Note You also need to configure some settings on the RADIUS server. These settings include the IP address of the access point and the key string to be shared by both the server and the access point. For more information, refer to the RADIUS server documentation.


Configuring RADIUS Login Authentication

To configure AAA authentication, you define a named list of authentication methods and then apply that list to various interfaces. The method list defines the types of authentication to be performed and the sequence in which they are performed; it must be applied to a specific interface before any of the defined authentication methods are performed. The only exception is the default method list (which, by coincidence, is named default). The default method list is automatically applied to all interfaces except those that have a named method list explicitly defined.

A method list describes the sequence and authentication methods to be queried to authenticate a user. You can designate one or more security protocols to be used for authentication, thus ensuring a backup system for authentication in case the initial method fails. The software uses the first method listed to authenticate users; if that method fails to respond, the software selects the next authentication method in the method list. This process continues until there is successful communication with a listed authentication method or until all defined methods are exhausted. If authentication fails at any point in this cycle—meaning that the security server or local username database responds by denying the user access—the authentication process stops, and no other authentication methods are attempted.

Beginning in privileged EXEC mode, follow these steps to configure login authentication. This procedure is required.

 

Command
Purpose

Step 1

configure terminal

Enter global configuration mode.

Step 2

aaa new-model

Enable AAA.

Step 3

aaa authentication login { default | list-name } method1 [ method2... ]

Create a login authentication method list.

Select one of these methods:

  • line —Use the line password for authentication. You must define a line password before you can use this authentication method. Use the password password line configuration command.
  • local —Use the local username database for authentication. You must enter username information in the database. Use the username password global configuration command.
  • radius —Use RADIUS authentication. You must configure the RADIUS server before you can use this authentication method. For more information, see the “Identifying the RADIUS Server Host” section.

Step 4

line [ console | tty | vty ] line-number [ ending-line-number ]

Enter line configuration mode, and configure the lines to which you want to apply the authentication list.

Step 5

login authentication { default | list-name }

Apply the authentication list to a line or set of lines.

  • If you specify default, use the default list created with the aaa authentication login command.
  • For list-name, specify the list created with the aaa authentication login command.

Step 6

radius-server attribute 32 include-in-access-req format {%h | %i | %d}

(Optional) Configure the access point to send its system name in the NAS_ID attribute for authentication.

  • %i—IP address
  • %h—Hostname
  • %d—domain name

Step 7

end

Return to privileged EXEC mode.

Step 8

show running-config

Verify your entries.

Step 9

copy running-config startup-config

(Optional) Save your entries in the configuration file.

To disable AAA, use the no aaa new-model global configuration command. To disable AAA authentication, use the no aaa authentication login {default | list-name } method1 [ method2... ] global configuration command. To either disable RADIUS authentication for logins or to return to the default value, use the no login authentication { default | list-name } line configuration command.

Defining AAA Server Groups

You can configure the access point to use AAA server groups to group existing server hosts for authentication. You select a subset of the configured server hosts and use them for a particular service. The server group is used with a global server-host list, which lists the IP addresses of the selected server hosts.

Server groups also can include multiple host entries for the same server if each entry has a unique identifier (the combination of the IP address and UDP port number), allowing different ports to be individually defined as RADIUS hosts providing a specific AAA service. If you configure two different host entries on the same RADIUS server for the same service (such as accounting), the second configured host entry acts as a fail-over backup to the first one.

You use the server group server configuration command to associate a particular server with a defined group server. You can either identify the server by its IP address or identify multiple host instances or entries by using the optional auth-port and acct-port keywords.

Beginning in privileged EXEC mode, follow these steps to define the AAA server group and associate a particular RADIUS server with it:

 

Command
Purpose

Step 1

configure terminal

Enter global configuration mode.

Step 2

aaa new-model

Enable AAA.

Step 3

radius-server host { hostname | ip-address } [ auth-port port-number ] [ acct-port port-number ] [ timeout seconds ] [ retransmit retries ] [ key string ]

Specify the IP address or host name of the remote RADIUS server host.

  • (Optional) For auth-port port-number, specify the UDP destination port for authentication requests.
  • (Optional) For acct-port port-number, specify the UDP destination port for accounting requests.
  • (Optional) For timeout seconds, specify the time interval that the access point waits for the RADIUS server to reply before retransmitting. The range is 1 to 1000. This setting overrides the radius-server timeout global configuration command setting. If no timeout is set with the radius-server host command, the setting of the radius-server timeout command is used.
  • (Optional) For retransmit retries, specify the number of times a RADIUS request is resent to a server if that server is not responding or responding slowly. The range is 1 to 1000. If no retransmit value is set with the radius-server host command, the setting of the radius-server retransmit global configuration command is used.
  • (Optional) For key string, specify the authentication and encryption key used between the access point and the RADIUS daemon running on the RADIUS server.

Note The key is a text string that must match the encryption key used on the RADIUS server. Always configure the key as the last item in the radius-server host command. Leading spaces are ignored, but spaces within and at the end of the key are used. If you use spaces in your key, do not enclose the key in quotation marks unless the quotation marks are part of the key.

To configure the access point to recognize more than one host entry associated with a single IP address, enter this command as many times as necessary, making sure that each UDP port number is different. The access point software searches for hosts in the order in which you specify them. Set the timeout, retransmit, and encryption key values to use with the specific RADIUS host.

Step 4

aaa group server radius group-name

Define the AAA server-group with a group name.

This command puts the access point in a server group configuration mode.

Step 5

server ip-address

Associate a particular RADIUS server with the defined server group. Repeat this step for each RADIUS server in the AAA server group.

Each server in the group must be previously defined in Step 2.

Step 6

end

Return to privileged EXEC mode.

Step 7

show running-config

Verify your entries.

Step 8

copy running-config startup-config

(Optional) Save your entries in the configuration file.

Step 9

 

Enable RADIUS login authentication. See the “Configuring RADIUS Login Authentication” section.

To remove the specified RADIUS server, use the no radius-server host hostname | ip-address global configuration command. To remove a server group from the configuration list, use the no aaa group server radius group-name global configuration command. To remove the IP address of a RADIUS server, use the no server ip-address server group configuration command.

In this example, the access point is configured to recognize two different RADIUS group servers ( group1 and group2). Group1 has two different host entries on the same RADIUS server configured for the same services. The second host entry acts as a fail-over backup to the first entry.

AP(config)# aaa new-model
AP(config)# radius-server host 172.20.0.1 auth-port 1000 acct-port 1001
AP(config)# radius-server host 172.10.0.1 auth-port 1645 acct-port 1646
AP(config)# aaa group server radius group1
AP(config-sg-radius)# server 172.20.0.1 auth-port 1000 acct-port 1001
AP(config-sg-radius)# exit
AP(config)# aaa group server radius group2
AP(config-sg-radius)# server 172.20.0.1 auth-port 2000 acct-port 2001
AP(config-sg-radius)# exit
 

Note The ports defined for each RADIUS server host in a radius group override the ports defined individually for each radius server host entry created from global configuration mode.


Configuring RADIUS Authorization for User Privileged Access and Network Services

AAA authorization limits the services available to a user. When AAA authorization is enabled, the access point uses information retrieved from the user’s profile, which is in the local user database or on the security server, to configure the user’s session. The user is granted access to a requested service only if the information in the user profile allows it.


Note This section describes setting up authorization for access point administrators, not for wireless client devices. For wireless client devices and wireless network access authorization, no specific authorization profile needs to be returned from the RADIUS server.


You can use the aaa authorization global configuration command with the radius keyword to set parameters that restrict a user’s network access to privileged EXEC mode.

The aaa authorization exec radius local command sets these authorization parameters:

  • Use RADIUS for privileged EXEC access authorization if authentication was performed by using RADIUS.
  • Use the local database if authentication was not performed by using RADIUS.

Note Authorization is bypassed for authenticated users who log in through the CLI even if authorization has been configured.


Beginning in privileged EXEC mode, follow these steps to specify RADIUS authorization for privileged EXEC access and network services:

 

Command
Purpose

Step 1

configure terminal

Enter global configuration mode.

Step 2

aaa authorization network radius

Configure the access point for user RADIUS authorization for all network-related service requests.

Step 3

aaa authorization exec radius

Configure the access point for user RADIUS authorization to determine if the user has privileged EXEC access.

The exec keyword might return user profile information (such as autocommand information).

Step 4

end

Return to privileged EXEC mode.

Step 5

show running-config

Verify your entries.

Step 6

copy running-config startup-config

(Optional) Save your entries in the configuration file.

To disable authorization, use the no aaa authorization { network | exec } method1 global configuration command.

Configuring Packet of Disconnect

Packet of Disconnect (PoD) is also known as Disconnect Message. Additional information on PoD can be found in the Internet Engineering Task Force (IETF) Internet Standard RFC 3576

Packet of Disconnect consists of a method of terminating a session that has already been connected. The PoD is a RADIUS Disconnect_Request packet and is intended to be used in situations where the authenticating agent server wants to disconnect the user after the session has been accepted by the RADIUS access_accept packet.

When a session is terminated, the RADIUS server sends a disconnect message to the Network Access Server (NAS); an access point or WDS. For 802.11 sessions, the Calling-Station-ID [31] RADIUS attribute (the MAC address of the client) must be supplied in the Pod request. The access point or WDS attempts to disassociate the relevant session and then sends a disconnect response message back to the RADIUS server. The message types are as follows:

  • 40—Disconnect-Request
  • 41—Disconnect—ACK
  • 42—Disconnect—NAK

Note Refer to your RADIUS server application documentation for instructions on how to configure PoD requests.



Note The access point does not block subsequent attempts by the client to reassociate. It is the responsibility of the security administrator to disable the client account before issuing a PoD request.



Note When WDS is configured, PoD requests should be directed to the WDS. The WDS forwards the disassociation request to the parent access point and then purges the session from its own internal tables.


Beginning in privileged EXEC mode, follow these steps to configure a PoD:

 

Command
Purpose

Step 1

configure terminal

Enter global configuration mode.

Step 2

aaa pod server [port port number]
[auth-type {any | all | session-key}] [clients client 1...] [ignore {server-key string...| session-key }] | server-key string...]}

Enables user sessions to be disconnected by requests from a RADIUS server when specific session attributes are presented.

port port number—(Optional) The UDP port on which the access point listens for PoD requests. The default value is 1700.

auth-type—This parameter is not supported for 802.11 sessions.

clients (Optional)—Up to four RADIUS servers may be nominated as clients. If this configuration is present and a PoD request originates from a device that is not on the list, it is rejected.

ignore (Optional)—When set to server_key, the shared secret is not validated when a PoD request is received.

session-key—Not supported for 802.11 sessions.

server-key—Configures the shared-secret text string.
string—The shared-secret text string that is shared between the network access server and the client workstation. This shared-secret must be the same on both systems.

Note Any data entered after this parameter is treated as the shared secret string.

Step 3

end

Return to privileged EXEC mode.

Step 4

show running-config

Verify your entries.

Step 5

copy running-config startup-config

(Optional) Save your entries in the configuration file.

Selecting the CSID Format

You can select the format for MAC addresses in Called-Station-ID (CSID) and Calling-Station-ID attributes in RADIUS packets.

The Calling-Station-ID [31] RADIUS attribute is the MAC address of the wireless client, and may need to be communicated to the RADIUS server, for example, for accounting or for the PoD.

Use the dot11 aaa csid global configuration command to select the CSID format. Table 13-1 lists the format options with corresponding MAC address examples.

Table 13-1 CSID Format Options

Option
MAC Address Example

default

0007.85b3.5f4a

ietf

00-07-85-b3-5f-4a

unformatted

000785b35f4a

To return to the default CSID format, use the no form of the dot11 aaa csid command, or enter
dot11 aaa csid default.


Note You can also use the wlccp wds aaa csid command to select the CSID format.


Starting RADIUS Accounting

The AAA accounting feature tracks the services that users are accessing and the amount of network resources that they are consuming. When AAA accounting is enabled, the access point reports user activity to the RADIUS security server in the form of accounting records. Each accounting record contains accounting attribute-value (AV) pairs and is stored on the security server. This data can then be analyzed for network management, client billing, or auditing. See the “RADIUS Attributes Sent by the Access Point” section for a complete list of attributes sent and honored by the access point.

Beginning in privileged EXEC mode, follow these steps to enable RADIUS accounting for each Cisco IOS privilege level and for network services:

 

Command
Purpose

Step 1

configure terminal

Enter global configuration mode.

Step 2

aaa accounting network start-stop radius

Enable RADIUS accounting for all network-related service requests.

Step 3

ip radius source-interface bvi1

Configure the access point to send its BVI IP address in the NAS_IP_ADDRESS attribute for accounting records.

Step 4

aaa accounting update periodic minutes

Enter an accounting update interval in minutes.

Step 5

end

Return to privileged EXEC mode.

Step 6

show running-config

Verify your entries.

Step 7

copy running-config startup-config

(Optional) Save your entries in the configuration file.

To disable accounting, use the no aaa accounting { network | exec } { start-stop } method1... global configuration command.

Configuring Settings for All RADIUS Servers

Beginning in privileged EXEC mode, follow these steps to configure global communication settings between the access point and all RADIUS servers:

 

Command
Purpose

Step 1

configure terminal

Enter global configuration mode.

Step 2

radius-server key string

Specify the shared secret text string used between the access point and all RADIUS servers.

Note The key is a text string that must match the encryption key used on the RADIUS server. Leading spaces are ignored, but spaces within and at the end of the key are used. If you use spaces in your key, do not enclose the key in quotation marks unless the quotation marks are part of the key.

Step 3

radius-server retransmit retries

Specify the number of times the access point sends each RADIUS request to the server before giving up. The default is 3; the range 1 to 1000.

Step 4

radius-server timeout seconds

Specify the number of seconds an access point waits for a reply to a RADIUS request before resending the request. The default is 5 seconds; the range is 1 to 1000.

Step 5

radius-server deadtime minutes

Use this command to cause the Cisco IOS software to mark as “dead” any RADIUS servers that fail to respond to authentication requests, thus avoiding the wait for the request to time out before trying the next configured server. A RADIUS server marked as dead is skipped by additional requests for the duration of minutes that you specify, up to a maximum of 1440 (24 hours).

Note This command is required configuration when multiple RADIUS servers are defined. If not configured, client authentication does not occur. When one RADIUS server is defined, this command is optional.

Step 6

radius-server attribute 32 include-in-access-req format %h

Configure the access point to send its system name in the NAS_ID attribute for authentication.

Step 7

end

Return to privileged EXEC mode.

Step 8

show running-config

Verify your settings.

Step 9

copy running-config startup-config

(Optional) Save your entries in the configuration file.

This example shows how to set up two main servers with a server deadtime of 10 minutes:

ap(config)# aaa new-model
ap(config)# radius server server1
ap(config-radius-server)# address ipv4 172.20.0.1 auth-port 1812 acct-port 1813
ap(config-radius-server)# key 0 cisco
ap(config-radius-server)# exit
ap(config)# radius server server2
ap(config-radius-server)# address ipv4 172.10.0.1 auth-port 1000 acct-port 1001
ap(config-radius-server)# key 0 cisco
ap(config-radius-server)# exit
ap(config)# radius-server deadtime 10
 

To return to the default setting for retransmit, timeout, and deadtime, use the no forms of these commands.

Configuring the Access Point to Use Vendor-Specific RADIUS Attributes


Note The following configuration is done on the RADIUS server.


The Internet Engineering Task Force (IETF) draft standard specifies a method for communicating vendor-specific information between the access point and the RADIUS server by using the vendor-specific attribute (attribute 26). Vendor-specific attributes (VSAs) allow vendors to support their own extended attributes not suitable for general use. The Cisco RADIUS implementation supports one vendor-specific option by using the format recommended in the specification. Cisco’s vendor ID is 9, and the supported option has vendor type 1, which is named cisco-avpair. The value is a string with this format:

protocol : attribute sep value *
 

Protocol is a value of the Cisco protocol attribute for a particular type of authorization. Attribute and value are an appropriate AV pair defined in the Cisco TACACS+ specification, and sep is = for mandatory attributes and the asterisk ( *) for optional attributes. This allows the full set of features available for TACACS+ authorization to also be used for RADIUS.

For example, the following AV pair activates Cisco’s multiple named ip address pools feature during IP authorization (during PPP’s IPCP address assignment):

cisco-avpair= ”ip:addr-pool=first“
 

The following example shows how to provide a user logging in from an access point with immediate access to privileged EXEC commands:

cisco-avpair= ”shell:priv-lvl=15“
 

Other vendors have their own unique vendor IDs, options, and associated VSAs. For more information about vendor IDs and VSAs, refer to RFC 2138, “Remote Authentication Dial-In User Service (RADIUS).”

Beginning in privileged EXEC mode, follow these steps to configure the access point to recognize and use VSAs:

 

Command
Purpose

Step 1

configure terminal

Enter global configuration mode.

Step 2

radius-server vsa send [ accounting | authentication ]

Enable the access point to recognize and use VSAs as defined by RADIUS IETF attribute 26.

  • (Optional) Use the accounting keyword to limit the set of recognized vendor-specific attributes to only accounting attributes.
  • (Optional) Use the authentication keyword to limit the set of recognized vendor-specific attributes to only authentication attributes.

If you enter this command without keywords, both accounting and authentication vendor-specific attributes are used.

Step 3

end

Return to privileged EXEC mode.

Step 4

show running-config

Verify your settings.

Step 5

copy running-config startup-config

(Optional) Save your entries in the configuration file.

For a complete list of RADIUS attributes or more information about VSA 26, see the RADIUS guides at the following URL:
http://www.cisco.com/en/US/docs/ios-xml/ios/security/config_library/12-4t/secuser-12-4t-library.html

Configuring the Access Point for Vendor-Proprietary RADIUS Server Communication

Although an IETF draft standard for RADIUS specifies a method for communicating vendor-proprietary information between the access point and the RADIUS server, some vendors have extended the RADIUS attribute set in a unique way. Cisco IOS software supports a subset of vendor-proprietary RADIUS attributes.

As mentioned earlier, to configure RADIUS (whether vendor-proprietary or IETF draft-compliant), you must specify the host running the RADIUS server daemon and the secret text string it shares with the access point. You specify the RADIUS host and secret text string by using the radius-server global configuration commands.

Beginning in privileged EXEC mode, follow these steps to specify a vendor-proprietary RADIUS server host and a shared secret text string:

 

Command
Purpose

Step 1

configure terminal

Enter global configuration mode.

Step 2

radius-server host {hostname | ip-address} non-standard

Specify the IP address or host name of the remote RADIUS server host and identify that it is using a vendor-proprietary implementation of RADIUS.

Step 3

radius-server key string

Specify the shared secret text string used between the access point and the vendor-proprietary RADIUS server. The access point and the RADIUS server use this text string to encrypt passwords and exchange responses.

Note The key is a text string that must match the encryption key used on the RADIUS server. Leading spaces are ignored, but spaces within and at the end of the key are used. If you use spaces in your key, do not enclose the key in quotation marks unless the quotation marks are part of the key.

Step 4

end

Return to privileged EXEC mode.

Step 5

show running-config

Verify your settings.

Step 6

copy running-config startup-config

(Optional) Save your entries in the configuration file.

To delete the vendor-proprietary RADIUS host, use the no radius-server host {hostname | ip-address} non-standard global configuration command. To disable the key, use the no radius-server key global configuration command.

This example shows how to specify a vendor-proprietary RADIUS host and to use a secret key of rad124 between the access point and the server:

AP(config)# radius server Myserver
AP(config-radius-server)# address ipv4 172.20.30.15
AP(config-radius-server)# key 0 rad1234
AP(config-radius-server)# non-standard

Configuring WISPr RADIUS Attributes

The Wi-Fi Alliance’s WISPr Best Current Practices for Wireless Internet Service Provider Roaming, and its updated Annex D published in 2010 by the Wireless Broadband Alliance under the name WISPv2 lists RADIUS attributes that access points must send with RADIUS accounting and authentication requests. The access point currently supports only the WISPr location-name and the ISO and International Telecommunications Union (ITU) country and area codes attributes. Use the snmp-server location and the dot11 location isocc commands to configure these attributes on the access point.

The WISPr and WISPv2 Best Current Practices for Wireless Internet Service Provider Roaming (WISPr) document also requires the access point to include a class attribute in RADIUS authentication replies and accounting requests. The access point includes the class attribute automatically and does not have to be configured to do so.

You can find a list of ISO and ITU country and area codes at the ISO and ITU websites. Cisco IOS software does not check the validity of the country and area codes that you configure on the access point.

Beginning in privileged EXEC mode, follow these steps to specify WISPr RADIUS attributes on the access point:

 

Command
Purpose

Step 1

configure terminal

Enter global configuration mode.

Step 2

snmp-server location location

Specify the WISPr location-name attribute. The WISPr Best Current Practices for Wireless Internet Service Provider (WISP) Roaming document recommends that you enter the location name in this format:

hotspot_operator_name,location

Step 3

dot11 location isocc ISO-country-code cc country-code ac area-code

Specify ISO and ITU country and area codes that the access point includes in accounting and authentication requests.

  • isocc ISO-country-code—specifies the ISO country code that the access point includes in RADIUS authentication and accounting requests
  • cc country-code—specifies the ITU country code that the access point includes in RADIUS authentication and accounting requests
  • ac area-code—specifies the ITU area code that the access point includes in RADIUS authentication and accounting requests

Step 4

end

Return to privileged EXEC mode.

Step 5

show running-config

Verify your settings.

Step 6

copy running-config startup-config

(Optional) Save your entries in the configuration file.

This example shows how to configure the WISPr location-name attribute:

ap# snmp-server location ACMEWISP,Gate_14_Terminal_C_of_Newark_Airport
 

This example shows how to configure the ISO and ITU location codes on the access point:

ap# dot11 location isocc us cc 1 ac 408
 

This example shows how the access point adds the SSID used by the client device and formats the location-ID string:

isocc=us,cc=1,ac=408,network=ACMEWISP_NewarkAirport
 

Displaying the RADIUS Configuration

To display the RADIUS configuration, use the show running-config p rivileged EXEC command.


Note When DNS is configured on the access point, the show running-config command sometimes displays a server’s IP address instead of its name.


RADIUS Attributes Sent by the Access Point

Table 13-2 through Table 13-6 identify the attributes sent by an access point to a client in access-request, access-accept, and accounting-request packets.


Note You can configure the access point to include in its RADIUS accounting and authentication requests attributes recommended by the Wi-Fi Alliance’s WISPr and WISPv2 Best Current Practices for Wireless Internet Service Provider Roaming (WISPr) document. Refer to the “Configuring WISPr RADIUS Attributes” section for instructions.


 

Table 13-2 Attributes Sent in Access-Request Packets

Attribute ID
Description

1

User-Name

4

NAS-IP-Address

5

NAS-Port

12

Framed-MTU

30

Called-Station-ID (MAC address)

31

Calling-Station-ID (MAC address)

32

NAS-Identifier1

61

NAS-Port-Type

79

EAP-Message

80

Message-Authenticator

1.The access point sends the NAS-Identifier if attribute 32 (include-in-access-req) is configured.

Table 13-3 Attributes Honored in Access-Accept Packets

Attribute ID
Description

25

Class

27

Session-Timeout

64

Tunnel-Type2

65

Tunnel-Medium-Type1

79

EAP-Message

80

Message-Authenticator

81

Tunnel-Private-Group-ID1

VSA (attribute 26)

LEAP session-key

VSA (attribute 26)

Auth-Algo-Type

VSA (attribute 26)

SSID

2.RFC2868; defines a VLAN override number.

 

Table 13-4 Attributes Sent in Accounting-Request (start) Packets

Attribute ID
Description

1

User-Name

4

NAS-IP-Address

5

NAS-Port

6

Service-Type

25

Class

41

Acct-Delay-Time

44

Acct-Session-Id

61

NAS-Port-Type

VSA (attribute 26)

SSID

VSA (attribute 26)

NAS-Location

VSA (attribute 26)

Cisco-NAS-Port

VSA (attribute 26)

Interface

 

Table 13-5 Attributes Sent in Accounting-Request (update) Packets

Attribute ID
Description

1

User-Name

4

NAS-IP-Address

5

NAS-Port

6

Service-Type

25

Class

41

Acct-Delay-Time

42

Acct-Input-Octets

43

Acct-Output-Octets

44

Acct-Session-Id

46

Acct-Session-Time

47

Acct-Input-Packets

48

Acct-Output-Packets

61

NAS-Port-Type

VSA (attribute 26)

SSID

VSA (attribute 26)

NAS-Location

VSA (attribute 26)

VLAN-ID

VSA (attribute 26)

Connect-Progress

VSA (attribute 26)

Cisco-NAS-Port

VSA (attribute 26)

Interface

Table 13-6 Attributes Sent in Accounting-Request (stop) Packets

Attribute ID
Description

1

User-Name

4

NAS-IP-Address

5

NAS-Port

6

Service-Type

25

Class

41

Acct-Delay-Time

42

Acct-Input-Octets

43

Acct-Output-Octets

44

Acct-Session-Id

46

Acct-Session-Time

47

Acct-Input-Packets

48

Acct-Output-Packets

49

Acct-Terminate-Cause

61

NAS-Port-Type

VSA (attribute 26)

SSID

VSA (attribute 26)

NAS-Location

VSA (attribute 26)

Disc-Cause-Ext

VSA (attribute 26)

VLAN-ID

VSA (attribute 26)

Connect-Progress

VSA (attribute 26)

Cisco-NAS-Port

VSA (attribute 26)

Interface

VSA (attribute 26)

Auth-Algo-Type


Note By default, the access point sends reauthentication requests to the authentication server with the service-type attribute set to authenticate-only. However, some Microsoft IAS servers do not support the authenticate-only service-type attribute. Depending on the user requirements, set the service-type attribute to: dot11 aaa authentication attributes service-type login-user or dot11 aaa authentication attributes service-type framed-user. By default the service type "login" is sent in the access request.


Configuring and Enabling TACACS+

This section contains this configuration information:

Understanding TACACS+

TACACS+ is a security application that provides centralized validation of users attempting to gain access to your access point. Unlike RADIUS, TACACS+ does not authenticate wireless client devices accessing the network through your access point.

You should have access to and should configure a TACACS+ server before configuring TACACS+ features on your access point.

TACACS+ provides for separate and modular authentication, authorization, and accounting facilities. TACACS+ allows for a single access control server (the TACACS+ daemon) to provide each service—authentication, authorization, and accounting—independently. Each service can be tied into its own database to take advantage of other services available on that server or on the network, depending on the capabilities of the daemon.

TACACS+, administered through the AAA security services, can provide these services:

  • Authentication—Provides complete control of authentication of administrators through login and password dialog, challenge and response, and messaging support.

The authentication facility can conduct a dialog with the administrator (for example, after a username and password are provided, to challenge a user with several questions, such as home address, mother’s maiden name, service type, and social security number). The TACACS+ authentication service can also send messages to administrator screens. For example, a message could notify administrators that their passwords must be changed because of the company’s password aging policy.

  • Authorization—Provides fine-grained control over administrator capabilities for the duration of the administrator’s session, including but not limited to setting autocommands, access control, session duration, or protocol support. You can also enforce restrictions on the commands that an administrator can execute with the TACACS+ authorization feature.
  • Accounting—Collects and sends information used for billing, auditing, and reporting to the TACACS+ daemon. Network managers can use the accounting facility to track administrator activity for a security audit or to provide information for user billing. Accounting records include administrator identities, start and stop times, executed commands, number of packets, and number of bytes.

The TACACS+ protocol provides authentication between the access point and the TACACS+ daemon, and it ensures confidentiality because all protocol exchanges between the access point and the TACACS+ daemon are encrypted.

You need a system running the TACACS+ daemon software to use TACACS+ on your access point.

TACACS+ Operation

When an administrator attempts a simple ASCII login by authenticating to an access point using TACACS+, this process occurs:

1. When the connection is established, the access point contacts the TACACS+ daemon to obtain a username prompt, which is then displayed to the administrator. The administrator enters a username, and the access point then contacts the TACACS+ daemon to obtain a password prompt. The access point displays the password prompt to the administrator, the administrator enters a password, and the password is then sent to the TACACS+ daemon.

TACACS+ allows a conversation to be held between the daemon and the administrator until the daemon receives enough information to authenticate the administrator. The daemon prompts for a username and password combination, but can include other items, such as e.g. the user mother maiden name, or any other information configured on the TACACS as being mandatory to identify the user.

2. The access point eventually receives one of these responses from the TACACS+ daemon:

ACCEPT—The administrator is authenticated and service can begin. If the access point is configured to require authorization, authorization begins at this time.

REJECT—The administrator is not authenticated. The administrator can be denied access or is prompted to retry the login sequence, depending on the TACACS+ daemon.

ERROR—An error occurred at some time during authentication with the daemon or in the network connection between the daemon and the access point. If an ERROR response is received, the access point typically tries to use an alternative method for authenticating the administrator.

CONTINUE—The administrator is prompted for additional authentication information.

After authentication, the administrator undergoes an additional authorization phase if authorization has been enabled on the access point. Administrators must first successfully complete TACACS+ authentication before proceeding to TACACS+ authorization.

3. If TACACS+ authorization is required, the TACACS+ daemon is again contacted, and it returns an ACCEPT or REJECT authorization response. If an ACCEPT response is returned, the response contains data in the form of attributes that direct the EXEC or NETWORK session for that administrator, determining the services that the administrator can access:

Telnet, rlogin, or privileged EXEC services

Connection parameters, including the host or client IP address, access list, and administrator timeouts

Configuring TACACS+

This section describes how to configure your access point to support TACACS+. At a minimum, you must identify the host or hosts maintaining the TACACS+ daemon and define the method lists for TACACS+ authentication. You can optionally define method lists for TACACS+ authorization and accounting. A method list defines the sequence and methods to be used to authenticate, to authorize, or to keep accounts on an administrator. You can use method lists to designate one or more security protocols to be used, thus ensuring a backup system if the initial method fails. The software uses the first method listed to authenticate, to authorize, or to keep accounts on administrators; if that method does not respond, the software selects the next method in the list. This process continues until there is successful communication with a listed method or the method list is exhausted.

This section contains this configuration information:

Default TACACS+ Configuration

TACACS+ and AAA are disabled by default.

To prevent a lapse in security, you cannot configure TACACS+ through a network management application. When enabled, TACACS+ can authenticate administrators accessing the access point through the CLI and the web interface.

Identifying the TACACS+ Server Host and Setting the Authentication Key

You can configure the access point to use a single server or AAA server groups to group existing server hosts for authentication. You can group servers to select a subset of the configured server hosts and use them for a particular service. The server group is used with a global server-host list and contains the list of IP addresses of the selected server hosts.

Beginning in privileged EXEC mode, follow these steps to identify the IP host or host maintaining TACACS+ server and optionally set the encryption key:

 

Command
Purpose

Step 1

configure terminal

Enter global configuration mode.

Step 2

tacacs-server host hostname [ port integer ] [ timeout integer ] [ key string ]

Identify the IP host or hosts maintaining a TACACS+ server. Enter this command multiple times to create a list of preferred hosts. The software searches for hosts in the order in which you specify them.

  • For hostname, specify the name or IP address of the host.
  • (Optional) For port integer, specify a server port number. The default is port 49. The range is 1 to 65535.
  • (Optional) For timeout integer, specify a time in seconds the access point waits for a response from the daemon before it times out and declares an error. The default is 5 seconds. The range is 1 to 1000 seconds.
  • (Optional) For key string, specify the encryption key for encrypting and decrypting all traffic between the access point and the TACACS+ daemon. You must configure the same key on the TACACS+ daemon for encryption to be successful.

Step 3

aaa new-model

Enable AAA.

Step 4

aaa group server tacacs+ group-name

(Optional) Define the AAA server-group with a group name.

This command puts the access point in a server group subconfiguration mode.

Step 5

server ip-address

(Optional) Associate a particular TACACS+ server with the defined server group. Repeat this step for each TACACS+ server in the AAA server group.

Each server in the group must be previously defined in Step 2.

Step 6

end

Return to privileged EXEC mode.

Step 7

show tacacs

Verify your entries.

Step 8

copy running-config startup-config

(Optional) Save your entries in the configuration file.

To remove the specified TACACS+ server name or address, use the no tacacs-server host hostname global configuration command. To remove a server group from the configuration list, use the no aaa group server tacacs+ group-name global configuration command. To remove the IP address of a TACACS+ server, use the no server ip-address server group subconfiguration command.

Configuring TACACS+ Login Authentication

To configure AAA authentication, you define a named list of authentication methods and then apply that list to various interfaces. The method list defines the types of authentication to be performed and the sequence in which they are performed; it must be applied to a specific interface before any of the defined authentication methods are performed. The only exception is the default method list (which, by coincidence, is named default). The default method list is automatically applied to all interfaces except those that have a named method list explicitly defined. A defined method list overrides the default method list.

A method list describes the sequence and authentication methods to be queried to authenticate an administrator. You can designate one or more security protocols to be used for authentication, thus ensuring a backup system for authentication in case the initial method fails. The software uses the first method listed to authenticate users; if that method fails to respond, the software selects the next authentication method in the method list. This process continues until there is successful communication with a listed authentication method or until all defined methods are exhausted. If authentication fails at any point in this cycle—meaning that the security server or local username database responds by denying the administrator access—the authentication process stops, and no other authentication methods are attempted.

Beginning in privileged EXEC mode, follow these steps to configure login authentication:

 

Command
Purpose

Step 1

configure terminal

Enter global configuration mode.

Step 2

aaa new-model

Enable AAA.

Step 3

aaa authentication login { default | list-name } method1 [ method2... ]

Create a login authentication method list.

  • To create a default list that is used when a named list is not specified in the login authentication command, use the default keyword followed by the methods that are to be used in default situations. The default method list is automatically applied to all interfaces.
  • For list-name, specify a character string to name the list you are creating.
  • For method1..., specify the actual method the authentication algorithm tries. The additional methods of authentication are used only if the previous method returns an error, not if it fails.

Select one of these methods:

  • line —Use the line password for authentication. You must define a line password before you can use this authentication method. Use the password password line configuration command.
  • local —Use the local username database for authentication. You must enter username information into the database. Use the username password global configuration command.
  • tacacs+ —Uses TACACS+ authentication. You must configure the TACACS+ server before you can use this authentication method.

Step 4

line [ console | tty | vty ] line-number [ ending-line-number ]

Enter line configuration mode, and configure the lines to which you want to apply the authentication list.

Step 5

login authentication { default | list-name }

Apply the authentication list to a line or set of lines.

  • If you specify default, use the default list created with the aaa authentication login command.
  • For list-name, specify the list created with the aaa authentication login command.

Step 6

end

Return to privileged EXEC mode.

Step 7

show running-config

Verify your entries.

Step 8

copy running-config startup-config

(Optional) Save your entries in the configuration file.

To disable AAA, use the no aaa new-model global configuration command. To disable AAA authentication, use the no aaa authentication login {default | list-name } method1 [ method2... ] global configuration command. To either disable TACACS+ authentication for logins or to return to the default value, use the no login authentication { default | list-name } line configuration command.

Configuring TACACS+ Authorization for Privileged EXEC Access and Network Services

AAA authorization limits the services available to an administrator. When AAA authorization is enabled, the access point uses information retrieved from the administrator’s profile, which is located either in the local user database or on the security server, to configure the administrator’s session. The administrator is granted access to a requested service only if the information in the administrator profile allows it.

You can use the aaa authorization global configuration command with the tacacs+ keyword to set parameters that restrict an administrator’s network access to privileged EXEC mode.

The aaa authorization exec tacacs+ local command sets these authorization parameters:

  • Use TACACS+ for privileged EXEC access authorization if authentication was performed by using TACACS+.
  • Use the local database if authentication was not performed by using TACACS+.

Note Authorization is bypassed for authenticated administrators who log in through the CLI even if authorization has been configured.


Beginning in privileged EXEC mode, follow these steps to specify TACACS+ authorization for privileged EXEC access and network services:

 

Command
Purpose

Step 1

configure terminal

Enter global configuration mode.

Step 2

aaa authorization network tacacs+

Configure the access point for administrator TACACS+ authorization for all network-related service requests.

Step 3

aaa authorization exec tacacs+

Configure the access point for administrator TACACS+ authorization to determine if the administrator has privileged EXEC access.

The exec keyword might return user profile information (such as autocommand information).

Step 4

end

Return to privileged EXEC mode.

Step 5

show running-config

Verify your entries.

Step 6

copy running-config startup-config

(Optional) Save your entries in the configuration file.

To disable authorization, use the no aaa authorization { network | exec } method1 global configuration command.

You also need to configure your TACACS server with user credentials, and also configure the TACACS server to return an authorization profile for the authenticated user. The profile can be as extensive as shell privilege level 15, with no restriction of commands; or be more specific and target only a set of commands or a lower privilege level.

Starting TACACS+ Accounting

The AAA accounting feature tracks the services that administrators are accessing and the amount of network resources that they are consuming. When AAA accounting is enabled, the access point reports administrator activity to the TACACS+ security server in the form of accounting records. Each accounting record contains accounting attribute-value (AV) pairs and is stored on the security server. This data can then be analyzed for network management, client billing, or auditing.

Beginning in privileged EXEC mode, follow these steps to enable TACACS+ accounting for each Cisco IOS privilege level and for network services:

 

Command
Purpose

Step 1

configure terminal

Enter global configuration mode.

Step 2

aaa accounting network start-stop tacacs+

Enable TACACS+ accounting for all network-related service requests.

Step 3

aaa accounting exec start-stop tacacs+

Enable TACACS+ accounting to send a start-record accounting notice at the beginning of a privileged EXEC process and a stop-record at the end.

Step 4

end

Return to privileged EXEC mode.

Step 5

show running-config

Verify your entries.

Step 6

copy running-config startup-config

(Optional) Save your entries in the configuration file.

To disable accounting, use the no aaa accounting { network | exec } { start-stop } method1... global configuration command.

Displaying the TACACS+ Configuration

To display TACACS+ server statistics, use the show tacacs privileged EXEC command.