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
Verify if the switch configuration has 802.1x authentication implemented for all access switch ports connecting to LAN outlets (i.e., RJ-45 wall plates) or devices not located in the telecom room, wiring closets, or equipment rooms. MAC Authentication Bypass (MAB) must be configured on those switch ports connected to devices that do not support an 802.1x supplicant. Step 1: Verify that 802.1x is configured on all host-facing interfaces as shown in the example below: interface GigabitEthernet1/0 switchport access vlan 12 switchport mode access authentication port-control auto dot1x pae authenticator ! interface GigabitEthernet1/1 switchport access vlan 13 switchport mode access authentication port-control auto dot1x pae authenticator ! interface GigabitEthernet1/2 switchport access vlan 13 switchport mode access authentication port-control auto dot1x pae authenticator Step 2: Verify that 802.1x authentication is configured on the switch as shown in the example below: aaa new-model ! ! aaa group server radius RADIUS_SERVERS server name RADIUS_1 server name RADIUS_2 ! aaa authentication dot1x default group RADIUS_SERVERS … … … dot1x system-auth-control Step 3: Verify that the radius servers have been defined. SW1#show radius server-group RADIUS_SERVERS Note: Single-host is the default. Host-mode multi-domain (for VoIP phone + PC) or multi-auth (multiple PCs connected to a hub) can be configured as alternatives. Host-mode multi-host is not compliant with this requirement. If 802.1x authentication or MAB is not configured on all access switch ports connecting to LAN outlets or devices not located in the telecom room, wiring closets, or equipment rooms, this is a finding.
Configure 802.1 x authentications on all host-facing access switch ports. To authenticate those devices that do not support 802.1x, MAC Authentication Bypass must be configured. Step 1: Configure the radius servers as shown in the example below: SW1(config)#radius server RADIUS_1 SW1(config-radius-server)#address ipv4 10.1.22.3 SW1(config-radius-server)#key xxxxxx SW1(config-radius-server)#exit SW1(config)#radius server RADIUS_2 SW1(config-radius-server)#address ipv4 10.1.14.5 SW1(config-radius-server)#key xxxxxx SW1(config-radius-server)#exit Step 2: Enable 802.1x authentication on the switch. SW1(config)#aaa new-model SW1(config)#aaa group server radius RADIUS_SERVERS SW1(config-sg-radius)#server name RADIUS_1 SW1(config-sg-radius)#server name RADIUS_2 SW1(config-sg-radius)#exit SW1(config)#aaa authentication dot1x default group RADIUS_SERVERS SW1(config)#dot1x system-auth-control Step 3: Enable 802.1x on all host-facing interfaces as shown in the example below: SW1(config)#int range g1/0 - 8 SW1(config-if-range)#switchport mode access SW1(config-if-range)#authentication host-mode single-host SW1(config-if-range)#dot1x pae authenticator SW1(config-if-range)#authentication port-control auto SW1(config-if-range)#end Note: Single-host is the default. Host-mode multi-domain (for VoIP phone + PC) or multi-auth (multiple PCs connected to a hub) can be configured as alternatives.
Review the switch configuration to verify if VTP is enabled using the show vtp status command as shown in the example below: Switch#show vtp status VTP Version capable : 1 to 3 VTP version running : 1 VTP Domain Name : VTP Pruning Mode : Disabled VTP Traps Generation : Disabled Device ID : 5e00.0000.8000 Feature VLAN: -------------- VTP Operating Mode : Off Maximum VLANs supported locally : 1005 Number of existing VLANs : 5 Configuration Revision : 0 MD5 digest : 0x57 0xCD 0x40 0x65 0x63 0x59 0x47 0xBD 0x56 0x9D 0x4A 0x3E 0xA5 0x69 0x35 0xBC Switch# If mode is set to anything other than off, verify that a password has been configured using the show vtp password command. Note: VTP authenticates all messages using an MD5 hash that consists of the VTP version + The VTP Password + VTP Domain + VTP Configuration Revision. If VTP is enabled on the switch and is not authenticating VTP messages with a hash function using a configured password, this is a finding.
Configure the switch to authenticate all VLAN Trunk Protocol (VTP) messages with a hash function using a configured password as shown in the example below: SW1(config)#vtp password xxxxxxxxx
Step 1: Verify that the class-maps are configured to match on DSCP values as shown in the configuration example below: class-map match-all C2_VOICE match ip dscp af47 class-map match-all VOICE match ip dscp ef class-map match-all VIDEO match ip dscp af41 class-map match-all PREFERRED_DATA match ip dscp af33 Step 2: Verify that the policy map reserves the bandwidth for each traffic type as shown in the following example: policy-map QOS_POLICY_SWITCHPORT class C2_VOICE priority level 1 10 class VOICE priority level 2 15 class VIDEO bandwidth percent 25 class PREFERRED_DATA bandwidth percent 25 class class-default bandwidth percent 25 verone interface GigabitEthernet1/1 switchport trunk allowed vlan 100,110,200 switchport mode trunk service-policy output QOS_POLICY_SWITCHPORT ! interface GigabitEthernet1/2 switchport access vlan 100 switchport mode access switchport voice vlan 200 trust device cisco-phone service-policy output QOS_POLICY_SWITCHPORT ! interface GigabitEthernet1/2 switchport access vlan 110 switchport mode access switchport voice vlan 200 trust device cisco-phone service-policy output QOS_POLICY_SWITCHPORT If QoS has not been enabled, this is a finding.
Step 1: Configure class-maps to match on DSCP values as shown in the configuration example below: SW1(config-cmap)#class-map match-all C2_VOICE SW1(config-cmap)# match ip dscp 47 SW1(config-cmap)#class-map match-all VOICE SW1(config-cmap)# match ip dscp ef SW1(config-cmap)#class-map match-all VIDEO SW1(config-cmap)# match ip dscp af41 SW1(config)#class-map match-all PREFERRED_DATA SW1(config-cmap)# match ip dscp af33 SW1(config-cmap)#exit Step 2: Configure a policy map to be applied to the core-layer-facing interface that reserves the bandwidth for each traffic type as shown in the example below: SW1(config)#policy-map QOS_POLICY_SWITCHPORT SW1(config-pmap-c)#class C2_VOICE SW1(config-pmap-c)# priority level 1 10 SW1(config-pmap-c)#class VOICE SW1(config-pmap-c)# priority level 2 15 SW1(config-pmap-c)#class VIDEO SW1(config-pmap-c)#bandwidth percent 25 SW1(config-pmap-c)#class PREFERRED_DATA SW1(config-pmap-c)#bandwidth percent 25 SW1(config-pmap-c)#class class-default SW1(config-pmap-c)#bandwidth percent 25 SW1(config-pmap-c)#exit SW1(config-pmap)#exit Step 3: Apply the output service policy to the core-layer-facing interface as shown in the configuration example below: SW1(config)#int g1/1 SW1(config-if)#service-policy output QOS_POLICY_SWITCHPORT SW1(config-if)#exit SW1(config)#int g1/2 SW1(config-if)#service-policy output QOS_POLICY_SWITCHPORT SW1(config-if)#exit SW1(config)#int g1/3 SW1(config-if)#service-policy output QOS_POLICY_SWITCHPORT SW1(config-if)#end.
Review the switch topology as well as the configuration to verify that Root Guard is enabled on all switch ports connecting to access layer switches. interface GigabitEthernet0/0 spanning-tree guard root ! interface GigabitEthernet0/1 spanning-tree guard root … … … interface GigabitEthernet0/9 spanning-tree guard root If the switch has not enabled Root Guard on all switch ports connecting to access layer switches, this is a finding.
Configure the switch to have Root Guard enabled on all ports connecting to access layer switches. SW1(config)#int range g0/0 - 9 SW1(config-if-range)#spanning-tree guard root
Review the switch configuration to verify that BPDU Guard is enabled on all user-facing or untrusted access switch ports as shown in the configuration example below: interface GigabitEthernet0/0 spanning-tree bpduguard enable ! interface GigabitEthernet0/1 spanning-tree bpduguard enable … … … interface GigabitEthernet0/9 spanning-tree bpduguard enable If the switch has not enabled BPDU Guard, this is a finding.
Ensure that BPDU Guard is enabled on all user-facing or untrusted access switch ports as shown in the configuration example below: SW1(config)#int range g0/0 - 9 SW1(config-if-range)#spanning-tree bpduguard enable Note: BPDU guard can also be enabled globally on all Port Fast-enabled ports by using the spanning-tree portfast bpduguard default command.
Review the switch configuration to verify that STP Loop Guard is enabled as shown in the configuration example below: hostname SW2 … … … spanning-tree mode pvst spanning-tree loopguard default If STP Loop Guard is not enabled, this is a finding.
Configure the switch to have STP Loop Guard enabled via the spanning-tree loopguard default global command.
Review the switch configuration to verify that UUFB is enabled on all access switch ports as shown in the configuration example below: interface GigabitEthernet0/0 switchport block unicast ! interface GigabitEthernet0/1 switchport block unicast … … … interface GigabitEthernet0/9 switchport block unicast If any access switch ports do not have UUFB enabled, this is a finding.
Configure the switch to have Unknown Unicast Flood Blocking (UUFB) enabled as shown in the configuration example below: SW1(config)#int range g0/0 - 9 SW1(config-if-range)#switchport block unicast
Review the switch configuration and verify that DHCP snooping is enabled on all user VLANs as shown in the example below: hostname SW2 … … … ip dhcp snooping vlan 2,4-8,11 ip dhcp snooping Note: Switchports assigned to a user VLAN would have drops in the area where the user community would reside; hence, the "untrusted" term is used. Server and printer VLANs would not be applicable. If the switch does not have DHCP snooping enabled for all user VLANs to validate DHCP messages from untrusted sources, this is a finding.
Configure the switch to have DHCP snooping for all user VLANs to validate DHCP messages from untrusted sources as shown in the example below: SW2(config)#ip dhcp snooping SW2(config)#ip dhcp snooping vlan 2,4-8,11
Review the switch configuration to verify that IP Source Guard is enabled on all user-facing or untrusted access switch ports as shown in the example below: interface GigabitEthernet0/0 ip verify source ! interface GigabitEthernet0/1 ip verify source … … … interface GigabitEthernet0/9 ip verify source Note: The IP Source Guard feature depends on the entries in the DHCP snooping database or static IP-MAC-VLAN configuration commands to verify IP-to-MAC address bindings. If the switch does not have IP Source Guard enabled on all untrusted access switch ports, this is a finding.
Configure the switch to have IP Source Guard enabled on all user-facing or untrusted access switch ports. SW2(config)#int range g0/0 - 9 SW2(config-if-range)#ip verify source
Review the switch configuration to verify that Dynamic Address Resolution Protocol (ARP) Inspection (DAI) feature is enabled on all user VLANs. hostname SW2 … … … ip arp inspection vlan 2,4-8,11 Note: DAI depends on the entries in the DHCP snooping binding database to verify IP-to-MAC address bindings in incoming ARP requests and ARP responses. If DAI is not enabled on all user VLANs, this is a finding.
Configure the switch to have Dynamic Address Resolution Protocol (ARP) Inspection (DAI) enabled on all user VLANs as shown in the example below: SW2(config)#ip arp inspection vlan 2,4-8,11
Review the switch configuration to verify that storm control is enabled on all host-facing interfaces as shown in the example below: interface GigabitEthernet0/3 switchport access vlan 12 storm-control unicast level bps 62000000 storm-control broadcast level bps 20000000 Note: Bandwidth percentage thresholds (via level parameter) can be used in lieu of PPS rate. If storm control is not enabled at a minimum for broadcast traffic, this is a finding.
Configure storm control for each host-facing interface as shown in the example below: SW1(config)#int range g0/2 - 8 SW1(config-if-range)#storm-control unicast bps 62000000 SW1(config-if-range)#storm-control broadcast level bps 20000000 Note: The acceptable range is 10000000 -1000000000 for a gigabit Ethernet interface, and 100000000-10000000000 for a ten gigabit interface. Storm control is not supported on most FastEthernet interfaces.
Review the switch configuration to verify that IGMP or MLD snooping has been configured for IPv4 and IPv6 multicast traffic respectively. Below is an example of the steps to verify that IGMP snooping is enabled for each VLAN. Step 1: Verify that IGMP or MLD snooping is enabled globally. By default, IGMP snooping is enabled globally; hence, the following command should not be in the switch configuration: no ip igmp snooping Step 2: Verify that IGMP snooping is not disabled for any VLAN as shown in the example below: no ip igmp snooping vlan 11 Note: When globally enabled, it is also enabled by default on all VLANs, but can be disabled on a per-VLAN basis. If global snooping is disabled, VLAN snooping cannot be enabled. If the switch is not configured to implement IGMP or MLD snooping for each VLAN, this is a finding.
Configure IGMP or MLD snooping for IPv4 and IPv6 multicast traffic respectively globally. SW1(config)#ip igmp snooping
In cases where VLANs do not span multiple switches, it is a best practice to not implement STP. Avoiding the use of STP will provide the most deterministic and highly available network topology. If STP is required, then review the switch configuration to verify that Rapid STP has been implemented. hostname SW2 … … … spanning-tree mode rapid-pvst Note: Multiple STP (MSTP) can be configured as an alternate mode. MSTP which uses RSTP for rapid convergence and enables multiple VLANs to be grouped into and mapped to the same spanning-tree instance; thereby reducing the number of spanning-tree instances needed to support a large number of VLANs. If either RSTP or MSTP has not been implemented where STP is required, this is a finding.
Configure Rapid STP or MSTP to be implemented at the access and distribution layers where VLANs span multiple switches as shown in the examples below: SW2(config)#spanning-tree mode rapid-pvst or SW1(config)#spanning-tree mode mst
If any of the switch ports have fiber optic interconnections with neighbors, review the switch configuration to verify that UDLD is enabled globally or on a per-interface basis as shown in the examples below: hostname SW2 … … … udld enable or interface GigabitEthernet0/1 udld port Note: An alternative implementation when UDLD is not supported by connected device is to deploy a single member Link Aggregation Group (LAG) via IEEE 802.3ad Link Aggregation Control Protocol (LACP). If the switch has fiber optic interconnections with neighbors and UDLD is not enabled, this is a finding.
Configure the switch to enable Unidirectional Link Detection (UDLD) to protect against one-way connections. SW2(config)#udld enable or SW2(config)#int g0/1 SW2(config-if)#udld port
By default, Dynamic Trunking Protocol (DTP) is enabled on all Cisco switches. Review the switch configuration to verify that trunk links will not form trunk via negotiation as shown in the example below: SW2#show interfaces switchport Name: Gi0/0 Switchport: Enabled Administrative Mode: dynamic auto Operational Mode: static access Administrative Trunking Encapsulation: negotiate Operational Trunking Encapsulation: native Negotiation of Trunking: On If trunk negotiation is enabled on any interface, this is a finding.
Configure the switch to enable trunk links statically as shown in the configuration below: SW2(config-if)#switchport trunk encapsulation dot1q SW2(config-if)#switchport mode trunk SW2(config-if)#switchport nonegotiate
Step 1: Review the switch configurations and examine all access switch ports. Each access switch port not in use should have membership to an inactive VLAN. interface GigabitEthernet0/0 switchport access vlan 999 shutdown ! interface GigabitEthernet0/1 switchport access vlan 999 shutdown … … … interface GigabitEthernet0/9 switchport access vlan 999 shutdown Step 2: Verify that traffic from the inactive VLAN is not allowed on any trunk links as shown in the example below: interface GigabitEthernet1/1 switchport trunk allowed vlan 1-998,1000-4094 switchport trunk encapsulation dot1q switchport mode trunk Note: Switch ports configured for 802.1x are exempt from this requirement. If there are any access switch ports not in use and not in an inactive VLAN, this is a finding.
Assign all switch ports not in use to an inactive VLAN. Step 1: Assign the disabled interfaces to an inactive VLAN. SW3(config)#int range g0/0 – 9 SW3(config-if-range)# switchport access vlan 999 Step 2: Configure trunk links to not allow traffic from the inactive VLAN. SW3(config)#int g1/1 SW3(config-if)#switchport trunk allowed vlan except 999
Review the switch configurations and verify that no access switch ports have been assigned membership to the default VLAN (i.e., VLAN 1). VLAN assignments can be verified via the show vlan command. SW1#show vlan VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------- 1 default active 10 User VLAN active Gi0/3, Gi1/0, Gi1/1, Gi1/2 Gi1/3, Gi2/1 20 Management VLAN active Gi0/2 999 VLAN0999 active Gi2/0 If there are access switch ports assigned to the default VLAN, this is a finding.
Remove the assignment of the default VLAN from all access switch ports.
Review the switch configuration and verify that the default VLAN is pruned from trunk links that do not require it. SW1#show interfaces trunk Port Mode Encapsulation Status Native vlan Gi0/1 on 802.1q trunking 1 Gi0/2 on 802.1q trunking 1 Port Vlans allowed on trunk Gi0/1 1-998,1000-4094 Gi0/2 1-4094 If the default VLAN is not pruned from trunk links that should not be transporting frames for the VLAN, this is a finding.
Prune VLAN 1 from any trunk links as necessary. SW1(config)#int g0/2 SW1(config-if)#switchport trunk allowed vlan except 1 Verify VLAN 1 is not allowed on the trunk link. SW1#show interfaces trunk Port Mode Encapsulation Status Native vlan Gi0/1 on 802.1q trunking 1 Gi0/2 on 802.1q trunking 1 Port Vlans allowed on trunk Gi0/1 1-998,1000-4094 Gi0/2 2-4094
Review the switch configuration and verify that the default VLAN is not used to access the switch for management. interface Vlan22 description Management VLAN ip address 10.1.22.3 255.255.255.0 If the default VLAN is being used for management access to the switch, this is a finding.
Configure the switch for management access to use a VLAN other than the default VLAN. SW1(config)#int vlan 22 SW1(config-if)#ip add 10.1.22.3 255.255.255.0 SW1(config-if)#no shut
Review the switch configurations and examine all user-facing or untrusted switchports. The example below depicts both access and trunk ports. interface GigabitEthernet0/1 switchport trunk encapsulation dot1q switchport mode trunk negotiation auto ! interface GigabitEthernet0/2 switchport access vlan 11 negotiation auto ! interface GigabitEthernet0/3 switchport access vlan 12 negotiation auto If any of the user-facing switch ports are configured as a trunk, this is a finding.
Disable trunking on all user-facing or untrusted switch ports. SW1(config)#int g0/6 SW1(config-if)#switchport mode access SW1(config-if)#end
Review the switch configurations and examine all trunk links. Verify the native VLAN has been configured to a VLAN ID other than the ID of the default VLAN (i.e. VLAN 1) as shown in the example below: interface GigabitEthernet0/1 switchport trunk encapsulation dot1q switchport trunk native vlan 44 switchport mode trunk negotiation auto Note: An alternative to configuring a dedicated native VLAN is to ensure that all native VLAN traffic is tagged. This will mitigate the risk of VLAN hopping since there will always be an outer tag for native traffic as it traverses an 802.1q trunk link. If the native VLAN has the same VLAN ID as the default VLAN, this is a finding.
To ensure the integrity of the trunk link and prevent unauthorized access, the ID of the native VLAN of the trunk port must be changed from the default VLAN (i.e., VLAN 1) to its own unique VLAN ID. SW1(config)#int g0/1 SW1(config-if)#switchport trunk native vlan 44 Note: The native VLAN ID must be the same on both ends of the trunk link; otherwise, traffic could accidentally leak between broadcast domains.
Review the switch configurations and examine all access switch ports. Verify that they do not belong to the native VLAN as shown in the example below: interface GigabitEthernet0/1 switchport trunk encapsulation dot1q switchport trunk native vlan 44 switchport mode trunk negotiation auto ! interface GigabitEthernet0/2 switchport access vlan 11 negotiation auto ! interface GigabitEthernet0/3 switchport access vlan 12 negotiation auto ! If any access switch ports have been assigned to the same VLAN ID as the native VLAN, this is a finding.
Configure all access switch ports to a VLAN other than the native VLAN.