Sunteți pe pagina 1din 7

SWITCH de Layer 2 (c2950/c2960)

<< configuratii de securitate >>


v0.4

1. Port Security
2. Port protected
3. Port blocking
4. Storm control (Traffic suppression)

1. Port security

Este o configuratie de securitate a switchurilor pozitionate la nivelul de acces in retea,


disponibila atat pe echipamentele Cisco cat si ale altor vendori, ce permite protejarea retelei de
atacuri de tip: MAC Address Spoofing, si CAM Table Overflowing.

In urma configurarii port-security (PS) pe un port de layer 2 de switch de tip acces sau trunk
- NU functioneaza pentru porturile de tip access dynamic si dynamic auto/desirable- se va analiza
MAC-ul sursa al fiecarui frame primit pe directia de INBOUND (ce intra in port). Acestea vor fi
considerate:
 MAC-uri securizate de tip dynamic (default)
 MAC-uri securizate de tip static
 MAC-uri securizate de tip sticky
 MAC-uri securizate de tip sticky static

Adresele MAC invatate securizat au urmatoarele caracteristici:

Tipul de Se invata Apare in Apare in Apare ca MAC Se dezinvata ca


MAC MAC-ul de CAM ? running- securizat in tabela urmare a L1 up /
[1]
securizat switch in mod config ? portului ? down ? [2]
Dynamic Automat Da Nu Da Da
Static Manual Da Da Da Nu
Sticky [3] Automat Da Da Da Nu
Sticky static Manual Da Da Da Nu

[1]
- in CAM vor apare MAC-urile invatate fie ca STATIC, fie ca SECURED
[2]
- shut/no shut, deconectarea/reconectare cablu, repornirea statiei conectate la portul de switch ...
[3]
- invatarea de tip Dynamic este alternativa la cea de tip Sticky. Odata pornita cea de tip Sticky,
toate MAC-urile anterior invatate de tip Dynamic devin de tip Sticky.

In momentul in care (toate) MAC-urile invate securizat de catre switch pe (toate) porturile
apar in running-config (sunt de tip Secured Static sau Secured Sticky), administratorul va trebui sa
salveze acel running-config in startup-config pentru a se asigura ca la o sesiune viitoare de
functionare a switchului acesta va sti deja MAC-urile 'legitime' asociate respectivelor porturi.

In urmatoarele conditii switchul va considera ca s-a produs o eroare de tip 'port security
violation' :
1. Numarul de MAC-uri invatate pe acel port a depasit numarul maxim de MAC-uri ce

InfoAcademy Page 1
este permis a fi invatat pe acel port
2. Un MAC securizat invatat pe un alt port al acestui switch apare drept MAC sursa al
unui frame primit pe acest port

Tipuri de reactie in conditiile unui port security violation sunt:


1. Protect
2. Restrict
3. 'Shutdown' port (este default-ul)
4. 'Shutdown' vlan (util doar pentru interfetele de tip trunk)

Se blocheaza Se incrementeaza Se trimite un mesaj Se seteaza portul in


Tip reactie
traficul 'ofensator' 'violation counter' Syslog/SNMP? [1] err-disable ? [2]
Protect Da Nu Nu Nu
Restrict Da Da Da Nu
'Shutdown'
Da Da Da Da
port
'Shutdown'
Da Da Da Da [3]
vlan

[1]
– Mesajele Syslog se trimit by-default doar in consola. Mesajele SNMP trap se trimit doar in urma
configuratiei suplimentare de SNMP si SNMP trap.
[2]
– Vizual, LED-ul portului respectiv se va stinge. Despre err-disable vezi mai jos.
[3]
– Se va pune in err-disable (bloca) doar traficul din VLAN-ul ofensator de pe interfata respectiva
de tip trunk, nu si traficul din celelalte VLAN-uri

Un port ajuns in err-disable nu va permite traficul utilizator pe INBOUND/OUTBOUND. By-


