Cisco - Cybersecurity - Network

Port Security su Switch Cisco

Quando si parla di attacchi alla rete aziendale si pensa sempre a qualcosa di esterno attraverso exploit sofisticati. Nella realtà molte volte arrivano dall’interno, spesso da qualcuno che semplicemente collega un dispositivo non autorizzato in una porta libera.

La Port Security è uno degli strumenti che ci può aiutare a proteggerci da queste situazioni, semplice da configurare, ma molto efficace quando implementata correttamente.

Come funziona

La Port Security opera sulla base di un principio semplice: ogni porta ha una lista di MAC address autorizzati e un limite sul numero massimo di MAC che può accettare. Quando arriva un MAC non in lista o che supera il limite configurato, scatta una violazione.

Gli indirizzi in questa tabella possono essere di tre tipi:

  • Statici: configurati manualmente dall’amministratore, persistono nel file di configurazione
  • Dinamici: appresi automaticamente durante il normale traffico, ma persi al riavvio o allo shutdown della porta
  • Sticky: lo switch li apprende dinamicamente come i dinamici, ma li converte automaticamente in entry statiche nella running-config. Se si fa un write memory, vengono mantenuti anche dopo un reboot

Come configurarla

La Port Security ha un prerequisito fondamentale: funziona solo su porte access!

Switch(config)# interface GigabitEthernet 0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10

ora possiamo configurare la Port Security con il comando

Switch(config-if)# switchport port-security

In questo modo la porta accetta 1 MAC Address, quello del primo dispositivo che trasmette, e la Violation Action è shutdown (default). Possiamo definire manualmente il numero massimo di MAC Address accettati su una porta con il comando

Switch(config-if)# switchport port-security maximum 3

Quando si conosce in anticipo il MAC Address del dispositivo autorizzato, la configurazione statica è la più sicura

Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 1
Switch(config-if)# switchport port-security mac-address 00A1.B2C3.D4E5
Switch(config-if)# switchport port-security violation shutdown

Il MAC statico richiede che si conoscano tutti i MAC in anticipo. Sticky è la soluzione che offre un compromesso tra sicurezza e praticità

Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 1
Switch(config-if)# switchport port-security mac-address sticky
Switch(config-if)# switchport port-security violation restrict

Dopo che il dispositivo si connette per la prima volta, il suo MAC viene appreso e inserito nella configurazione

switchport port-security mac-address sticky 00A1.B2C3.D4E5

A questo punto, qualsiasi dispositivo diverso che provi a connettersi verrà bloccato. Attenzione, va eseguito write memory dopo la fase di learning iniziale, altrimenti le entry sticky vengono perse al prossimo riavvio dello switch.

Le tre violation actions

La scelta della violation action ha implicazioni operative.

  • Shutdown: la porta entra in stato err-disabled, tutto il traffico si ferma e viene generato un log. Per tornare operativa, la porta deve essere spenta e riaccesa manualmente o tramite errdisable recovery
Switch(config-if)# switchport port-security violation shutdown

  • Restrict: i pacchetti con MAC non autorizzati vengono bloccati, ma la porta rimane operativa e il contatore delle violazioni viene incrementato generando un log. Possiamo quindi vedere quando avvengono le violazioni, e quante, senza impattare il servizio
Switch(config-if)# switchport port-security violation restrict

  • Protect: come restrict, ma senza log e senza incremento del contatore e il traffico non autorizzato viene semplicemente scartato. Questa opzione è raramente utilizzata.
Switch(config-if)# switchport port-security violation protect

Una delle operazioni più frequenti in un ambiente con Port Security attiva è il recupero di porte finite in err-disabled. Farlo manualmente

Switch(config)# interface GigabitEthernet 0/1
Switch(config-if)# shutdown
Switch(config-if)# no shutdown

è accettabile su reti di piccole dimensioni. Su reti di grandi dimensioni, il recovery automatico è quasi indispensabile

Switch(config)# errdisable recovery cause psecure-violation
Switch(config)# errdisable recovery interval 300

Con questa configurazione, lo switch tenta automaticamente di riabilitare la porta ogni 300 secondi (5 minuti).

  • se la violazione è stata un evento temporaneo, la porta torna operativa senza intervento umano
  • se la violazione persiste, la porta torna in err-disabled

Verifica e troubleshooting

Con il comando

Switch# show port-security interface GigabitEthernet 0/1

Port Security              : Enabled
Port Status                : Secure-shutdown
Violation Mode             : Restrict
Aging Time                 : 0 mins
Aging Type                 : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 2
Total MAC Addresses        : 1
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 1
Last Source Address:Vlan   : 00A1.B2C3.D4E5:10
Security Violation Count   : 0

viene visualizzato lo stato della porta. Se la voce “Port Status” è “Secure-shutdown“, la porta è in err-disabled per una violazione.

Per avere invece una visualizzazione globale, il comando

Switch# show port-security

visualizza tutte le porte con Port Security abilitata, il loro stato, il numero di MAC autorizzati e il contatore delle violazioni.

Switch# show port-security address

visualizza tutti i MAC address sicuri, il tipo (Static/Dynamic/Sticky), la VLAN e la porta associata.

Switch# show interfaces status err-disabled

permette di vedere la lista delle porte problematiche e la causa del blocco.

Conclusione

La Port Security non è la soluzione definitiva alla sicurezza di rete ma è uno dei controlli più efficaci in rapporto allo sforzo per implementarla. Per ambienti che richiedono un livello di sicurezza superiore, la soluzione è affiancarla (o sostituirla) con 802.1X che autentica il dispositivo o l’utente tramite credenziali crittografiche su un server RADIUS (FreeRADIUS, Cisco ISE, Microsoft NPS).