Administering the Switch
This chapter describes how to perform one-time operations to administer the Catalyst 3750 switch. Unless otherwise noted, the term switch refers to a standalone switch and to a switch stack.
This chapter consists of these sections:
•Preventing Unauthorized Access to Your Switch
•Protecting Access to Privileged EXEC Commands
•Controlling Switch Access with TACACS+
•Controlling Switch Access with RADIUS
•Configuring the Switch for Local Authentication and Authorization
•Managing the System Time and Date
•Configuring a System Name and Prompt
•Creating a Banner
•Managing the MAC Address Table
Preventing Unauthorized Access to Your Switch
You can prevent unauthorized users from reconfiguring your switch and viewing configuration information. Typically, you want network administrators to have access to your switch while you restrict access to users who dial from outside the network through an asynchronous port, connect from outside the network through a serial port, or connect through a terminal or workstation from within the local network.
To prevent unauthorized access into your switch, you should configure one or more of these security features:
•At a minimum, you should configure passwords and privileges at each switch port. These passwords are locally stored on the switch. When users attempt to access the switch through a port or line, they must enter the password specified for the port or line before they can access the switch. For more information, see the "Protecting Access to Privileged EXEC Commands" section.
•For an additional layer of security, you can also configure username and password pairs, which are locally stored on the switch. These pairs are assigned to lines or interfaces and authenticate each user before that user can access the switch. If you have defined privilege levels, you can also assign a specific privilege level (with associated rights and privileges) to each username and password pair. For more information, see the "Configuring Username and Password Pairs" section.
•If you want to use username and password pairs, but you want to store them centrally on a server instead of locally, you can store them in a database on a security server. Multiple networking devices can then use the same database to obtain user authentication (and, if necessary, authorization) information. For more information, see the "Controlling Switch Access with TACACS+" section.
Protecting Access to Privileged EXEC Commands
A simple way of providing terminal access control in your network is to use passwords and assign privilege levels. Password protection restricts access to a network or network device. Privilege levels define what commands users can enter after they have logged into a network device.
Note For complete syntax and usage information for the commands used in this section, refer to the Cisco IOS Security Command Reference for Release 12.1.
This section describes how to control access to the configuration file and privileged EXEC commands. It contains this configuration information:
•Default Password and Privilege Level Configuration
•Setting or Changing a Static Enable Password
•Protecting Enable and Enable Secret Passwords with Encryption
•Disabling Password Recovery
•Setting a Telnet Password for a Terminal Line
•Configuring Username and Password Pairs
•Configuring Multiple Privilege Levels
Default Password and Privilege Level Configuration
Table 7-1 shows the default password and privilege level configuration.
Table 7-1 Default Password and Privilege Levels
|
|
Enable password and privilege level |
No password is defined. The default is level 15 (privileged EXEC level). The password is not encrypted in the configuration file. |
Enable secret password and privilege level |
No password is defined. The default is level 15 (privileged EXEC level). The password is encrypted before it is written to the configuration file. |
Line password |
No password is defined. |
Setting or Changing a Static Enable Password
The enable password controls access to the privileged EXEC mode. Beginning in privileged EXEC mode, follow these steps to set or change a static enable password:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
enable password password |
Define a new password or change an existing password for access to privileged EXEC mode. By default, no password is defined. For password, specify a string from 1 to 25 alphanumeric characters. The string cannot start with a number, is case sensitive, and allows spaces but ignores leading spaces. It can contain the question mark (?) character if you precede the question mark with the key combination Crtl-v when you create the password; for example, to create the password abc?123, do this: Enter abc. Enter Crtl-v. Enter ?123. When the system prompts you to enter the enable password, you need not precede the question mark with the Ctrl-v; you can simply enter abc?123 at the password prompt. |
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. The enable password is not encrypted and can be read in the switch configuration file. |
To remove the password, use the no enable password global configuration command.
This example shows how to change the enable password to l1u2c3k4y5. The password is not encrypted and provides access to level 15 (traditional privileged EXEC mode access):
Switch(config)# enable password l1u2c3k4y5
Protecting Enable and Enable Secret Passwords with Encryption
To provide an additional layer of security, particularly for passwords that cross the network or that are stored on a Trivial File Transfer Protocol (TFTP) server, you can use either the enable password or enable secret global configuration commands. Both commands accomplish the same thing; that is, you can establish an encrypted password that users must enter to access privileged EXEC mode (the default) or any privilege level you specify.
We recommend that you use the enable secret command because it uses an improved encryption algorithm.
If you configure the enable secret command, it takes precedence over the enable password command; the two commands cannot be in effect simultaneously.
Beginning in privileged EXEC mode, follow these steps to configure encryption for enable and enable secret passwords:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
enable password [level level] {password | encryption-type encrypted-password} or enable secret [level level] {password | encryption-type encrypted-password} |
Define a new password or change an existing password for access to privileged EXEC mode. or Define a secret password, which is saved using a nonreversible encryption method. •(Optional) For level, the range is from 0 to 15. Level 1 is normal user EXEC mode privileges. The default level is 15 (privileged EXEC mode privileges). •For password, specify a string from 1 to 25 alphanumeric characters. The string cannot start with a number, is case sensitive, and allows spaces but ignores leading spaces. By default, no password is defined. •(Optional) For encryption-type, only type 5, a Cisco proprietary encryption algorithm, is available. If you specify an encryption type, you must provide an encrypted password—an encrypted password you copy from another switch configuration. Note If you specify an encryption type and then enter a clear text password, you can not re-enter privileged EXEC mode. You cannot recover a lost encrypted password by any method. |
Step 3 |
service password-encryption |
(Optional) Encrypt the password when the password is defined or when the configuration is written. Encryption prevents the password from being readable in the configuration file. |
Step 4 |
end |
Return to privileged EXEC mode. |
Step 5 |
copy running-config startup-config |
(Optional) Save your entries in the configuration file. |
If both the enable and enable secret passwords are defined, users must enter the enable secret password.
Use the level keyword to define a password for a specific privilege level. After you specify the level and set a password, give the password only to users who need to have access at this level. Use the privilege level global configuration command to specify commands accessible at various levels. For more information, see the "Configuring Multiple Privilege Levels" section.
If you enable password encryption, it applies to all passwords including username passwords, authentication key passwords, the privileged command password, and console and virtual terminal line passwords.
To remove a password and level, use the no enable password [level level] or no enable secret [level level] global configuration command. To disable password encryption, use the no service password-encryption global configuration command.
This example shows how to configure the encrypted password $1$FaD0$Xyti5Rkls3LoyxzS8 for privilege level 2:
Switch(config)# enable secret level 2 5 $1$FaD0$Xyti5Rkls3LoyxzS8
Disabling Password Recovery
The default configuration for the switches allows an end user with physical access to the switch to recover from a lost password by interrupting the boot process while the switch is powering up and then by entering a new password. The password recovery disable feature allows the system administrator to protect access to the switch password by disabling part of this functionality and allowing the user to interrupt the boot process only by agreeing to set the system back to the default configuration. With password recovery disabled, you can still interrupt the boot process and change the password, but the configuration file (config.text) and the VLAN database file (vlan.dat) are deleted.
Note If you disable password recovery, we recommend that you keep a backup copy of the configuration file on a secure server in case the end user interrupts the boot process and sets the system back to defaults. Do not keep a backup copy of the configuration file on the switch. If the switch is operating in VTP transparent mode, we recommend that you also keep a backup copy of the VLAN database file on a secure server. When the switch is returned to the default system configuration, you can download the saved files to the switch by using the XMODEM protocol. For more information, see the "Recovering from a Lost or Forgotten Password" section.
Beginning in privileged EXEC mode, follow these steps to disable password recovery:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
no service password-recovery |
Disable password recovery. This setting is saved in an area of the Flash memory that is accessible by the boot loader and the IOS image, but it is not part of the file system and is not accessible by any user. |
Step 3 |
end |
Return to privileged EXEC mode. |
Step 4 |
show version |
Verify the configuration by checking the last few lines of the display. |
To re-enable password recovery, use the service password-recovery global configuration command.
Note Disabling password recovery will not work if you have set the switch to boot manually by using the boot manual global configuration command because this command allows the user to automatically see the boot loader prompt (switch:) after power cycling the switch.
Setting a Telnet Password for a Terminal Line
When you power-up your switch for the first time, an automatic setup program runs to assign IP information and to create a default configuration for continued use. The setup program also prompts you to configure your switch for Telnet access through a password. If you did not configure this password during the setup program, you can configure it now through the command-line interface (CLI).
Beginning in privileged EXEC mode, follow these steps to configure your switch for Telnet access:
|
|
|
Step 1 |
|
Attach a PC or workstation with emulation software to the switch console port. The default data characteristics of the console port are 9600, 8, 1, no parity. You might need to press the Return key several times to see the command-line prompt. |
Step 2 |
enable password password |
Enter privileged EXEC mode. |
Step 3 |
configure terminal |
Enter global configuration mode. |
Step 4 |
line vty 0 15 |
Configure the number of Telnet sessions (lines), and enter line configuration mode. There are 16 possible sessions on a command-capable switch. The 0 and 15 mean that you are configuring all 16 possible Telnet sessions. |
Step 5 |
password password |
Enter a Telnet password for the line or lines. For password, specify a string from 1 to 25 alphanumeric characters. The string cannot start with a number, is case sensitive, and allows spaces but ignores leading spaces. By default, no password is defined. |
Step 6 |
end |
Return to privileged EXEC mode. |
Step 7 |
show running-config |
Verify your entries. The password is listed under the command line vty 0 15. |
Step 8 |
copy running-config startup-config |
(Optional) Save your entries in the configuration file. |
To remove the password, use the no password global configuration command.
This example shows how to set the Telnet password to let45me67in89:
Switch(config)# line vty 10
Switch(config-line)# password let45me67in89
Configuring Username and Password Pairs
You can configure username and password pairs, which are locally stored on the switch. These pairs are assigned to lines or interfaces and authenticate each user before that user can access the switch. If you have defined privilege levels, you can also assign a specific privilege level (with associated rights and privileges) to each username and password pair.
Beginning in privileged EXEC mode, follow these steps to establish a username-based authentication system that requests a login username and a password:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
username name [privilege level] {password encryption-type password} |
Enter the username, privilege level, and password for each user. •For name, specify the user ID as one word. Spaces and quotation marks are not allowed. •(Optional) For level, specify the privilege level the user has after gaining access. The range is 0 to 15. Level 15 gives privileged EXEC mode access. Level 1 gives user EXEC mode access. •For encryption-type, enter 0 to specify that an unencrypted password will follow. Enter 7 to specify that a hidden password will follow. •For password, specify the password the user must enter to gain access to the switch. The password must be from 1 to 25 characters, can contain embedded spaces, and must be the last option specified in the username command. |
Step 3 |
line console 0 or line vty 0 15 |
Enter line configuration mode, and configure the console port (line 0) or the VTY lines (line 0 to 15). |
Step 4 |
login local |
Enable local password checking at login time. Authentication is based on the username specified in Step 2. |
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 username authentication for a specific user, use the no username name global configuration command. To disable password checking and allow connections without a password, use the no login line configuration command.
Configuring Multiple Privilege Levels
By default, the IOS software has two modes of password security: user EXEC and privileged EXEC. You can configure up to 16 hierarchical levels of commands for each mode. By configuring multiple passwords, you can allow different sets of users to have access to specified commands.
For example, if you want many users to have access to the clear line command, you can assign it level 2 security and distribute the level 2 password fairly widely. But if you want more restricted access to the configure command, you can assign it level 3 security and distribute that password to a more restricted group of users.
This section includes this configuration information:
•Setting the Privilege Level for a Command
•Changing the Default Privilege Level for Lines
•Logging into and Exiting a Privilege Level
Setting the Privilege Level for a Command
Beginning in privileged EXEC mode, follow these steps to set the privilege level for a command mode:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
privilege mode level level command |
Set the privilege level for a command. •For mode, enter configure for global configuration mode, exec for EXEC mode, interface for interface configuration mode, or line for line configuration mode. •For level, the range is from 0 to 15. Level 1 is for normal user EXEC mode privileges. Level 15 is the level of access permitted by the enable password. •For command, specify the command to which you want to restrict access. |
Step 3 |
enable password level level password |
Specify the enable password for the privilege level. •For level, the range is from 0 to 15. Level 1 is for normal user EXEC mode privileges. •For password, specify a string from 1 to 25 alphanumeric characters. The string cannot start with a number, is case sensitive, and allows spaces but ignores leading spaces. By default, no password is defined. |
Step 4 |
end |
Return to privileged EXEC mode. |
Step 5 |
show running-config or show privilege |
Verify your entries. The first command displays the password and access level configuration. The second command displays the privilege level configuration. |
Step 6 |
copy running-config startup-config |
(Optional) Save your entries in the configuration file. |
When you set a command to a privilege level, all commands whose syntax is a subset of that command are also set to that level. For example, if you set the show ip traffic command to level 15, the show commands and show ip commands are automatically set to privilege level 15 unless you set them individually to different levels.
To return to the default privilege for a given command, use the no privilege mode level level command global configuration command.
This example shows how to set the configure command to privilege level 14 and define SecretPswd14 as the password users must enter to use level 14 commands:
Switch(config)# privilege exec level 14 configure
Switch(config)# enable password level 14 SecretPswd14
Changing the Default Privilege Level for Lines
Beginning in privileged EXEC mode, follow these steps to change the default privilege level for a line:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
line vty line |
Select the virtual terminal line on which to restrict access. |
Step 3 |
privilege level level |
Change the default privilege level for the line. For level, the range is from 0 to 15. Level 1 is for normal user EXEC mode privileges. Level 15 is the level of access permitted by the enable password. |
Step 4 |
end |
Return to privileged EXEC mode. |
Step 5 |
show running-config or show privilege |
Verify your entries. The first command displays the password and access level configuration. The second command displays the privilege level configuration. |
Step 6 |
copy running-config startup-config |
(Optional) Save your entries in the configuration file. |
Users can override the privilege level you set using the privilege level line configuration command by logging in to the line and enabling a different privilege level. They can lower the privilege level by using the disable command. If users know the password to a higher privilege level, they can use that password to enable the higher privilege level. You might specify a high level or privilege level for your console line to restrict line usage.
To return to the default line privilege level, use the no privilege level line configuration command.
Logging into and Exiting a Privilege Level
Beginning in privileged EXEC mode, follow these steps to log in to a specified privilege level and to exit to a specified privilege level:
|
|
|
Step 1 |
enable level |
Log in to a specified privilege level. For level, the range is 0 to 15. |
Step 2 |
disable level |
Exit to a specified privilege level. For level, the range is 0 to 15. |
Controlling Switch Access with TACACS+
This section describes how to enable and configure Terminal Access Controller Access Control System Plus (TACACS+), which provides detailed accounting information and flexible administrative control over authentication and authorization processes. TACACS+ is facilitated through authentication, authorization, accounting (AAA) and can be enabled only through AAA commands.
Note For complete syntax and usage information for the commands used in this section, refer to the Cisco IOS Security Command Reference for Release 12.1.
This section contains this configuration information:
•Understanding TACACS+
•TACACS+ Operation
•Configuring TACACS+
•Displaying the TACACS+ Configuration
Understanding TACACS+
TACACS+ is a security application that provides centralized validation of users attempting to gain access to your switch. TACACS+ services are maintained in a database on a TACACS+ daemon typically running on a UNIX or Windows NT workstation. You should have access to and should configure a TACACS+ server before the configuring TACACS+ features on your switch.
Note We recommend a redundant connection between a switch stack and the TACACS+ server. This is to help ensure that the TACACS+ server remains accessible in case one of the connected stack members is removed from the switch stack.
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.
The goal of TACACS+ is to provide a method for managing multiple network access points from a single management service. Your switch can be a network access server along with other Cisco routers and access servers. A network access server provides connections to a single user, to a network or subnetwork, and to interconnected networks as shown in Figure 7-1.
Figure 7-1 Typical TACACS+ Network Configuration
TACACS+, administered through the AAA security services, can provide these services:
•Authentication—Provides complete control of authentication through login and password dialog, challenge and response, and messaging support.
The authentication facility can conduct a dialog with the user (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 user screens. For example, a message could notify users that their passwords must be changed because of the company's password aging policy.
•Authorization—Provides fine-grained control over user capabilities for the duration of the user's session, including but not limited to setting autocommands, access control, session duration, or protocol support. You can also enforce restrictions on what commands a user 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 user activity for a security audit or to provide information for user billing. Accounting records include user identities, start and stop times, executed commands (such as PPP), number of packets, and number of bytes.
The TACACS+ protocol provides authentication between the switch and the TACACS+ daemon, and it ensures confidentiality because all protocol exchanges between the switch and the TACACS+ daemon are encrypted.
You need a system running the TACACS+ daemon software to use TACACS+ on your switch.
TACACS+ Operation
When a user attempts a simple ASCII login by authenticating to a switch using TACACS+, this process occurs:
1. When the connection is established, the switch contacts the TACACS+ daemon to obtain a username prompt, which is then displayed to the user. The user enters a username, and the switch then contacts the TACACS+ daemon to obtain a password prompt. The switch displays the password prompt to the user, the user 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 user until the daemon receives enough information to authenticate the user. The daemon prompts for a username and password combination, but can include other items, such as the user's mother's maiden name.
2. The switch eventually receives one of these responses from the TACACS+ daemon:
–ACCEPT—The user is authenticated and service can begin. If the switch is configured to require authorization, authorization begins at this time.
–REJECT—The user is not authenticated. The user 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 switch. If an ERROR response is received, the switch typically tries to use an alternative method for authenticating the user.
–CONTINUE—The user is prompted for additional authentication information.
After authentication, the user undergoes an additional authorization phase if authorization has been enabled on the switch. Users 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 user, determining the services that the user can access:
–Telnet, rlogin, or privileged EXEC services
–Connection parameters, including the host or client IP address, access list, and user timeouts
Configuring TACACS+
This section describes how to configure your switch 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 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.
This section contains this configuration information:
•Default TACACS+ Configuration
•Identifying the TACACS+ Server Host and Setting the Authentication Key
•Configuring TACACS+ Login Authentication
•Configuring TACACS+ Authorization for Privileged EXEC Access and Network Services
•Starting TACACS+ Accounting
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 users accessing the switch through the CLI.
Note Although TACACS+ configuration is performed through the CLI, the TACACS+ server authenticates HTTP connections that have been configured with a privilege level of 15.
Identifying the TACACS+ Server Host and Setting the Authentication Key
You can configure the switch 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:
|
|
|
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 switch 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 switch 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 switch 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 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:
|
|
|
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: •enable—Use the enable password for authentication. Before you can use this authentication method, you must define an enable password by using the enable password global configuration command. •group tacacs+—Uses TACACS+ authentication. Before you can use this authentication method, you must configure the TACACS+ server. For more information, see the "Identifying the TACACS+ Server Host and Setting the Authentication Key" section. •line—Use the line password for authentication. Before you can use this authentication method, you must define a line password. 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. •local-case—Use a case-sensitive local username database for authentication. You must enter username information in the database by using the username name password global configuration command. •none—Do not use any authentication for login. |
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 a user. When AAA authorization is enabled, the switch uses information retrieved from the user's profile, which is located either 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.
You can use the aaa authorization global configuration command with the tacacs+ keyword to set parameters that restrict a user'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 users 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:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
aaa authorization network tacacs+ |
Configure the switch for user TACACS+ authorization for all network-related service requests. |
Step 3 |
aaa authorization exec tacacs+ |
Configure the switch for user TACACS+ 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.
Starting TACACS+ 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 switch reports user 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:
|
|
|
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.
Controlling Switch Access with RADIUS
This section describes how to enable and configure the Remote Authentication Dial-In User Service (RADIUS), which provides detailed accounting information and flexible administrative control over authentication and authorization processes. RADIUS is facilitated through AAA and can be enabled only through AAA commands.
Note For complete syntax and usage information for the commands used in this section, refer to the Cisco IOS Security Command Reference for Release 12.1.
This section contains this configuration information:
•Understanding RADIUS
•RADIUS Operation
•Configuring RADIUS
•Displaying the RADIUS Configuration
Understanding RADIUS
RADIUS is a distributed client/server system that secures networks against unauthorized access. RADIUS clients run on supported Cisco routers and switches. Clients 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 Secure Access Control Server version 3.0), Livingston, Merit, Microsoft, or another software provider. For more information, refer to the RADIUS server documentation.
Note We recommend a redundant connection between a switch stack and the RADIUS server. This is to help ensure that the RADIUS server remains accessible in case one of the connected stack members is removed from the switch stack.
Use RADIUS in these network environments that 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 has been customized to work with the Kerberos security system.
•Turnkey network security environments in which applications support the RADIUS protocol, such as in an access environment that uses a smart card access control system. In one case, RADIUS has been used with Enigma's security cards to validates users and to grant access to network resources.
•Networks already using RADIUS. You can add a Cisco switch containing a RADIUS client to the network. This might be the first step when you make a transition to a TACACS+ server. See Figure 7-2.
•Network in which the user must only access a single service. Using RADIUS, you can control user access to a single host, to a single utility such as Telnet, or to the network through a protocol such as IEEE 802.1X. For more information about this protocol, see "Configuring 802.1X Port-Based Authentication."
•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 AppleTalk Remote Access (ARA), NetBIOS Frame Control Protocol (NBFCP), NetWare Asynchronous Services Interface (NASI), or X.25 PAD connections.
•Switch-to-switch or router-to-router situations. RADIUS does not provide two-way authentication. RADIUS can be used to authenticate from one device to a non-Cisco device if the non-Cisco device requires authentication.
•Networks using a variety of services. RADIUS generally binds a user to one service model.
Figure 7-2 Transitioning from RADIUS to TACACS+ Services
RADIUS Operation
When a user attempts to log in and authenticate to a switch that is access controlled by a RADIUS server, these events occur:
1. The user is prompted to enter a username and password.
2. The username and encrypted password are sent over the network to the RADIUS server.
3. The user receives one of these responses from the RADIUS server:
a. ACCEPT—The user is authenticated.
b. REJECT—The user is either not authenticated and is prompted to re-enter the username and password, or access is denied.
c. CHALLENGE—A challenge requires additional data from the user.
d. CHALLENGE PASSWORD—A response requests the user to select a new password.
The ACCEPT or REJECT response is bundled with additional data that is used for privileged EXEC or network authorization. Users must first successfully complete RADIUS authentication before proceeding to RADIUS authorization, if it is enabled. The additional data included with the ACCEPT or REJECT packets includes these items:
•Telnet, rlogin, or privileged EXEC services
•Connection parameters, including the host or client IP address, access list, and user timeouts
Configuring RADIUS
This section describes how to configure your switch to support RADIUS. At a minimum, you must identify the host or hosts 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 (such as TACACS+ or local username lookup), 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 switch.
This section contains this configuration information:
•Default RADIUS Configuration
•Identifying the RADIUS Server Host (required)
•Configuring RADIUS Login Authentication (required)
•Defining AAA Server Groups (optional)
•Configuring RADIUS Authorization for User Privileged Access and Network Services (optional)
•Starting RADIUS Accounting (optional)
•Configuring Settings for All RADIUS Servers (optional)
•Configuring the Switch to Use Vendor-Specific RADIUS Attributes (optional)
•Configuring the Switch for Vendor-Proprietary RADIUS Server Communication (optional)
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 switch through the CLI.
Identifying the RADIUS Server Host
Switch-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.
If two different host entries on the same RADIUS server are configured for the same service—for example, 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 switch 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 switch 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 switch.
The timeout, retransmission, and encryption key values can be configured globally for all RADIUS servers, on a per-server basis, or in some combination of global and per-server settings. To apply these settings globally to all RADIUS servers communicating with the switch, 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 switch, 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 switch 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.
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
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 switch waits for the RADIUS server to reply before resending. 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 switch 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 switch 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 switch 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 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. |
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:
Switch(config)# radius-server host 172.29.36.49 auth-port 1612 key rad1
Switch(config)# radius-server host 172.20.36.50 acct-port 1618 key rad2
This example shows how to configure host1 as the RADIUS server and to use the default ports for both authentication and accounting:
Switch(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 switch and the key string to be shared by both the server and the switch. 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.
|
|
|
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: –enable—Use the enable password for authentication. Before you can use this authentication method, you must define an enable password by using the enable password global configuration command. –group radius—Use RADIUS authentication. Before you can use this authentication method, you must configure the RADIUS server. For more information, see the "Identifying the RADIUS Server Host" section. –line—Use the line password for authentication. Before you can use this authentication method, you must define a line password. 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 name password global configuration command. –local-case—Use a case-sensitive local username database for authentication. You must enter username information in the database by using the username password global configuration command. –none—Do not use any authentication for login. |
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 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 switch 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, (for example, 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:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
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 switch waits for the RADIUS server to reply before resending. 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 switch 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 switch 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 switch 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 3 |
aaa new-model |
Enable AAA. |
Step 4 |
aaa group server radius group-name |
Define the AAA server-group with a group name. This command puts the switch 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 switch 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.
Switch(config)# radius-server host 172.20.0.1 auth-port 1000 acct-port 1001
Switch(config)# radius-server host 172.10.0.1 auth-port 1645 acct-port 1646
Switch(config)# aaa new-model
Switch(config)# aaa group server radius group1
Switch(config-sg-radius)# server 172.20.0.1 auth-port 1000 acct-port 1001
Switch(config-sg-radius)# exit
Switch(config)# aaa group server radius group2
Switch(config-sg-radius)# server 172.20.0.1 auth-port 2000 acct-port 2001
Switch(config-sg-radius)# exit
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 switch 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.
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:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
aaa authorization network radius |
Configure the switch for user RADIUS authorization for all network-related service requests. |
Step 3 |
aaa authorization exec radius |
Configure the switch 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.
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 switch 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.
Beginning in privileged EXEC mode, follow these steps to enable RADIUS accounting for each Cisco IOS privilege level and for network services:
|
|
|
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 |
aaa accounting exec start-stop radius |
Enable RADIUS 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.
Configuring Settings for All RADIUS Servers
Beginning in privileged EXEC mode, follow these steps to configure global communication settings between the switch and all RADIUS servers:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
radius-server key string |
Specify the shared secret text string used between the switch 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 switch 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 a switch 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 |
Specify the number of minutes a RADIUS server, which is not responding to authentication requests, to be skipped, thus avoiding the wait for the request to timeout before trying the next configured server. The default is 0; the range is 1 to 1440 minutes. |
Step 6 |
end |
Return to privileged EXEC mode. |
Step 7 |
show running-config |
Verify your settings. |
Step 8 |
copy running-config startup-config |
(Optional) Save your entries in the configuration file. |
To return to the default setting for the retransmit, timeout, and deadtime, use the no forms of these commands.
Configuring the Switch to Use Vendor-Specific RADIUS Attributes
The Internet Engineering Task Force (IETF) draft standard specifies a method for communicating vendor-specific information between the switch 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 attribute-value (AV) pair defined in the Cisco TACACS+ specification, and sep is = for mandatory attributes and * 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 a switch 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 switch to recognize and use VSAs:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
radius-server vsa send [accounting | authentication] |
Enable the switch 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 vendor-specific attribute 26, refer to the "RADIUS Attributes" appendix in the Cisco IOS Security Configuration Guide for Release 12.1.
Configuring the Switch for Vendor-Proprietary RADIUS Server Communication
Although an IETF draft standard for RADIUS specifies a method for communicating vendor-proprietary information between the switch 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 switch. 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:
|
|
|
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 switch and the vendor-proprietary RADIUS server. The switch 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 switch and the server:
Switch(config)# radius-server host 172.20.30.15 nonstandard
Switch(config)# radius-server key rad124
Displaying the RADIUS Configuration
To display the RADIUS configuration, use the show running-config privileged EXEC command.
Configuring the Switch for Local Authentication and Authorization
You can configure AAA to operate without a server by setting the switch to implement AAA in local mode. The switch then handles authentication and authorization. No accounting is available in this configuration.
Beginning in privileged EXEC mode, follow these steps to configure the switch for local AAA:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
aaa new-model |
Enable AAA. |
Step 3 |
aaa authentication login default local |
Set the login authentication to use the local username database. The default keyword applies the local user database authentication to all interfaces. |
Step 4 |
aaa authorization exec local |
Configure user AAA authorization to determine if the user is allowed to run an EXEC shell by checking the local database. |
Step 5 |
aaa authorization network local |
Configure user AAA authorization for all network-related service requests. |
Step 6 |
username name [privilege level] {password encryption-type password} |
Enter the local database, and establish a username-based authentication system. Repeat this command for each user. •For name, specify the user ID as one word. Spaces and quotation marks are not allowed. •(Optional) For level, specify the privilege level the user has after gaining access. The range is 0 to 15. Level 15 gives privileged EXEC mode access. Level 0 gives user EXEC mode access. •For encryption-type, enter 0 to specify that an unencrypted password follows. Enter 7 to specify that a hidden password follows. •For password, specify the password the user must enter to gain access to the switch. The password must be from 1 to 25 characters, can contain embedded spaces, and must be the last option specified in the username command. |
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 authorization, use the no aaa authorization {network | exec} method1 global configuration command.
Managing the System Time and Date
You can manage the system time and date on your switch using automatic configuration, such as the Network Time Protocol (NTP), or manual configuration methods.
Note For complete syntax and usage information for the commands used in this section, refer to the Cisco IOS Configuration Fundamentals Command Reference for Release 12.1.
This section contains this configuration information:
•Understanding the System Clock
•Understanding Network Time Protocol
•Configuring NTP
•Configuring Time and Date Manually
Understanding the System Clock
The heart of the time service is the system clock. This clock runs from the moment the system starts up and keeps track of the date and time.
The system clock can then be set from these sources:
•Network Time Protocol
•Manual configuration
The system clock can provide time to these services:
•User show commands
•Logging and debugging messages
The system clock keeps track of time internally based on Universal Time Coordinated (UTC), also known as Greenwich Mean Time (GMT). You can configure information about the local time zone and summer time (daylight saving time) so that the time is correctly displayed for the local time zone.
The system clock keeps track of whether the time is authoritative or not (that is, whether it has been set by a time source considered to be authoritative). If it is not authoritative, the time is available only for display purposes and is not redistributed. For configuration information, see the "Configuring Time and Date Manually" section.
Understanding Network Time Protocol
The NTP is designed to time-synchronize a network of devices. NTP runs over User Datagram Protocol (UDP), which runs over IP. NTP is documented in RFC 1305.
An NTP network usually gets its time from an authoritative time source, such as a radio clock or an atomic clock attached to a time server. NTP then distributes this time across the network. NTP is extremely efficient; no more than one packet per minute is necessary to synchronize two devices to within a millisecond of one another.
NTP uses the concept of a stratum to describe how many NTP hops away a device is from an authoritative time source. A stratum 1 time server has a radio or atomic clock directly attached, a stratum 2 time server receives its time through NTP from a stratum 1 time server, and so on. A device running NTP automatically chooses as its time source the device with the lowest stratum number with which it communicates through NTP. This strategy effectively builds a self-organizing tree of NTP speakers.
NTP avoids synchronizing to a device whose time might not be accurate by never synchronizing to a device that is not synchronized. NTP also compares the time reported by several devices and does not synchronize to a device whose time is significantly different than the others, even if its stratum is lower.
The communications between devices running NTP (known as associations) are usually statically configured; each device is given the IP address of all devices with which it should form associations. Accurate timekeeping is possible by exchanging NTP messages between each pair of devices with an association. However, in a LAN environment, NTP can be configured to use IP broadcast messages instead. This alternative reduces configuration complexity because each device can simply be configured to send or receive broadcast messages. However, in that case, information flow is one-way only.
The time kept on a device is a critical resource; you should use the security features of NTP to avoid the accidental or malicious setting of an incorrect time. Two mechanisms are available: an access list-based restriction scheme and an encrypted authentication mechanism.
Cisco's implementation of NTP does not support stratum 1 service; it is not possible to connect to a radio or atomic clock. We recommend that the time service for your network be derived from the public NTP servers available on the IP Internet. Figure 7-3 show a typical network example using NTP.
If the network is isolated from the Internet, Cisco's implementation of NTP allows a device to act as though it is synchronized through NTP, when in fact it has determined the time by using other means. Other devices then synchronize to that device through NTP.
When multiple sources of time are available, NTP is always considered to be more authoritative. NTP time overrides the time set by any other method.
Several manufacturers include NTP software for their host systems, and a publicly available version for systems running UNIX and its various derivatives is also available. This software allows host systems to be time-synchronized as well.
Figure 7-3 Typical NTP Network Configuration
Configuring NTP
The switches do not have a hardware-supported clock, and they cannot function as an NTP master clock to which peers synchronize themselves when an external NTP source is not available. These switches also have no hardware support for a calendar. As a result, the ntp update-calendar and the ntp master global configuration commands are not available.
This section contains this configuration information:
•Default NTP Configuration
•Configuring NTP Authentication
•Configuring NTP Associations
•Configuring NTP Broadcast Service
•Configuring NTP Access Restrictions
•Configuring the Source IP Address for NTP Packets
•Displaying the NTP Configuration
Default NTP Configuration
Table 7-2 shows the default NTP configuration.
Table 7-2 Default NTP Configuration
|
|
NTP authentication |
Disabled. No authentication key is specified. |
NTP peer or server associations |
None configured. |
NTP broadcast service |
Disabled; no interface sends or receives NTP broadcast packets. |
NTP access restrictions |
No access control is specified. |
NTP packet source IP address |
The source address is determined by the outgoing interface. |
NTP is enabled on all interfaces by default. All interfaces receive NTP packets.
Configuring NTP Authentication
This procedure must be coordinated with the administrator of the NTP server; the information you configure in this procedure must be matched by the servers used by the switch to synchronize its time to the NTP server.
Beginning in privileged EXEC mode, follow these steps to authenticate the associations (communications between devices running NTP that provide for accurate timekeeping) with other devices for security purposes:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
ntp authenticate |
Enable the NTP authentication feature, which is disabled by default. |
Step 3 |
ntp authentication-key number md5 value |
Define the authentication keys. By default, none are defined. •For number, specify a key number. The range is 1 to 4294967295. •md5 specifies that message authentication support is provided by using the message digest algorithm 5 (MD5). •For value, enter an arbitrary string of up to eight characters for the key. The switch does not synchronize to a device unless both have one of these authentication keys, and the key number is specified by the ntp trusted-key key-number command. |
Step 4 |
ntp trusted-key key-number |
Specify one or more key numbers (defined in Step 3) that a peer NTP device must provide in its NTP packets for this switch to synchronize to it. By default, no trusted keys are defined. For key-number, specify the key defined in Step 3. This command provides protection against accidentally synchronizing the switch to a device that is not trusted. |
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 NTP authentication, use the no ntp authenticate global configuration command. To remove an authentication key, use the no ntp authentication-key number global configuration command. To disable authentication of the identity of a device, use the no ntp trusted-key key-number global configuration command.
This example shows how to configure the switch to synchronize only to devices providing authentication key 42 in the device's NTP packets:
Switch(config)# ntp authenticate
Switch(config)# ntp authentication-key 42 md5 aNiceKey
Switch(config)# ntp trusted-key 42
Configuring NTP Associations
An NTP association can be a peer association (this switch can either synchronize to the other device or allow the other device to synchronize to it), or it can be a server association (meaning that only this switch synchronizes to the other device, and not the other way around).
Beginning in privileged EXEC mode, follow these steps to form an NTP association with another device:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
ntp peer ip-address [version number] [key keyid] [source interface] [prefer] or ntp server ip-address [version number] [key keyid] [source interface] [prefer] |
Configure the switch system clock to synchronize a peer or to be synchronized by a peer (peer association). or Configure the switch system clock to be synchronized by a time server (server association). No peer or server associations are defined by default. •For ip-address in a peer association, specify either the IP address of the peer providing, or being provided, the clock synchronization. For a server association, specify the IP address of the time server providing the clock synchronization. •(Optional) For number, specify the NTP version number. The range is 1 to 3. By default, version 3 is selected. •(Optional) For keyid, enter the authentication key defined with the ntp authentication-key global configuration command. •(Optional) For interface, specify the interface from which to pick the IP source address. By default, the source IP address is taken from the outgoing interface. •(Optional) Enter the prefer keyword to make this peer or server the preferred one that provides synchronization. This keyword reduces switching back and forth between peers and servers. |
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. |
You need to configure only one end of an association; the other device can automatically establish the association. If you are using the default NTP version (version 3) and NTP synchronization does not occur, try using NTP version 2. Many NTP servers on the Internet run version 2.
To remove a peer or server association, use the no ntp peer ip-address or the no ntp server ip-address global configuration command.
This example shows how to configure the switch to synchronize its system clock with the clock of the peer at IP address 172.16.22.44 using NTP version 2:
Switch(config)# ntp server 172.16.22.44 version 2
Configuring NTP Broadcast Service
The communications between devices running NTP (known as associations) are usually statically configured; each device is given the IP addresses of all devices with which it should form associations. Accurate timekeeping is possible by exchanging NTP messages between each pair of devices with an association. However, in a LAN environment, NTP can be configured to use IP broadcast messages instead. This alternative reduces configuration complexity because each device can simply be configured to send or receive broadcast messages. However, the information flow is one-way only.
The switch can send or receive NTP broadcast packets on an interface-by-interface basis if there is an NTP broadcast server, such as a router, broadcasting time information on the network. The switch can send NTP broadcast packets to a peer so that the peer can synchronize to it. The switch can also receive NTP broadcast packets to synchronize its own clock. This section provides procedures for both sending and receiving NTP broadcast packets.
Beginning in privileged EXEC mode, follow these steps to configure the switch to send NTP broadcast packets to peers so that they can synchronize their clock to the switch:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
interface interface-id |
Specify the interface to send NTP broadcast packets, and enter interface configuration mode. |
Step 3 |
ntp broadcast [version number] [key keyid] [destination-address] |
Enable the interface to send NTP broadcast packets to a peer. By default, this feature is disabled on all interfaces. •(Optional) For number, specify the NTP version number. The range is 1 to 3. If you do not specify a version, version 3 is used. •(Optional) For keyid, specify the authentication key to use when sending packets to the peer. •(Optional) For destination-address, specify the IP address of the peer that is synchronizing its clock to this switch. |
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. |
Step 7 |
|
Configure the connected peers to receive NTP broadcast packets as described in the next procedure. |
To disable the interface from sending NTP broadcast packets, use the no ntp broadcast interface configuration command.
This example shows how to configure an interface to send NTP version 2 packets:
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# ntp broadcast version 2
Beginning in privileged EXEC mode, follow these steps to configure the switch to receive NTP broadcast packets from connected peers:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
interface interface-id |
Specify the interface to receive NTP broadcast packets, and enter interface configuration mode. |
Step 3 |
ntp broadcast client |
Enable the interface to receive NTP broadcast packets. By default, no interfaces receive NTP broadcast packets. |
Step 4 |
exit |
Return to global configuration mode. |
Step 5 |
ntp broadcastdelay microseconds |
(Optional) Change the estimated round-trip delay between the switch and the NTP broadcast server. The default is 3000 microseconds; the range is 1 to 999999. |
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 an interface from receiving NTP broadcast packets, use the no ntp broadcast client interface configuration command. To change the estimated round-trip delay to the default, use the no ntp broadcastdelay global configuration command.
This example shows how to configure an interface to receive NTP broadcast packets:
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# ntp broadcast client
Configuring NTP Access Restrictions
You can control NTP access on two levels as described in these sections:
•Creating an Access Group and Assigning a Basic IP Access List
•Disabling NTP Services on a Specific Interface
Creating an Access Group and Assigning a Basic IP Access List
Beginning in privileged EXEC mode, follow these steps to control access to NTP services by using access lists:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
ntp access-group {query-only | serve-only | serve | peer} access-list-number |
Create an access group, and apply a basic IP access list. The keywords have these meanings: •query-only—Allows only NTP control queries. •serve-only—Allows only time requests. •serve—Allows time requests and NTP control queries, but does not allow the switch to synchronize to the remote device. •peer—Allows time requests and NTP control queries and allows the switch to synchronize to the remote device. For access-list-number, enter a standard IP access list number from 1 to 99. |
Step 3 |
access-list access-list-number permit source [source-wildcard] |
Create the access list. •For access-list-number, enter the number specified in Step 2. •Enter the permit keyword to permit access if the conditions are matched. •For source, enter the IP address of the device that is permitted access to the switch. •(Optional) For source-wildcard, enter the wildcard bits to be applied to the source. Note When creating an access list, remember that, by default, the end of the access list contains an implicit deny statement for everything if it did not find a match before reaching 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. |
The access group keywords are scanned in this order, from least restrictive to most restrictive:
1. peer—Allows time requests and NTP control queries and allows the switch to synchronize itself to a device whose address passes the access list criteria.
2. serve—Allows time requests and NTP control queries, but does not allow the switch to synchronize itself to a device whose address passes the access list criteria.
3. serve-only—Allows only time requests from a device whose address passes the access list criteria.
4. query-only—Allows only NTP control queries from a device whose address passes the access list criteria.
If the source IP address matches the access lists for more than one access type, the first type is granted. If no access groups are specified, all access types are granted to all devices. If any access groups are specified, only the specified access types are granted.
To remove access control to the switch NTP services, use the no ntp access-group {query-only | serve-only | serve | peer} global configuration command.
This example shows how to configure the switch to allow itself to synchronize to a peer from access list 99. However, the switch restricts access to allow only time requests from access list 42:
Switch# configure terminal
Switch(config)# ntp access-group peer 99
Switch(config)# ntp access-group serve-only 42
Switch(config)# access-list 99 permit 172.20.130.5
Switch(config)# access list 42 permit 172.20.130.6
Disabling NTP Services on a Specific Interface
NTP services are enabled on all interfaces by default.
Beginning in privileged EXEC mode, follow these steps to disable NTP packets from being received on an interface:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
interface interface-id |
Enter interface configuration mode, and specify the interface to disable. |
Step 3 |
ntp disable |
Disable NTP packets from being received on the interface. By default, all interfaces receive NTP packets. |
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 re-enable receipt of NTP packets on an interface, use the no ntp disable interface configuration command.
Configuring the Source IP Address for NTP Packets
When the switch sends an NTP packet, the source IP address is normally set to the address of the interface through which the NTP packet is sent. Use the ntp source global configuration command when you want to use a particular source IP address for all NTP packets. The address is taken from the specified interface. This command is useful if the address on an interface cannot be used as the destination for reply packets.
Beginning in privileged EXEC mode, follow these steps to configure a specific interface from which the IP source address is to be taken:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
ntp source type number |
Specify the interface type and number from which the IP source address is taken. By default, the source address is determined by the outgoing interface. |
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. |
The specified interface is used for the source address for all packets sent to all destinations. If a source address is to be used for a specific association, use the source keyword in the ntp peer or ntp server global configuration command as described in the "Configuring NTP Associations" section.
Displaying the NTP Configuration
You can use two privileged EXEC commands to display NTP information:
•show ntp associations [detail]
•show ntp status
For detailed information about the fields in these displays, refer to the Cisco IOS Configuration Fundamentals Command Reference for Release 12.1.
Configuring Time and Date Manually
If no other source of time is available, you can manually configure the time and date after the system is restarted. The time remains accurate until the next system restart. We recommend that you use manual configuration only as a last resort. If you have an outside source to which the switch can synchronize, you do not need to manually set the system clock.
Note You must reset this setting if you have manually set the system clock and the stack master fails and different stack member resumes the role of stack master.
This section contains this configuration information:
•Setting the System Clock
•Displaying the Time and Date Configuration
•Configuring the Time Zone
•Configuring Summer Time (Daylight Saving Time)
Setting the System Clock
If you have an outside source on the network that provides time services, such as an NTP server, you do not need to manually set the system clock.
Beginning in privileged EXEC mode, follow these steps to set the system clock:
|
|
|
Step 1 |
clock set hh:mm:ss day month year or clock set hh:mm:ss month day year |
Manually set the system clock using one of these formats. •For hh:mm:ss, specify the time in hours (24-hour format), minutes, and seconds. The time specified is relative to the configured time zone. •For day, specify the day by date in the month. •For month, specify the month by name. •For year, specify the year (no abbreviation). |
Step 2 |
show running-config |
Verify your entries. |
Step 3 |
copy running-config startup-config |
(Optional) Save your entries in the configuration file. |
This example shows how to manually set the system clock to 1:32 p.m. on July 23, 2001:
Switch# clock set 13:32:00 23 July 2001
Displaying the Time and Date Configuration
To display the time and date configuration, use the show clock [detail] privileged EXEC command.
The system clock keeps an authoritative flag that shows whether the time is authoritative (believed to be accurate). If the system clock has been set by a timing source such as NTP, the flag is set. If the time is not authoritative, it is used only for display purposes. Until the clock is authoritative and the authoritative flag is set, the flag prevents peers from synchronizing to the clock when the peers' time is invalid.
The symbol that precedes the show clock display has this meaning:
•*—Time is not authoritative.
•(blank)—Time is authoritative.
•.—Time is authoritative, but NTP is not synchronized.
Configuring the Time Zone
Beginning in privileged EXEC mode, follow these steps to manually configure the time zone:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
clock timezone zone hours-offset [minutes-offset] |
Set the time zone. The switch keeps internal time in universal time coordinated (UTC), so this command is used only for display purposes and when the time is manually set. •For zone, enter the name of the time zone to be displayed when standard time is in effect. The default is UTC. •For hours-offset, enter the hours offset from UTC. •(Optional) For minutes-offset, enter the minutes offset from UTC. |
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. |
The minutes-offset variable in the clock timezone global configuration command is available for those cases where a local time zone is a percentage of an hour different from UTC. For example, the time zone for some sections of Atlantic Canada (AST) is UTC-3.5, where the 3 means 3 hours and .5 means 50 percent. In this case, the necessary command is clock timezone AST -3 30.
To set the time to UTC, use the no clock timezone global configuration command.
Configuring Summer Time (Daylight Saving Time)
Beginning in privileged EXEC mode, follow these steps to configure summer time (daylight saving time) in areas where it starts and ends on a particular day of the week each year:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
clock summer-time zone recurring [week day month hh:mm week day month hh:mm [offset]] |
Configure summer time to start and end on the specified days every year. Summer time is disabled by default. If you specify clock summer-time zone recurring without parameters, the summer time rules default to the United States rules. •For zone, specify the name of the time zone (for example, PDT) to be displayed when summer time is in effect. •(Optional) For week, specify the week of the month (1 to 5 or last). •(Optional) For day, specify the day of the week (Sunday, Monday...). •(Optional) For month, specify the month (January, February...). •(Optional) For hh:mm, specify the time (24-hour format) in hours and minutes. •(Optional) For offset, specify the number of minutes to add during summer time. The default is 60. |
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. |
The first part of the clock summer-time global configuration command specifies when summer time begins, and the second part specifies when it ends. All times are relative to the local time zone. The start time is relative to standard time. The end time is relative to summer time. If the starting month is after the ending month, the system assumes that you are in the southern hemisphere.
This example shows how to specify that summer time starts on the first Sunday in April at 02:00 and ends on the last Sunday in October at 02:00:
Switch(config)# clock summer-time PDT recurring 1 Sunday April 2:00 last Sunday October
2:00
Beginning in privileged EXEC mode, follow these steps if summer time in your area does not follow a recurring pattern (configure the exact date and time of the next summer time events):
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
clock summer-time zone date [month date year hh:mm month date year hh:mm [offset]] or clock summer-time zone date [date month year hh:mm date month year hh:mm [offset]] |
Configure summer time to start on the first date and end on the second date. Summer time is disabled by default. •For zone, specify the name of the time zone (for example, PDT) to be displayed when summer time is in effect. •(Optional) For week, specify the week of the month (1 to 5 or last). •(Optional) For day, specify the day of the week (Sunday, Monday...). •(Optional) For month, specify the month (January, February...). •(Optional) For hh:mm, specify the time (24-hour format) in hours and minutes. •(Optional) For offset, specify the number of minutes to add during summer time. The default is 60. |
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. |
The first part of the clock summer-time global configuration command specifies when summer time begins, and the second part specifies when it ends. All times are relative to the local time zone. The start time is relative to standard time. The end time is relative to summer time. If the starting month is after the ending month, the system assumes that you are in the southern hemisphere.
To disable summer time, use the no clock summer-time global configuration command.
This example shows how to set summer time to start on October 12, 2000, at 02:00, and end on April 26, 2001, at 02:00:
Switch(config)# clock summer-time pdt date 12 October 2000 2:00 26 April 2001 2:00
Configuring a System Name and Prompt
You configure the system name on the switch to identify it. By default, the system name and prompt are Switch.
If you have not configured a system prompt, the first 20 characters of the system name are used as the system prompt. A greater-than symbol [>] is appended. The prompt is updated whenever the system name changes, unless you manually configure the prompt by using the prompt global configuration command.
If you are accessing a stack member through the stack master, you must use the session stack-member-number privileged EXEC command. The stack member number range is from 1 through 9. When you use this command, the stack member number is appended to the system prompt. For example, Switch-2#
is the prompt in privileged EXEC mode for stack member 2, and the system prompt for the switch stack is Switch
.
Note For complete syntax and usage information for the commands used in this section, refer to the Cisco IOS Configuration Fundamentals Command Reference and the Cisco IOS IP and IP Routing Command Reference for Release 12.1.
This section contains this configuration information:
•Default System Name and Prompt Configuration
•Configuring a System Name
•Configuring a System Prompt
•Understanding DNS
Default System Name and Prompt Configuration
The default switch system name and prompt is Switch.
Configuring a System Name
Beginning in privileged EXEC mode, follow these steps to manually configure a system name:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
hostname name |
Manually configure a system name. The default setting is switch. The name must follow the rules for ARPANET host names. They must start with a letter, end with a letter or digit, and have as interior characters only letters, digits, and hyphens. Names can be up to 63 characters. |
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. |
When you set the system name, it is also used as the system prompt. You can override the prompt setting by using the prompt global configuration command.
To return to the default hostname, use the no hostname global configuration command.
Configuring a System Prompt
Beginning in privileged EXEC mode, follow these steps to manually configure a system prompt:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
prompt string |
Configure the command-line prompt to override the setting from the hostname command. The default prompt is either switch or the name defined with the hostname global configuration command, followed by an angle bracket (>) for user EXEC mode or a pound sign (#) for privileged EXEC mode. The prompt can consist of all printing characters and escape sequences. |
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. |
To return to the default prompt, use the no prompt [string] global configuration command.
Understanding DNS
The DNS protocol controls the Domain Name System (DNS), a distributed database with which you can map host names to IP addresses. When you configure DNS on your switch, you can substitute the host name for the IP address with all IP commands, such as ping, telnet, connect, and related Telnet support operations.
IP defines a hierarchical naming scheme that allows a device to be identified by its location or domain. Domain names are pieced together with periods (.) as the delimiting characters. For example, Cisco Systems is a commercial organization that IP identifies by a com domain name, so its domain name is cisco.com. A specific device in this domain, for example, the File Transfer Protocol (FTP) system is identified as ftp.cisco.com.
To keep track of domain names, IP has defined the concept of a domain name server, which holds a cache (or database) of names mapped to IP addresses. To map domain names to IP addresses, you must first identify the host names, specify the name server that is present on your network, and enable the DNS.
This section contains this configuration information:
•Default DNS Configuration
•Setting Up DNS
•Displaying the DNS Configuration
Default DNS Configuration
Table 7-3 shows the default DNS configuration.
Table 7-3 Default DNS Configuration
|
|
DNS enable state |
Enabled. |
DNS default domain name |
None configured. |
DNS servers |
No name server addresses are configured. |
Setting Up DNS
Beginning in privileged EXEC mode, follow these steps to set up your switch to use the DNS:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
ip domain-name name |
Define a default domain name that the software uses to complete unqualified host names (names without a dotted-decimal domain name). Do not include the initial period that separates an unqualified name from the domain name. At boot time, no domain name is configured; however, if the switch configuration comes from a BOOTP or Dynamic Host Configuration Protocol (DHCP) server, then the default domain name might be set by the BOOTP or DHCP server (if the servers were configured with this information). |
Step 3 |
ip name-server server-address1 [server-address2 ... server-address6] |
Specify the address of one or more name servers to use for name and address resolution. You can specify up to six name servers. Separate each server address with a space. The first server specified is the primary server. The switch sends DNS queries to the primary server first. If that query fails, the backup servers are queried. |
Step 4 |
ip domain-lookup |
(Optional) Enable DNS-based host name-to-address translation on your switch. This feature is enabled by default. If your network devices require connectivity with devices in networks for which you do not control name assignment, you can dynamically assign device names that uniquely identify your devices by using the global Internet naming scheme (DNS). |
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. |
If you use the switch IP address as its hostname, the IP address is used and no DNS query occurs. If you configure a hostname that contains no periods (.), a period followed by the default domain name is appended to the hostname before the DNS query is made to map the name to an IP address. The default domain name is the value set by the ip domain-name global configuration command. If there is a period (.) in the hostname, the IOS software looks up the IP address without appending any default domain name to the hostname.
To remove a domain name, use the no ip domain-name name global configuration command. To remove a name server address, use the no ip name-server server-address global configuration command. To disable DNS on the switch, use the no ip domain-lookup global configuration command.
Displaying the DNS Configuration
To display the DNS configuration information, use the show running-config privileged EXEC command.
Creating a Banner
You can configure a message-of-the-day (MOTD) and a login banner. The MOTD banner displays on all connected terminals at login and is useful for sending messages that affect all network users (such as impending system shutdowns).
The login banner also displays on all connected terminals. It is displayed after the MOTD banner and before the login prompts.
Note For complete syntax and usage information for the commands used in this section, refer to the Cisco IOS Configuration Fundamentals Command Reference for Release 12.1.
This section contains this configuration information:
•Default Banner Configuration
•Configuring a Message-of-the-Day Login Banner
•Configuring a Login Banner
Default Banner Configuration
The MOTD and login banners are not configured.
Configuring a Message-of-the-Day Login Banner
You can create a single or multiline message banner that appears on the screen when someone logs in to the switch.
Beginning in privileged EXEC mode, follow these steps to configure a MOTD login banner:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
banner motd c message c |
Specify the message of the day. For c, enter the delimiting character of your choice, for example, a pound sign (#), and press the Return key. The delimiting character signifies the beginning and end of the banner text. Characters after the ending delimiter are discarded. For message, enter a banner message up to 255 characters. You cannot use the delimiting character in the message. |
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. |
To delete the MOTD banner, use the no banner motd global configuration command.
This example shows how to configure a MOTD banner for the switch by using the pound sign (#) symbol as the beginning and ending delimiter:
Switch(config)# banner motd #
This is a secure site. Only authorized users are allowed.
For access, contact technical support.
This example shows the banner displayed from the previous configuration:
Escape character is '^]'.
This is a secure site. Only authorized users are allowed.
For access, contact technical support.
Configuring a Login Banner
You can configure a login banner to be displayed on all connected terminals. This banner appears after the MOTD banner and before the login prompt.
Beginning in privileged EXEC mode, follow these steps to configure a login banner:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
banner login c message c |
Specify the login message. For c, enter the delimiting character of your choice, for example, a pound sign (#), and press the Return key. The delimiting character signifies the beginning and end of the banner text. Characters after the ending delimiter are discarded. For message, enter a login message up to 255 characters. You cannot use the delimiting character in the message. |
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. |
To delete the login banner, use the no banner login global configuration command.
This example shows how to configure a login banner for the switch by using the dollar sign ($) symbol as the beginning and ending delimiter:
Switch(config)# banner login $
Access for authorized users only. Please enter your username and password.
Managing the MAC Address Table
The MAC address table contains address information that the switch uses to forward traffic between ports. All MAC addresses in the address table are associated with one or more ports. The address table includes these types of addresses:
•Dynamic address: a source MAC address that the switch learns and then ages when it is not in use.
•Static address: a manually entered unicast address that does not age and that is not lost when the switch resets.
The address table lists the destination MAC address, the associated VLAN ID, and port number associated with the address and the type (static or dynamic).
Note For complete syntax and usage information for the commands used in this section, refer to the command reference for this release.
This section contains this configuration information:
•Building the Address Table
•MAC Addresses and VLANs
•MAC Addresses and Switch Stacks
•Default MAC Address Table Configuration
•Changing the Address Aging Time
•Removing Dynamic Address Entries
•Configuring MAC Address Notification Traps
•Adding and Removing Static Address Entries
•Displaying Address Table Entries
Building the Address Table
With multiple MAC addresses supported on all ports, you can connect any port on the switch to individual workstations, repeaters, switches, routers, or other network devices. The switch provides dynamic addressing by learning the source address of packets it receives on each port and adding the address and its associated port number to the address table. As stations are added or removed from the network, the switch updates the address table, adding new dynamic addresses and aging out those that are not in use.
The aging interval is globally configured on a standalone switch or on the switch stack. However, the switch maintains an address table for each VLAN, and STP can accelerate the aging interval on a per-VLAN basis.
The switch sends packets between any combination of ports, based on the destination address of the received packet. Using the MAC address table, the switch forwards the packet only to the port associated with the destination address. If the destination address is on the port that sent the packet, the packet is filtered and not forwarded. The switch always uses the store-and-forward method: complete packets are stored and checked for errors before transmission.
MAC Addresses and VLANs
All addresses are associated with a VLAN. An address can exist in more than one VLAN and have different destinations in each. Unicast addresses, for example, could forward to port 1 in VLAN 1 and port 9 in VLAN 5.
Note Multiport static addresses are not supported.
Each VLAN maintains its own logical address table. A known address in one VLAN is unknown in another until it is learned or statically associated with a port in the other VLAN.
MAC Addresses and Switch Stacks
The MAC address tables on all stack members are synchronized. At any given time, each stack member has the same copy of the address tables for each VLAN. When an address ages out, the address is removed from the address tables on all stack members. When a switch joins a switch stack, that switch receives the addresses for each VLAN learned on the other stack members. When a stack member leaves the switch stack, the remaining stack members age out or remove all addresses learned by the former stack member.
Default MAC Address Table Configuration
Table 7-4 shows the default MAC address table configuration.
Table 7-4 Default MAC Address Table Configuration
|
|
Aging time |
300 seconds |
Dynamic addresses |
Automatically learned |
Static addresses |
None configured |
Changing the Address Aging Time
Dynamic addresses are source MAC addresses that the switch learns and then ages when they are not in use. You can change the aging time setting for all VLANs or for a specified VLAN.
Setting too short an aging time can cause addresses to be prematurely removed from the table. Then when the switch receives a packet for an unknown destination, it floods the packet to all ports in the same VLAN as the receiving port. This unnecessary flooding can impact performance. Setting too long an aging time can cause the address table to be filled with unused addresses, which prevents new addresses from being learned. Flooding results, which can impact switch performance.
Beginning in privileged EXEC mode, follow these steps to configure the dynamic address table aging time:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
mac-address-table aging-time [0 | 10-1000000] [vlan vlan-id] |
Set the length of time that a dynamic entry remains in the MAC address table after the entry is used or updated. The range is 10 to 1000000 seconds. The default is 300. You can also enter 0, which disables aging. Static address entries are never aged or removed from the table. For vlan-id, valid IDs are 1 to 4094. Do not enter leading zeros. |
Step 3 |
end |
Return to privileged EXEC mode. |
Step 4 |
show mac-address-table aging-time |
Verify your entries. |
Step 5 |
copy running-config startup-config |
(Optional) Save your entries in the configuration file. |
To return to the default value, use the no mac-address-table aging-time global configuration command.
Removing Dynamic Address Entries
To remove all dynamic entries, use the clear mac-address-table dynamic command in privileged EXEC mode. You can also remove a specific MAC address (clear mac-address-table dynamic address mac-address), remove all addresses on the specified physical port or port channel (clear mac-address-table dynamic interface interface-id), or remove all addresses on a specified VLAN (clear mac-address-table dynamic vlan vlan-id).
To verify that dynamic entries have been removed, use the show mac-address-table dynamic privileged EXEC command.
Configuring MAC Address Notification Traps
MAC address notification enables you to track users on a network by storing the MAC address activity on the switch. Whenever the switch learns or removes a MAC address, an SNMP notification can be generated and sent to the NMS. If you have many users coming and going from the network, you can set a trap interval time to bundle the notification traps and reduce network traffic. The MAC notification history table stores the MAC address activity for each hardware port for which the trap is enabled. MAC address notifications are generated for dynamic and secure MAC addresses; events are not generated for self addresses, multicast addresses, or other static addresses.
Beginning in privileged EXEC mode, follow these steps to configure the switch to send MAC address notification traps to an NMS host:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
snmp-server host host-addr {traps | informs} {version {1 | 2c | 3}} community-string notification-type |
Specify the recipient of the trap message. •For host-addr, specify the name or address of the NMS. •Specify traps (the default) to send SNMP traps to the host. Specify informs to send SNMP informs to the host. •Specify the SNMP version to support. Version 1, the default, is not available with informs. •For community-string, specify the string to send with the notification operation. Though you can set this string by using the snmp-server host command, we recommend that you define this string by using the snmp-server community command before using the snmp-server host command. •For notification-type, use the mac-notification keyword. |
Step 3 |
snmp-server enable traps mac-notification |
Enable the switch to send MAC address traps to the NMS. |
Step 4 |
mac-address-table notification |
Enable the MAC address notification feature. |
Step 5 |
mac-address-table notification [interval value] | [history-size value] |
Enter the trap interval time and the history table size. •(Optional) For interval value, specify the notification trap interval in seconds between each set of traps that are generated to the NMS. The range is 0 to 2147483647 seconds; the default is 1 second. •(Optional) For history-size value, specify the maximum number of entries in the MAC notification history table. The range is 0 to 500; the default is 1. |
Step 6 |
interface interface-id |
Enter interface configuration mode, and specify the interface on which to enable the SNMP MAC address notification trap. |
Step 7 |
snmp trap mac-notification {added | removed} |
Enable the MAC address notification trap. •Enable the MAC notification trap whenever a MAC address is added on this interface. •Enable the MAC notification trap whenever a MAC address is removed from this interface. |
Step 8 |
end |
Return to privileged EXEC mode. |
Step 9 |
show mac-address-table notification interface show running-config |
Verify your entries. |
Step 10 |
copy running-config startup-config |
(Optional) Save your entries in the configuration file. |
To disable the switch from sending MAC address notification traps, use the no snmp-server enable traps mac-notification global configuration command. To disable the MAC address notification traps on a specific interface, use the no snmp trap mac-notification {added | removed} interface configuration command. To disable the MAC address notification feature, use the no mac-address-table notification global configuration command.
This example shows how to specify 172.20.10.10 as the NMS, enable the switch to send MAC address notification traps to the NMS, enable the MAC address notification feature, set the interval time to 60 seconds, set the history-size to 100 entries, and enable traps whenever a MAC address is added on Fast Ethernet interface 1/0/4.
Switch(config)# snmp-server host 172.20.10.10 traps private
Switch(config)# snmp-server enable traps mac-notification
Switch(config)# mac-address-table notification
Switch(config)# mac-address-table notification interval 60
Switch(config)# mac-address-table notification history-size 100
Switch(config)# interface gigabitethernet1/0/4
Switch(config-if)# snmp trap mac-notification added
You can verify the previous commands by entering the show mac-address-table notification interface and the show mac-address-table notification privileged EXEC commands.
Adding and Removing Static Address Entries
A static address has these characteristics:
•It is manually entered in the address table and must be manually removed.
•It can be a unicast address.
•It does not age and is retained when the switch restarts.
You can add and remove static addresses and define the forwarding behavior for them. The forwarding behavior determines how a port that receives a packet forwards it to another port for transmission. Because all ports are associated with at least one VLAN, the switch acquires the VLAN ID for the address from the ports that you specify.
A packet with a static address that arrives on a VLAN where it has not been statically entered is flooded to all ports and not learned.
You add a static address to the address table by specifying the destination MAC unicast address and the VLAN from which it is received. Packets received with this destination address are forwarded to the interface specified with the interface-id option.
Beginning in privileged EXEC mode, follow these steps to add a static address:
|
|
|
Step 1 |
configure terminal |
Enter global configuration mode. |
Step 2 |
mac-address-table static mac-addr vlan vlan-id interface interface-id |
Add a static address to the MAC address table. •For mac-addr, specify the destination MAC unicast address to add to the address table. Packets with this destination address received in the specified VLAN are forwarded to the specified interface. •For vlan-id, specify the VLAN for which the packet with the specified MAC address is received. Valid VLAN IDs are 1 to 4094; do not enter leading zeros. •For interface-id..., specify the interface to which the received packet is forwarded. Valid interfaces include physical ports. |
Step 3 |
end |
Return to privileged EXEC mode. |
Step 4 |
show mac-address-table static |
Verify your entries. |
Step 5 |
copy running-config startup-config |
(Optional) Save your entries in the configuration file. |
To remove static entries from the address table, use the no mac-address-table static mac-addr vlan vlan-id interface interface-id global configuration command.
This example shows how to add the static address c2f3.220a.12f4 to the MAC address table. When a packet is received in VLAN 4 with this MAC address as its destination address, the packet is forwarded to the specified interface:
Switch(config)# mac-address-table static c2f3.220a.12f4 vlan 4 interface
gigabitethernet1/0/1
Displaying Address Table Entries
You can display the MAC address table by using one or more of the privileged EXEC commands described in Table 7-5:
Table 7-5 Commands for Displaying the MAC Address Table
|
|
show mac-address-table address |
Displays MAC address table information for the specified MAC address. |
show mac-address-table aging-time |
Displays the aging time in all VLANs or the specified VLAN. |
show mac-address-table count |
Displays the number of addresses present in all VLANs or the specified VLAN. |
show mac-address-table dynamic |
Displays only dynamic MAC address table entries. |
show mac-address-table interface |
Displays the MAC address table information for the specified interface. |
show mac-address-table multicast |
Displays the Layer 2 multicast entries for all VLANs or the specified VLAN. |
show mac-address-table notification |
Displays the MAC notification parameters and history table. |
show mac-address-table static |
Displays only static MAC address table entries. |
show mac-address-table vlan |
Displays the MAC address table information for the specified VLAN. |