default, un astfel de port va ramane in aceasta stare nelimitat (interfata va apare down si down (err-
disabled) la L1, respectiv L2). Un astfel de port va putea fi scos din aceasta stare prin una din
urmatoarele modalitati:

1. Switch(config-if)# shutdown
Switch(config-if)# no shutdown

2. Switch(config)# errdisable recovery cause psecure-violation


Switch(config)# errdisable recovery interval <sec> (default: 300 sec;
min/max: 30/86400 sec)
3. Switch# clear errdisable interface <intf> vlan [<VIDs>]

Se poate configura AGING-ul MAC-urilor securizate invatate in mod securizat daca acestea
sunt de tip Dynamic sau Static (MAC-urile invatate sub forma Sticky nu vor face time-out). By-
default, AGING-ul nu este configurat (are valoarea 0). Daca ar fi modificat de la valoarea default, s-
ar putea obtine fie AGING-ul MAC-urilor invatate in mod Dynamic, fie AGING-ul MAC-urilor
invatate atat Dynamic cat si Static.

Switchport security violation counter este incrementat cu unu pentru orice frame ce incalca
politica de securitate. Acest lucru este vizibil in cazul restrict. In cazul shutdown, se aduce portul in
err-disable dupa primul frame ce incalca acea politica. In cazul protect nu se incrementeaza acest
contor. In urma flaping-ului manual al interfetei (shut/no shut) se va reseta automat acest contor la
valoarea zero.

InfoAcademy Page 2
Port Security este o configuratie disponibila pe interfetele de switch de L2 de tipul:

Tip de Port sau Feature Configurat pe port Compatibilitate cu Port Security


DTP port (protocol utilizat pe interfetele dynamic auto/desirable) Nu

Trunk port (configurat manual) Da

Dynamic-access port (vezi DTP) Nu

SPAN source port Da

SPAN destination port Nu

EtherChannel Da

Protected port Da

IEEE 802.1x port Da

Voice VLAN port Da

Flex Links Da

Configurare:

Switch(config)# interface fa0/1


Switch(config-if)# switchport port-security !! comanda obligatorie !!
Switch(config-if)# switchport mode { access | trunk } !! comanda obligatorie !!

ACCES (un port de tip access sau ‘minitrunk’/voce):


Switch(config-if)# switchport port-security maximum <nr> [ vlan { acces | voice } ]

Switch(config-if)# switchport port-security mac-address <H.H.H> [ vlan { acces | voice } ]

Switch(config-if)# switchport port-security mac-address sticky <--- trebuie sa preceada


urmatoarea comanda

Switch(config-if)# switchport port-security mac-address sticky <H.H.H> [ vlan {acces | voice} ]

TRUNK:
Switch(config-if)# switchport port-security maximum <nr> [ vlan [ <VID> ] ]
Neprecizarea VLAN-ului, va face ca nr de MAC-uri redat sa fie numarul maxim de MAC-uri
acceptat pe interfata trunk.
Folosirea cuvinatului vlan, dar fara precizarea VID, reda nr max de MAC-uri acceptate pentru
fiecare vlan in parte (numit si nr default de MAC-uri pentru fiecare vlan).
Utilizarea VID in sintaxa permite precizarea nr max de MAC-uri doar pentru acel(e)
vlan/vlan-uri mentionate.

Switch(config-if)# switchport port-security mac-address <H.H.H> [vlan <VID>]


Neprecizarea VID-ului, va face ca acel MAC sa fie asociat vlanului nativ.

Switch(config-if)# switchport port-security mac-address sticky <--- trebuie sa preceada


urmatoarea comanda

Switch(config-if)# switchport port-security mac-address sticky <H.H.H> [ vlan <VIDs> ]


Neprecizarea VID-ului, va face ca acel MAC sa fie asociat vlanului nativ.

InfoAcademy Page 3
COMUN:
Switch(config-if)# switchport port-security violation { protect | restrict | shutdown [ vlan ] }
Switch(config-if)# switchport port-security aging time <minute> (default 0, max: 1440min)
Switch(config-if)# switchport port-security aging type { absolute | inactivity}
Switch(config-if)# switchport port-security aging static

