Select any two versions of this STIG to compare the individual requirements
Select any old version/release of this STIG to view the previous requirements
Note: This requirement is not applicable to file transfer actions such as FTP, SCP, and SFTP. Review the switch configuration to determine if concurrent management sessions are limited as show in the example below: ip http secure-server ip http max-connections 2 … … … For platforms that support the session-limit command: line vty 0 4 session-limit 2 transport input ssh For platforms that do not support the session-limit command, the sessions can also be limited by reducing the number of active vty lines as shown in the example below: line vty 0 1 transport input ssh line vty 2 4 transport input none If the switch is not configured to limit the number of concurrent management sessions, this is a finding.
Configure the switch to limit the number of concurrent management sessions to an organization-defined number as shown in the example below: SW4(config)#ip http max-connections 2 SW4(config)#line vty 0 1 SW4(config)#transport input ssh SW4(config)#line vty 2 4 SW4(config)#transport input none
Review the switch configuration to determine if it automatically audits account creation. The configuration should look similar to the example below: archive log config logging enable Note: Configuration changes can be viewed using the show archive log config all command. If account creation is not automatically audited, this is a finding.
Configure the switch to log account creation using the following commands: SW4(config)#archive SW4(config-archive)#log config SW4(config-archive-log-cfg)#logging enable SW4(config-archive-log-cfg)#end
Review the switch configuration to determine if it automatically audits account modification. The configuration should look similar to the example below: archive log config logging enable Note: Configuration changes can be viewed using the show archive log config all command. If account modification is not automatically audited, this is a finding.
Configure the switch to log account modification using the following commands: SW4(config)#archive SW4(config-archive)#log config SW4(config-archive-log-cfg)#logging enable SW4(config-archive-log-cfg)#end
Review the switch configuration to determine if it automatically audits account disabling. The configuration should look similar to the example below: archive log config logging enable Note: Configuration changes can be viewed using the show archive log config all command. If account disabling is not automatically audited, this is a finding.
Configure the switch to log account disabling using the following commands: SW4(config)#archive SW4(config-archive)#log config SW4(config-archive-log-cfg)#logging enable SW4(config-archive-log-cfg)#end
Review the switch configuration to determine if it automatically audits account removal. The configuration should look similar to the example below: archive log config logging enable Note: Configuration changes can be viewed using the show archive log config all command. If account removal is not automatically audited, this is a finding.
Configure the switch to log account removal using the following commands: SW4(config)#archive SW4(config-archive)#log config SW4(config-archive-log-cfg)#logging enable SW4(config-archive-log-cfg)#end
Review the Cisco switch configuration to verify that administrative access to the switch is allowed only from hosts residing in the management network. Step 1: Verify that the line vty has an ACL inbound applied as shown in the example below: line vty 0 1 access-class MANAGEMENT_NET in transport input ssh Step 2: Verify that the ACL permits only hosts from the management network to access the switch. iip access-list extended MANAGEMENT_NET permit ip x.x.x.0 0.0.0.255 any deny ip any any log-input If the Cisco switch is not configured to enforce approved authorizations for controlling the flow of management information within the device based on control policies, this is a finding.
Configure the Cisco switch to restrict management access to specific IP addresses via SSH as shown in the example below: SW2(config)#ip access-list extended MANAGEMENT_NET SW2(config-std-nacl)#permit x.x.x.0 0.0.0.255 SW2(config-std-nacl)#exit SW2(config)#line vty 0 1 SW2(config-line)#transport input ssh SW2(config-line)#access-class MANAGEMENT_NET in SW2(config-line)#end
Review the Cisco switch configuration to verify that it enforces the limit of three consecutive invalid logon attempts as shown in the example below: login block-for 900 attempts 3 within 120 Note: The configuration example above will block any logon attempt for 15 minutes after three consecutive invalid logon attempts within a two-minute period. If the Cisco switch is not configured to enforce the limit of three consecutive invalid logon attempts, this is a finding.
Configure the Cisco switch to enforce the limit of three consecutive invalid logon attempts as shown in the example below: SW2(config)#login block-for 900 attempts 3 within 120
Review the Cisco switch configuration to verify that it displays the Standard Mandatory DoD Notice and Consent Banner before granting access to the device as shown in the example below: banner login ^C You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: -The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. -At any time, the USG may inspect and seize data stored on this IS. -Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. -This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details. ^C If the Cisco switch is not configured to display the Standard Mandatory DoD Notice and Consent Banner before granting access to the device, this is a finding.
Configure the Cisco switch to display the Standard Mandatory DoD Notice and Consent Banner before granting access as shown in the following example: SW1(config)#banner login # Enter TEXT message. End with the character '#'. You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: -The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. -At any time, the USG may inspect and seize data stored on this IS. -Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. -This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details. # SW1(config)#end
Review the Cisco switch configuration to verify that it logs administrator activity as shown in the example below: hostname R1 ! logging userinfo ! … … … archive log config logging enable ! Note: The logging userinfo global configuration command will generate a log when a user increases his or her privilege level. If logging of administrator activity is not configured, this is a finding.
Configure the switch to log administrator activity as shown in the example below: SW1(config)#logging userinfo SW1(config)#archive SW1(config-archive)#log config SW1(config-archive-log-cfg)#logging enable SW1(config-archive-log-cfg)#end
Verify that the switch is configured to include the date and time on all log records as shown in the configuration example below: service timestamps log datetime localtime If time stamps are not configured, this is a finding.
Configure the switch to include the date and time on all log records as shown in the example below: SW1(config)#service timestamps log datetime localtime
Review the deny statements in all interface ACLs to determine if the log-input parameter has been configured as shown in the example below. Note: log-input can only apply to interface bound ACLs. ip access-list extended BLOCK_INBOUND deny icmp any any log-input If the switch is not configured with the log-input parameter after any deny statements to note where packets have been dropped via an ACL, this is a finding.
Configure the log-input parameter after any deny statements to provide the location as to where packets have been dropped via an ACL: SW1(config)#ip access-list extended BLOCK_INBOUND SW1(config-ext-nacl)#deny icmp any any log-input
Review the Cisco switch configuration to verify that it generates audit records of configuration changes. The configuration example below will log all configuration changes: archive log config logging enable Note: Configuration changes can be viewed using the show archive log config all command. If the Cisco switch is not configured to generate audit records of configuration changes, this is a finding.
Configure the Cisco switch to log all configuration changes as shown in the example below: SW4(config)#archive SW4(config-archive)#log config SW4(config-archive-log-cfg)#logging enable SW4(config-archive-log-cfg)#end
Review the Cisco switch configuration to verify that it is configured to protect audit information. Step 1: If persistent logging is enabled as shown in the example below, go to Step 2. Otherwise, this requirement is not applicable. logging persistent url disk0:/logfile size 134217728 filesize 16384 Step 2: Verify that the switch is not configured with a privilege level other than "15" to allow access to the file system as shown in the example below: file privilege 10 Note: The default privilege level required for access to the file system is "15"; hence, the command file privilege "15" will not be shown in the configuration. If the switch is configured with a privilege level other than "15" to allow access to the file system, this is a finding.
If persistent logging is enabled, configure the switch to only allow administrators with privilege level "15" access to the file system as shown in the example below: SW4(config)#file privilege 15
Review the Cisco switch configuration to verify that it protects audit information from unauthorized deletion. Step 1: If persistent logging is enabled as shown in the example below, go to Step 2. Otherwise, this requirement is not applicable. logging persistent url disk0:/logfile size 134217728 filesize 16384 Step 2: Verify that the switch is not configured with a privilege level other than "15" to allow access to the file system as shown in the example below: file privilege 10 Note: The default privilege level required for access to the file system is "15"; hence, the command file privilege "15" will not be shown in the configuration. If the switch is configured with a privilege level other than "15" to allow access to the file system, this is a finding.
If persistent logging is enabled, configure the switch to only allow administrators with privilege level "15" access to the file system as shown in the example below: SW4(config)#file privilege 15
Review the Cisco switch configuration to verify that it limits software change privileges. Step 1: If persistent logging is enabled as shown in the example below, go to Step 2. Otherwise, this requirement is not applicable. logging persistent url disk0:/logfile size 134217728 filesize 16384 Step 2: Verify that the switch is not configured with a privilege level other than "15" to allow access to the file system as shown in the example below: file privilege 10 Note: The default privilege level required for access to the file system is "15"; hence, the command file privilege "15" will not be shown in the configuration. If the switch is configured with a privilege level other than "15" to allow access to the file system, this is a finding.
If persistent logging is enabled, configure the switch to only allow administrators with privilege level "15" access to the file system as shown in the example below: SW4(config)#file privilege 15
Verify that the switch does not have any unnecessary or nonsecure ports, protocols, and services enabled. For example, the following commands should not be in the configuration: boot network ip boot server ip bootp server ip dns server ip identd ip finger ip http server ip rcmd rcp-enable ip rcmd rsh-enable service config service finger service tcp-small-servers service udp-small-servers service pad service call-home Note: Certain legacy devices may require 'service call-home' be enabled to support Smart Licensing as they do not support the newer smart transport configuration. Those devices do not incur a finding for having call-home enabled for Smart Licensing. If any unnecessary or nonsecure ports, protocols, or services are enabled, this is a finding.
Disable the following services if enabled as shown in the example below: SW2(config)#no boot network SW2(config)#no ip boot server SW2(config)#no ip bootp server SW2(config)#no ip dns server SW2(config)#no ip identd SW2(config)#no ip finger SW2(config)#no ip http server SW2(config)#no ip rcmd rcp-enable SW2(config)#no ip rcmd rsh-enable SW2(config)#no service config SW2(config)#no service finger SW2(config)#no service tcp-small-servers SW2(config)#no service udp-small-servers SW2(config)#no service pad SW2(config)#no service call-home SW2(config)#end
Step 1: Review the Cisco switch configuration to verify that a local account for last resort has been configured with a privilege level that will enable the administrator to troubleshoot connectivity to the authentication server. username xxxxxxxxxxx privilege 10 common-criteria-policy PASSWORD_POLICY password xxxxxxxxxx Note: The configured Common Criteria policy must be used when creating or changing the local account password as shown in the example above. Step 2: Verify that local is defined after radius or tacacs+ in the authentication order as shown in the example below: aaa authentication login default group tacacs+ local If the Cisco switch is not configured with only one local account to be used as the account of last resort in the event the authentication server is unavailable, this is a finding.
Step 1: Configure a local account with the necessary privilege level to troubleshoot network outage and restore operations as shown in the following example: SW2(config)#username xxxxxxxxxxx privilege 10 common-criteria-policy PASSWORD_POLICY password xxxxxxxxxx Step 2: Configure the authentication order to use the local account if the authentication server is not reachable as shown in the following example: SW2(config)#aaa authentication login default group tacacs+ local
Review the Cisco switch configuration to verify that it enforces a minimum 15-character password length as shown in the example below: aaa new-model ! ! aaa common-criteria policy PASSWORD_POLICY min-length 15 If the Cisco switch is not configured to enforce a minimum 15-character password length, this is a finding.
Configure the Cisco switch to enforce a minimum 15-character password length as shown in the example below: SW1(config)#aaa common-criteria policy PASSWORD_POLICY SW1(config-cc-policy)#min-length 15 SW1(config-cc-policy)#exit
Review the Cisco switch configuration to verify that it requires the use of at least one uppercase character as shown in the example below: aaa new-model ! ! aaa common-criteria policy PASSWORD_POLICY upper-case 1 If the Cisco switch is not configured to enforce password complexity by requiring that at least one uppercase character be used, this is a finding.
Configure the Cisco switch to enforce password complexity by requiring that at least one uppercase character be used as shown in the example below: SW1(config)#aaa common-criteria policy PASSWORD_POLICY SW1(config-cc-policy)#upper-case 1 SW1(config-cc-policy)#exit
Review the Cisco switch configuration to verify that it requires the use of at least one lowercase character as shown in the example below: aaa new-model ! ! aaa common-criteria policy PASSWORD_POLICY lower-case 1 If the Cisco switch is not configured to enforce password complexity by requiring that at least one lowercase character be used, this is a finding.
Configure the Cisco switch to enforce password complexity by requiring that at least one lowercase character be used as shown in the example below: SW1(config)#aaa common-criteria policy PASSWORD_POLICY SW1(config-cc-policy)#lower-case 1 SW1(config-cc-policy)#exit
Review the Cisco switch configuration to verify that it requires the use of at least one numeric character as shown in the example below: aaa new-model ! ! aaa common-criteria policy PASSWORD_POLICY numeric-count 1 If the Cisco switch is not configured to enforce password complexity by requiring that at least one numeric character be used, this is a finding.
Configure the Cisco switch to enforce password complexity by requiring that at least one numeric character be used as shown in the example below: SW1(config)#aaa common-criteria policy PASSWORD_POLICY SW1(config-cc-policy)#numeric-count 1 SW1(config-cc-policy)#exit
Review the Cisco switch configuration to verify that it requires the use of at least one special character as shown in the example below: aaa new-model ! ! aaa common-criteria policy PASSWORD_POLICY special-case 1 If the Cisco switch is not configured to enforce password complexity by requiring that at least one special character be used, this is a finding.
Configure the Cisco switch to enforce password complexity by requiring that at least one special character be used as shown in the example below: SW1(config)#aaa common-criteria policy PASSWORD_POLICY SW1(config-cc-policy)#special-case 1 SW1(config-cc-policy)#exit
Review the Cisco switch configuration to verify that, when a password is changed, it requires the characters to be changed in at least eight of the positions as shown in the example below: aaa new-model ! ! aaa common-criteria policy PASSWORD_POLICY char-changes 8 If the Cisco switch is not configured to require that when a password is changed, the characters are changed in at least eight of the positions within the password, this is a finding.
Configure the Cisco switch to enforce password complexity by requiring that when a password is changed, the characters are changed in at least eight of the positions within the password as shown in the example below: SW1(config)#aaa common-criteria policy PASSWORD_POLICY SW1(config-cc-policy)#char-changes 8 SW1(config-cc-policy)#exit
Review the switch configuration to determine if passwords are encrypted as shown in the example below: service password-encryption … … … Enable secret 5 xxxxxxxxxxxxxxxxxxxxxxxxxx If the switch is not configured to encrypt passwords, this is a finding.
Configure the switch to encrypt all passwords: SW4(config)#service password-encryption SW4(config)#enable secret xxxxxxxxxxxx SW4(config)#end
Review the Cisco switch configuration to verify that all network connections associated with a device management have an idle timeout value set to five minutes or less as shown in the example below: ip http secure-server ip http timeout-policy idle 300 life nnnn requests nn … … … line con 0 exec-timeout 5 0 line vty 0 1 exec-timeout 5 0 If the Cisco switch is not configured to terminate all network connections associated with a device management after five minutes of inactivity, this is a finding.
Set the idle timeout value to five minutes or less on all configured login classes as shown in the example below: SW1(config)#line vty 0 1 SW1(config-line)#exec-timeout 5 0 SW1(config-line)#exit SW1(config)#line con 0 SW1(config-line)#exec-timeout 5 0 SW1(config-line)#exit SW2(config)#ip http timeout-policy idle 300 life nnnn requests nn
Review the switch configuration to determine if it automatically audits account enabling. The configuration should look similar to the example below: archive log config logging enable Note: Configuration changes can be viewed using the show archive log config all command. If account enabling is not automatically audited, this is a finding.
Configure the switch to log account enabling using the following commands: SW4(config)#archive SW4(config-archive)#log config SW4(config-archive-log-cfg)#logging enable SW4(config-archive-log-cfg)#end
Verify that the Cisco switch is configured with a logging buffer size. The configuration should look like the example below: logging buffered xxxxxxxx informational If a logging buffer size is not configured, this is a finding. If the Cisco switch is not configured to allocate audit record storage capacity in accordance with organization-defined audit record storage requirements, this is a finding.
Configure the buffer size for logging as shown in the example below: SW2(config)#logging buffered xxxxxxxx informational
Review the Cisco switch configuration to verify that it generates an alert for all audit failure events as shown in the example below: logging trap critical Note: The parameter "critical" can replaced with a lesser severity level (i.e., error, warning, notice, informational). Informational is the default severity level; hence, if the severity level is configured to informational, the logging trap command will not be shown in the configuration. If the Cisco switch is not configured to generate an alert for all audit failure events, this is a finding.
Configure the Cisco switch to send critical to emergency log messages to the syslog server as shown in the example below: SW4(config)#logging trap critical Note: The parameter "critical" can replaced with a lesser severity level (i.e., error, warning, notice, informational).
Review the Cisco switch configuration to verify that it synchronizes its clock with redundant authoritative time sources as shown in the example below: ntp server x.x.x.x ntp server y.y.y.y If the Cisco switch is not configured to synchronize its clock with redundant authoritative time sources, this is a finding.
Configure the Cisco switch to synchronize its clock with redundant authoritative time sources as shown in the example below: SW2(config)#ntp server x.x.x.x SW2(config)#ntp server y.y.y.y
Review the Cisco switch configuration to verify that it authenticates SNMP messages using a FIPS-validated HMAC as shown in the example below: snmp-server group V3GROUP v3 auth read V3READ write V3WRITE snmp-server view V3READ iso included snmp-server view V3WRITE iso included snmp-server host x.x.x.x version 3 auth V3USER Authentication used by the SNMP users can be viewed via the show snmp user command as shown in the example below: R4#show snmp user User name: V3USER Engine ID: 800000090300C2042B540000 storage-type: nonvolatile active Authentication Protocol: SHA Privacy Protocol: None Group-name: V3GROUP If the Cisco switch is not configured to authenticate SNMP messages using a FIPS-validated HMAC, this is a finding.
Configure the Cisco switch to authenticate SNMP messages as shown in the example below: SW4(config)#snmp-server group V3GROUP v3 auth read V3READ write V3WRITE SW4(config)#snmp-server user V3USER V3GROUP v3 auth sha xxxxxxx SW4(config)#snmp-server view V3READ iso included SW4(config)#snmp-server view V3WRITE iso included SW4(config)#snmp-server host x.x.x.x version 3 auth V3USER
Review the Cisco switch configuration to verify that it encrypts SNMP messages using a FIPS 140-2 approved algorithm as shown in the example below: snmp-server group V3GROUP v3 priv read V3READ write V3WRITE snmp-server view V3READ iso included snmp-server view V3WRITE iso included snmp-server host x.x.x.x version 3 auth V3USER Encryption used by the SNMP users can be viewed via the show snmp user command as shown in the example below: R4#show snmp user User name: V3USER Engine ID: 800000090300C2042B540000 storage-type: nonvolatile active Authentication Protocol: SHA Privacy Protocol: AES256 Group-name: V3GROUP If the Cisco switch is not configured to encrypt SNMP messages using a FIPS 140-2 approved algorithm, this is a finding.
Configure the Cisco switch to encrypt SNMP messages using a FIPS 140-2 approved algorithm as shown in the example below: SW4(config)#snmp-server group V3GROUP v3 priv read V3READ write V3WRITE SW4(config)#snmp-server user V3USER V3GROUP v3 auth sha xxxxxx priv aes 256 xxxxxx
Review the Cisco switch configuration to verify that it authenticates NTP sources using cryptographically based authentication as shown in the configuration example below: ntp authentication-key 1 md5 121B0A151012 7 ntp authenticate ntp trusted-key 1 ntp server x.x.x.x key 1 ntp server y.y.y.y key 1 If the Cisco switch is not configured to authenticate NTP sources using authentication that is cryptographically based, this is a finding.
Configure the Cisco switch to authenticate NTP sources using authentication that is cryptographically based as shown in the example below: SW2(config)#ntp authenticate SW2(config)#ntp authentication-key 1 md5 xxxxxx SW2(config)#ntp trusted-key 1 SW2(config)#ntp server x.x.x.x key 1 SW2(config)#ntp server y.y.y.y key 1
Review the Cisco switch configuration to verify that it uses FIPS-validated HMAC to protect the integrity of remote maintenance sessions as shown in the example below: NOTE: Although allowed by SP800-131Ar2 for some applications, SHA-1 is considered a compromised hashing standard and is being phased out of use by industry and Government standards. Unless required for legacy use, DoD systems should not be configured to use SHA-1 for integrity of remote access sessions. SSH Example ip ssh version 2 ip ssh server algorithm mac hmac-sha2-512 hmac-sha2-256 If the Cisco switch is not configured to use FIPS-validated HMAC to protect the integrity of remote maintenance sessions, this is a finding.
Configure SSH to use FIPS-validated HMAC for remote maintenance sessions as shown in the following example: SSH Example SW1(config)#ip ssh version 2 SW1(config)#iip ssh server algorithm mac hmac-sha2-512 hmac-sha2-256
Review the Cisco switch configuration to verify that it implements cryptographic mechanisms to protect the confidentiality of remote maintenance sessions using a FIPS 140-2 approved algorithm as shown in the example below: ip ssh version 2 ip ssh server algorithm encryption aes256-ctr aes192-ctr aes128-ctr If the switch is not configured to implement cryptographic mechanisms to protect the confidentiality of remote maintenance sessions using a FIPS 140-2 approved algorithm, this is a finding.
Configure the Cisco switch to implement cryptographic mechanisms to protect the confidentiality of remote maintenance sessions using a FIPS 140-2 approved algorithm as shown in the example below: SW1(config)#ip ssh server algorithm encryption aes256-ctr aes192-ctr aes128-ctr
Review the Cisco switch configuration to verify that it protects against known types of DoS attacks by employing organization-defined security safeguards. Note: Cisco IOS Version 15 and newer could use the command "mls qos copp protocol" to meet the intent of this requirement. This can be checked using command "show mls qos copp protocols". Step 1: Verify traffic types have been classified based on importance levels. The following is an example configuration: class-map match-all CoPP_CRITICAL match access-group name CoPP_CRITICAL class-map match-any CoPP_IMPORTANT match access-group name CoPP_IMPORTANT match protocol arp class-map match-all CoPP_NORMAL match access-group name CoPP_NORMAL class-map match-any CoPP_UNDESIRABLE match access-group name CoPP_UNDESIRABLE class-map match-all CoPP_DEFAULT match access-group name CoPP_DEFAULT Step 2: Review the access control lists (ACLs) referenced by the class-maps to determine if the traffic is being classified appropriately. The following is an example configuration: ip access-list extended CoPP_CRITICAL remark our control plane adjacencies are critical permit ospf host [OSPF neighbor A] any permit ospf host [OSPF neighbor B] any permit pim host [PIM neighbor A] any permit pim host [PIM neighbor B] any permit pim host [RP addr] any permit igmp any 224.0.0.0 15.255.255.255 permit tcp host [BGP neighbor] eq bgp host [local BGP addr] permit tcp host [BGP neighbor] host [local BGP addr] eq bgp deny ip any any ip access-list extended CoPP_IMPORTANT permit tcp host [TACACS server] eq tacacs any permit tcp [management subnet] 0.0.0.255 any eq 22 permit udp host [SNMP manager] any eq snmp permit udp host [NTP server] eq ntp any deny ip any any ip access-list extended CoPP_NORMAL remark we will want to rate limit ICMP traffic permit icmp any any echo permit icmp any any echo-reply permit icmp any any time-exceeded permit icmp any any unreachable deny ip any any ip access-list extended CoPP_UNDESIRABLE remark other management plane traffic that should not be received permit udp any any eq ntp permit udp any any eq snmp permit tcp any any eq 22 permit tcp any any eq 23 remark other control plane traffic not configured on switch permit eigrp any any permit udp any any eq rip deny ip any any ip access-list extended CoPP_DEFAULT permit ip any any Note: Explicitly defining undesirable traffic with ACL entries enables the network operator to collect statistics. Excessive Address Resolution Protocol (ARP) packets can potentially monopolize Route Processor resources, starving other important processes. Currently, ARP is the only Layer 2 protocol that can be specifically classified using the match protocol command. Step 3: Review the policy-map to determine if the traffic is being policed appropriately for each classification. The following is an example configuration: policy-map CONTROL_PLANE_POLICY class CoPP_CRITICAL police 512000 8000 conform-action transmit exceed-action transmit class CoPP_IMPORTANT police 256000 4000 conform-action transmit exceed-action drop class CoPP_NORMAL police 128000 2000 conform-action transmit exceed-action drop class CoPP_UNDESIRABLE police 8000 1000 conform-action drop exceed-action drop class CoPP_DEFAULT police 64000 1000 conform-action transmit exceed-action drop Step 4: Verify that the Control Plane Policing (CoPP) policy is enabled. The following is an example configuration: control-plane service-policy input CONTROL_PLANE_POLICY Note: Control Plane Protection (CPPr) can be used to filter as well as police control plane traffic destined to the RP. CPPr is very similar to CoPP and has the ability to filter and police traffic using finer granularity by dividing the aggregate control plane into three separate categories: 1) host, 2) transit, and 3) CEF-exception. Hence, a separate policy-map could be configured for each traffic category. If the Cisco switch is not configured to protect against known types of DoS attacks by employing organization-defined security safeguards, this is a finding.
Configure the Cisco switch to protect against known types of DoS attacks on the route processor. Implementing a CoPP policy as shown in the example below is a best practice method. Step 1: Configure ACL specific traffic types: SW1(config)#ip access-list extended CoPP_CRITICAL SW1(config-ext-nacl)#remark our control plane adjacencies are critical SW1(config-ext-nacl)#permit ospf host x.x.x.x any SW1(config-ext-nacl)#permit ospf host x.x.x.x any SW1(config-ext-nacl)#permit pim host x.x.x.x any SW1(config-ext-nacl)#permit pim host x.x.x.x any SW1(config-ext-nacl)#permit igmp any 224.0.0.0 15.255.255.255 SW1(config-ext-nacl)#permit tcp host x.x.x.x eq bgp host x.x.x.x SW1(config-ext-nacl)#deny ip any any SW1(config-ext-nacl)#exit SW1(config)#ip access-list extended CoPP_IMPORTANT SW1(config-ext-nacl)#permit tcp host x.x.x.x eq tacacs any SW1(config-ext-nacl)#permit tcp x.x.x.x 0.0.0.255 any eq 22 SW1(config-ext-nacl)#permit udp host x.x.x.x any eq snmp SW1(config-ext-nacl)#permit udp host x.x.x.x eq ntp any SW1(config-ext-nacl)#deny ip any any SW1(config-ext-nacl)#exit SW1(config)#ip access-list extended CoPP_NORMAL SW1(config-ext-nacl)#remark we will want to rate limit ICMP traffic SW1(config-ext-nacl)#permit icmp any any echo SW1(config-ext-nacl)#permit icmp any any echo-reply SW1(config-ext-nacl)#permit icmp any any time-exceeded SW1(config-ext-nacl)#permit icmp any any unreachable SW1(config-ext-nacl)#deny ip any any SW1(config-ext-nacl)#exit SW1(config)#ip access-list extended CoPP_UNDESIRABLE SW1(config-ext-nacl)#remark management plane traffic that should not be received SW1(config-ext-nacl)#permit udp any any eq ntp SW1(config-ext-nacl)#permit udp any any eq snmp SW1(config-ext-nacl)#permit tcp any any eq 22 SW1(config-ext-nacl)#permit tcp any any eq 23 SW1(config-ext-nacl)#remark control plane traffic not configured on switch SW1(config-ext-nacl)#permit eigrp any any SW1(config-ext-nacl)#permit udp any any eq rip SW1(config-ext-nacl)#deny ip any any SW1(config-ext-nacl)#exit SW1(config)#ip access-list extended CoPP_DEFAULT SW1(config-ext-nacl)#permit ip any any SW1(config-ext-nacl)#exit Step 2: Configure class-maps referencing each of the ACLs: SW1(config)#class-map match-all CoPP_CRITICAL SW1(config-cmap)#match access-group name CoPP_CRITICAL SW1(config-cmap)#class-map match-any CoPP_IMPORTANT SW1(config-cmap)#match access-group name CoPP_IMPORTANT SW1(config-cmap)#match protocol arp SW1(config-cmap)#class-map match-all CoPP_NORMAL SW1(config-cmap)#match access-group name CoPP_NORMAL SW1(config-cmap)#class-map match-any CoPP_UNDESIRABLE SW1(config-cmap)#match access-group name CoPP_UNDESIRABLE SW1(config-cmap)#class-map match-all CoPP_DEFAULT SW1(config-cmap)#match access-group name CoPP_DEFAULT SW1(config-cmap)#exit Step 3: Configure a policy-map referencing the configured class-maps and apply appropriate bandwidth allowance and policing attributes: SW1(config)#policy-map CONTROL_PLANE_POLICY SW1(config-pmap)#class CoPP_CRITICAL SW1(config-pmap-c)#police 512000 8000 conform-action transmit exceed-action transmit SW1(config-pmap-c-police)#class CoPP_IMPORTANT SW1(config-pmap-c)#police 256000 4000 conform-action transmit exceed-action drop SW1(config-pmap-c-police)#class CoPP_NORMAL SW1(config-pmap-c)#police 128000 2000 conform-action transmit exceed-action drop SW1(config-pmap-c-police)#class CoPP_UNDESIRABLE SW1(config-pmap-c)#police 8000 1000 conform-action drop exceed-action drop SW1(config-pmap-c-police)#class CoPP_DEFAULT SW1(config-pmap-c)#police 64000 1000 conform-action transmit exceed-action drop SW1(config-pmap-c-police)#exit SW1(config-pmap-c)#exit SW1(config-pmap)#exit Step 4: Apply the policy-map to the control plane: SW1(config)#control-plane SW1(config-cp)#service-policy input CONTROL_PLANE_POLICY SW1(config-cp)#end
Review the Cisco switch configuration to verify that it generates log records when administrator privileges are deleted as shown in the example below: archive log config logging enable If the Cisco switch is not configured to generate log records when administrator privileges are deleted, this is a finding.
Configure the Cisco switch to generate log records when administrator privileges are deleted as shown in the example below: SW4(config)#archive SW4(config-archive)#log config SW4(config-archive-log-cfg)#logging enable SW4(config-archive-log-cfg)#end
Review the Cisco switch configuration to verify that it generates audit records when successful/unsuccessful logon attempts occur as shown in the examples below: login on-failure log login on-success log If the Cisco switch is not configured to generate audit records when successful/unsuccessful logon attempts occur, this is a finding.
Configure the Cisco switch to generate audit records when successful/unsuccessful logon attempts occur as shown in the example below: R5(config)#login on-failure log R5(config)#login on-success log
Review the Cisco switch configuration to verify that it generates log records for privileged activities as shown in the example configurations below: archive log config logging enable If the Cisco switch is not configured to generate log records for privileged activities, this is a finding.
Configure the Cisco switch to generate log records for privileged activities as shown in the example below: SW4(config)#archive SW4(config-archive)#log config SW4(config-archive-log-cfg)#logging enable SW4(config-archive-log-cfg)#end
Review the Cisco switch configuration to verify that the device is configured to use at least two authentication servers as the primary source for authentication as shown in the example below: aaa new-model ! aaa authentication CONSOLE local aaa authentication login LOGIN_AUTHENTICATION group radius local … … … ip http authentication aaa login-authentication LOGIN_AUTHENTICATION ip http secure-server … … … radius-server host x.x.x.x auth-port 1812 acct-port 1813 key xxxxxxx radius-server host x.x.x.x auth-port 1812 acct-port 1813 key xxxxxxx … … … line con 0 exec-timeout 5 0 login authentication CONSOLE line vty 0 1 exec-timeout 5 0 login authentication LOGIN_AUTHENTICATION If the Cisco switch is not configured to use at least two authentication servers to authenticate users prior to granting administrative access, this is a finding.
Step 1: Configure the Cisco switch to use at least two authentication servers as shown in the example below: SW4(config)#radius host 10.1.48.2 key xxxxxx SW4(config)#radius host 10.1.48.3 key xxxxxx Step 2: Configure the authentication order to use the authentication servers as the primary source for authentication as shown in the example below: SW4(config)#aaa authentication CONSOLE local SW4(config)#aaa authentication login LOGIN_AUTHENTICATION group radius local Step 3: Configure all network connections associated with device management to use the authentication servers for login authentication: SW4(config)#line vty 0 1 SW4(config-line)#login authentication LOGIN_AUTHENTICATION SW4(config-line)#exit SW4(config)#line con 0 SW4(config-line)#login authentication CONSOLE SW4(config-line)#exit SW4(config)#ip http authentication aaa login-authentication LOGIN_AUTHENTICATION
Review the Cisco switch configuration to verify that it backs up the configuration when changes occur. The example configuration below will send the configuration to a TFTP server when a configuration change occurs: event manager applet BACKUP_CONFIG event syslog pattern "%SYS-5-CONFIG_I" action 1 info type switchname action 2 cli command "enable" action 3 cli command "copy run tftp" pattern "remote host" action 4 cli command "x.x.x.x" pattern "filename" action 5 cli command "$_info_switchname-config" action 6 syslog priority informational msg "Configuration backup was executed" If the Cisco switch is not configured to conduct backups of the configuration when changes occur, this is a finding.
Configure the Cisco switch to send the configuration to a TFTP or an FTP server when a configuration change occurs as shown in the example below: SW4(config)#event manager applet BACKUP_CONFIG SW4(config-applet)#event syslog pattern "%SYS-5-CONFIG_I" SW4(config-applet)#action 1 cli command "enable" SW4(config-applet)#action 2 info type switchname SW4(config-applet)#action 3 cli command "copy run tftp" pattern "remote host" SW4(config-applet)#action 4 cli command "x.x.x.x" pattern "filename" SW4(config-applet)#action 5 cli command "$_info_switchname-config" SW4(config-applet)#action 6 syslog priority informational msg "Configuration backup was executed" SW4(config-applet)#end
Note: This requirement is not applicable if the router or switch does not have any public key certificates. Review the switch configuration to determine if a CA trust point has been configured. The CA trust point will contain the URL of the CA in which the switch has enrolled. Verify this is a DOD or DOD-approved CA. This will ensure the switch has enrolled and received a certificate from a trusted CA. The CA trust point configuration would look similar to the example below: crypto pki trustpoint CA_X enrollment url http://trustpoint1.example.com Note: A remote endpoint's certificate will always be validated by the switch by verifying the signature of the CA on the certificate using the CA's public key, which is contained in the switch's certificate that it received at enrollment. If the Cisco switch is not configured to obtain its public key certificates from an appropriate certificate policy through an approved service provider, this is a finding.
Configure the switch to obtain its public key certificates from an appropriate certificate policy through an approved service provider as show in the example below: SW2(ca-trustpoint)#enrollment url http://trustpoint1.example.com
Verify that the switch is configured to send logs to at least two central log servers. The configuration should be similar to the example below: logging x.x.x.x logging x.x.x.x If the switch is not configured to send log data to the syslog servers, this is a finding.
Configure the switch to send log messages to the syslog servers as shown in the example below: SW4(config)#logging host x.x.x.x SW4(config)#logging host x.x.x.x
Verify that the switch is in compliance with this requirement by having the switch administrator enter the following command: show version Verify that the release is still supported by Cisco. All releases supported by Cisco can be found at: www.cisco.com/c/en/us/support/ios-nx-os-software If the switch is not running a supported release, this is a finding.
Upgrade the switch to a supported release.