Mitigera STP-attacker

STP är ett nätverksprotokoll som utvecklats för att förhindra uppkomsten av loopar samtidigt som man tillåter användningen av redundanta vägar i nätverket. För att skydda mot attacker som utnyttjar Spanning Tree Protocol (STP) är det viktigt att implementera säkerhetsåtgärder som PortFast och BPDU Guard. Dessa åtgärder förhindrar att nätverkets struktur ändras av hotaktörer genom manipulation av STP.

  • PortFast – När en switchport är konfigurerad med PortFast övergår den porten omedelbart från blocking till forwarding status och kringgår de vanliga 802.1D STP-övergångslägena (Listening och Learning), vilket undviker en 30 sekunders fördröjning. Du kan använda PortFast på åtkomstportar (Access ports) för att låta enheter som är anslutna till dessa portar, såsom DHCP-klienter, att omedelbart få åtkomst till nätverket istället för att vänta på STP ska konvergera på varje VLAN.
  • BPDU Guard – BPDU Guard inaktiverar omedelbart en port som tar emot en BPDU, vilket är en säkerhetsåtgärd för att skydda mot obehöriga försök att lägga till switchar i nätverket. Precis som PortFast bör BPDU Guard endast konfigureras på interface som är anslutna till slutenheter, där inga BPDUs förväntas trafikera.

I figuren bör åtkomstportarna för S1 konfigureras med PortFast och BPDU Guard.

Konfigurera PortFast

PortFast kringgår STP lyssnings- och inlärningsstadier för att minimera tiden som åtkomstportar behöver vänta på att STP konvergera. Om PortFast aktiveras på en port som ansluter till en annan switch finns det en risk att skapa en spanning-tree loop.

PortFast kan aktiveras på ett interface med kommandot spanning-tree portfast inom interfacets konfigurationsläget. Alternativt kan PortFast konfigureras globalt på alla åtkomstportar genom att använda kommandot spanning-tree portfast default.

För att verifiera om PortFast är aktiverat globalt kan du använda antingen kommandot show running-config | begin span eller kommandot show spanning-tree summary. För att kontrollera om PortFast är aktiverat på ett interface, använd kommandot show running-config interface typ/nummer detail kan också användas för verifiering.

Observera att när PortFast är aktiverat visas varningsmeddelanden.

S1(config)# interface fa0/1
S1(config-if)# switchport mode access
S1(config-if)# spanning-tree portfast
%Warning: portfast should only be enabled on ports connected to a single
 host. Connecting hubs, concentrators, switches, bridges, etc... to this
 interface when portfast is enabled, can cause temporary bridging loops.
 Use with CAUTION
%Portfast has been configured on FastEthernet0/1 but will only
 have effect when the interface is in a non-trunking mode.
S1(config-if)# exit
S1(config)# spanning-tree portfast default
%Warning: this command enables portfast by default on all interfaces. You
 should now disable portfast explicitly on switched ports leading to hubs,
 switches and bridges as they may create temporary bridging loops.
S1(config)# exit
S1# show running-config | begin span
spanning-tree mode pvst
spanning-tree portfast default
spanning-tree extend system-id
!
interface FastEthernet0/1
 switchport mode access
 spanning-tree portfast
!
interface FastEthernet0/2
!
(output omitted)
S1#

Konfigurera BPDU Guard

Även om PortFast är aktiverat kommer interfacet fortfarande att lyssna efter BPDUs. Oväntade BPDUs kan vara oavsiktliga eller del av ett obehörigt försök att lägga till en switch i nätverket.

Om några BPDUs tas emot på en port med aktiverad BPDU Guard, placeras den porten i ett fel-aktiverat tillstånd (err-disabled). Detta innebär att porten stängs av och måste manuellt återaktiveras eller automatiskt återställas genom det globala kommandot errdisable recovery cause bpduguard.

BPDU Guard kan aktiveras på en port (på interfacets konfigurationsläget) genom att använda kommandot spanning-tree bpduguard enable. Alternativt kan du använda det globala konfigurationskommandot spanning-tree portfast bpduguard default för att globalt aktivera BPDU Guard på alla PortFast-aktiverade portar.

För att visa information om tillståndet för Spanning Tree, använd kommandot show spanning-tree summary. I exemplet är både PortFast default och BPDU Guard aktiverade som standardtillstånd för portar konfigurerade som åtkomstportar.

Notera: Aktivera alltid BPDU Guard på alla PortFast-aktiverade portar.
S1(config)# interface fa0/1
S1(config-if)# spanning-tree bpduguard enable
S1(config-if)# exit
S1(config)# spanning-tree portfast bpduguard default
S1(config)# end
S1# show spanning-tree summary

Switch is in pvst mode
Root bridge for: none
Extended system ID is enabled
Portfast Default is enabled
PortFast BPDU Guard Default is enabled
Portfast BPDU Filter Default is disabled
Loopguard Default is disabled
EtherChannel misconfig guard is enabled
UplinkFast is disabled
BackboneFast is disabled
Configured Pathcost method used is short
(output omitted)
S1#