Vizualizare si depanare:
Switch# show port-security
Switch# show port-security address [vlan <VID>]
Switch# show port-security interface <intf> [address [vlan <VID>] | vlan [<VIDs>]]]

Switch# show interface status err-disabled


Switch# show errdisable recovery
Switch# show errdisable detect

Switch# clear port-security { all | configured | dynamic | sticky } [ address <H.H.H> [vlan
<VIDs> ] ] | interface <intf> [vlan access | voice | <VIDs>] ]

Switch# debug port-security

2. Port protected (PVLAN Edge ports)


Port protected este o configuratie ce se aplica porturilor de switch de L2 (fizice sau logice -
tip Portchannel) de tip acces (cel putin la 2 dintre acestea, aflate in plus pe acelasi echipament) ce are
drept efect blocarea forwarding-ului mesajelor de date primite de la utilizator (de tip unicast,
broadcast sau multicast) intre respectivele porturi.

Mesajele de control (precum update-urile PIM analizate de procesorul switch-ului si comutate


in software) vor fi forwardate intre porturile protected !

Schimbul de mesaje utilizator intre porturi protected si porturi non-protected nu este afectat in
vreun fel.

Este posibila comunicarea cu trafic de date intre hosturile conectate la porturile protected
aflate in acelasi domeniu de broadcast si spatiu de adresare daca configuram pe un echipament de L3
(ex: router) conectat si el (printr-un port non-protected) la acel domeniu de broadcast/spatiu de
adresare functionalitatea numita Local Proxy ARP. Aceasta ii va permite sa raspunda cu ARP Reply
la orice ARP Request primit pe respectiva interfata prin care se cere echivalenta intre un IP local
acelui spatiu de adrese IP si o adresa MAC.

Configurare:

Switch(config)# interface fa0/1


Switch(config-if)# switchport protected

Vizualizare:
Switch# show interface [<intf>] switchport

Configurarea pe router:
InfoAcademy Page 4
Router(config)# interface fa0/0
Router(config-if)# ip local-proxy-arp

Router# show ip interface fa0/0

3. Port blocking
Uneori se doreste ca traficul unicast unknown si multicast sa nu fie flood-at in interiorul
domeniului de broadcast de origine pe un anumit port/anumite porturi in scopul restrangerii
numarului de hosturi ce vor primii respectivul trafic sau/si in scopul folosirii mai eficiente a latimii
de banda pe directia de outbound a acestor porturi.

Utilizarea Port blocking la nivelul unui port fizic de layer 2 de tip acces sau trunk, sau la
nivelul unui port logic de layer 2 (interfete portchannel) are drept efect blocarea trimiterii (directia
este de OUTBOUND) a traficului de tip unicast necunoscut sau multicast.
In cazul portului de tip acces se va bloca trimiterea traficului din vlan-ul respectivului port.
In cazul cazul portului de tip trunk se va aplica aceeasi logica pentru toate vlan-urile asociate
respectivei interfete trunk.

By default, configuratia de tip port blocking nu este aplicata nici-unui port al switchului.

Pentru a nu se ajunge in situatia in care switchul dezinvata adresa MAC asociata unui port de
L2 datorita lipsei de activitate in retea a host-ului conectat, recomand folosirea functionalitatii port
blocking impreuna cu functionalitatea port security la nivelul respectivei interfete.

In cazul traficului de tip multicast se va bloca doar traficul de L2 exclusiv, nu si cel de L3


(IPv4 sau IPv6) multicast.

Configurare:

Switch(config)# interface fa0/1


Switch(config-if)# switchport block { unicast | multicast }

Vizualizare:
Switch# show interface [<intf>] switchport

4. Storm Control (Traffic Suppression)

Storm Control reprezinta o modalitate de a limita traficul de tip unicast, broadcast sau
multicast pe care un port fizic de switch de layer 2 (de tip acces sau trunk) sau logic de layer 2
(interfata portchannel) il accepta (directa este de INBOUND) la fiecare 1 secunda. Se face analiza
tipului de trafic din punctul de vedere al layer-ului doi OSI.
Excesul de trafic poate fi cauzat de o implementare defectuoasa a stivei de protocoale a unui
echipament din retea, de bug-uri software/hardware, de un utilizator rau intentionat, de configurari
grestie.

By default, nu este configurata o limita a volumului de trafic acceptat. In urma configuratiilor


insa se poate cere ca switch-ul sa nu accepte trafic ce depaseste un anumit numar de bps, de pps
(pachete per secunda) sau de procente de tip unicast sau/si broadcast sau/si multicast. Valorile setate
de admin vor fi respectate doar in forma aproximata de switch datorita unor limitari hardware si a

InfoAcademy Page 5
lungimii variabile a frame-urilor. Excesul de trafic va fi aruncat.
Functionalitatea oferita de storm control este similara celei de policing din QoS.

Pentru fiecare tip de trafic se pot configura 2 limite – upper threshold si lower threshold.
Daca nu este configurat lower threshold (este optional), aceasta va avea valoarea egala cu upper
threshold.

Analiza traficului se face pe inbound la fiecare 1 secunda. Daca traficul de un anumit tip
depaseste in secunda curenta upper thresh. el va fi blocat (nu va fi acceptat de switch) in secunda
urmatoare. Totusi, in acea secunda urmatoare el va fi analizat si confruntat cu lower thresh. Daca este
mai mic decat acesta, in secunda ce urmeaza celei in care s-a blocat traficul frame-urile de acel tip
(unicast / broadcast / multicast) vor fi permise. In caz contrar, vor fi din nou blocate frame-urile de
acel tip.
Cu cat upper threshold este mai mare cu atat este mai ineficienta politica de suprimare a
traficului. Daca se configureaza upper threshold egal cu 0.0, se va bloca efectiv accesul in switch a
acelui tip de trafic pe respectivul port.

Exemplu de intervale de timp de 1 secunda si de limite upper si lower:

Switchul, poate fi configurat per port, sa reactioneze, in urma depasirii upper thresh, in 4
feluri:
1. sa blocheze respectivul trafic in secunda urmatoare – conduita descrisa mai sus (este un
comportament default)
2. sa genereze un mesaj in sistemul de Syslog (este un comportament default)
3. sa duca portul in err-disabled. In acest caz se va dezactiva intregul port, indiferent ca
traficul excedentar a fost de tip unicast, broadcast sau multicast.
4. sa genereze un mesaj SNMP Trap destinat NMS (Network Management Station).

Switchul poate fi configurat sa utilizeze comportamentul 3 independent de comportamentul 4.

In conditiile blocarii traficului de tip multicast la nivelul unui port se vor accepta totusi
mesajele frame-urile de control CDP si BPDU.

Frame-urile tagate mai mici de 67 de bytes sunt considerate small-frames. Ele sunt
forwardate (!) de catre switch dar nu sunt contorizate de storm-control.
Incepand cu IOS vers 12.2(44)SE se poate cere IOS-ului sa duca in err-disable un port daca
primeste un numar mai mare de frame-uri mici per secunda (pps) decat cel configurat pe respectivul
port. By default nu exista o limita configurata.

InfoAcademy Page 6
Configurare:

Switch(config)# interface fa0/1


Switch(config-if)# storm-control { unicast | broadcast | multicast } { level <upper-tresh>
[<lower-thresh>] | bps <upper-tresh> [<lower-
thresh>] | pps <upper-tresh> [<lower-thresh>] }
Switch(config-if)# storm-control action { shutdown | trap }

Switch(config)# err-disable recovery cause small-frame


Switch(config)# interface fa0/1
Switch(config-if)# small-frame violation-rate <1-10000pps>

Vizualizare & Depanare:


Switch# show storm-control [<intf>] { unicast | broadcast | multicast }

Switch# debug storm-control {detection | statistics }

InfoAcademy Page 7