Sicurezza Switch
Blog post description.
CCNA
Nella rete possiamo vedere che il server DHCP non si trova nella stessa sottorete degli host, quindi dobbiamo configurare sul router l'helper address:
R1(config)#interface f0/1
R1(config-if)#ip helper-address 10.10.20.10




Ora vediamo cosa succede con un server rogue DHCP.
Quando i client (PC1 e PC2) inviano richieste DHCP in broadcast, queste arriveranno prima al server Rogue, configurato anche come Default Gateway e server DNS, che non permetterà ai client di accedere alla rete.
Per risolvere il problema possiamo attivare il DHCP Snooping, quando è attivo le richieste DHCP vengono droppate se non vengono ricevute da una porta trusted.
Prima si attiva lo snooping in generale, quindi lo si attiva per la VLAN e si configura lo snooping sulle porte a livello interfaccia:
SW1(config)#ip dhcp snooping
SW1(config)#ip dhcp snooping vlan 10
SW1(config)#int f0/1
SW1(config-if)#ip dhcp snooping trust
Man in the Middle ARP Spoofing
Vediamo le misure di sicurezza implementate al livello 1 degli switch.
DNC Snooping


Immaginiamo che un Attacker sia riuscito a connettersi alla rete locale.
Ora può mandare due Gratuitous ARP (pacchetti d'update ARP che non hanno bisogno di essere richiesti): uno a R1 con il suo indirizzo MAC 3.3.3.3 e l'indirizzo IP spoofato di PC1 (10.10.10.10)e l'altro a PC1 con indirizzo MAC 3.3.3 e l'indirizzo IP spoofato di R1 (10.10.10.1).
Ora PC1 e R1 aggiornano le loro cache ARP ed otteniamo:


Adesso l'Attacker è riuscito ad eseguire un attacco Man In The Middle ARP Spoofing ed ogni volta che PC1 invia traffico a R1 e viceversa, l'Attacker è in grado di sniffarlo perché si trova in mezzo ai due dispositivi comunicanti.
Per risolvere questo problema possiamo usare il DAI.
Dynamic ARP Inspection - DAI
Quando si attiva il DHCP snooping, lo switch ispeziona il traffico DHCP e tiene traccia di quali indirizzi IP erano legati a quali indirizzi MAC.
Per esempio, PC1 con MAC 1.1.1 corrisponde a 10.10.10.10.
Se del traffico ARP non valido cerca di attraversare lo switch, per esempio MAC 3.3.3 dicendo che è 10.10.10.10, lo switch droppa il traffico.
Configuriamo il DAI sullo switch:
SW1(config)#int f0/1
SW1(config-if)#ip arp inspection trust
SW1(config-if)#ip arp inspection vlan 10
Con i primi comandi si attiva il DAI sulle interfacce NON trusted collegati a client non DHCP.
Per gli altri client DHCP (come altri PC) si usa il secondo comando che lavora a livello VLAN.
802.1x Identity Based Networking
Quando 802.1x è attivo, solo il traffico autenticato può passare sulle porte dello switch fino a quando l'host e l'user sono autenticati.
Quando l'user inserisce un nome utente e una password validi, la porta switch passa ad una normale porta di accesso nella VLAN relativa.


In questo caso l'utente (Supplicant) inserisce un nome utente e una password validi che verranno inoltrate al server d'autenticazione (di solito integrato da un Active Directory Domain Controller che contiene il database degli utenti con relative password) dallo switch authenticator.
Se le credenziali inserite sono valide il Supplicant ha accesso al resto della rete.
Misure di sicurezza aggiuntive
Vediamo ora come migliorare la sicurezza tramite alcuni piccoli accorgimenti:
Chiudere le interfacce non usate: Usare il comando "shutdown" sulle interfacce non usate dello switch. Questo previene l'accesso a chiunque dovesse collegarsi fisicamente alla porta.
SW1(config)#int f0/2
SW1(config-if)#shutdownPort Security: Questo permette ad un admin di specificare quali indirizzi MAC possono mandare del traffico ad una porta specifica.
Questo rende possibile solo per quell'host predefinito di poter inviare del traffico da quella porta.
Infatti anche se qualcuno dovesse scollegare il PC1 per collegare il proprio dispositivo, avendo questo un indirizzo MAC diverso da PC1, non potrà inviare del traffico perché SW1 ricorda l'indirizzo MAC 1.1.1.
Attenzione: è facile spoofare un indirizzo MAC, quindi Port Security non è indicato come unica sicurezza.
Port Security può anche configurare più porte per permettere solo un numero specifico di indirizzi MAC che possono mandare traffico nelle porte.
Può anche imparare gli indirizzi MAC connessi.
Utile per prevenire l'aggiunta di WAP.
Configurazione:SW1(config)#int f0/2
SW1(config-if)#switchport port-securitySe si configura Port Security in questo modo senza aggiungere altri parametri allora solo un indirizzo MAC può trasmettere sulla porta.
Ciò significa che l'indirizzo MAC attuale può essere disconnesso e rimpiazzato perché la porta non è bloccata su un indirizzo MAC particolare.
Se un dispositivo condiviso è connesso e più host cercano di trasmettere, la porta verrà chiusa.
Abbiamo tre opzioni per quando un indirizzo MAC cerca di inviare il traffico nella porta:


Shutdown: L'interfaccia entra nello stato error-disabled che blocca tutto il traffico. Per riportarla in funzione bisogna rimuovere fisicamente l'host non voluto ed eseguire un riavvio dell'interfaccia con i comandi "shutdown" e "no shutdown". E' anche possibile riportare automaticamente le porte online dopo un periodo di tempo configurabile (in secondi)
SW1(config)#errdisable recovery cause psecure-violation
SW1(config)#errdisable recovery interval 600Protect: Il traffico da indirizzi non autorizzati viene droppato. Il traffico dagli indirizzi permessi viene inoltrato
Restrict: Il traffico da indirizzi non autorizzati viene droppato, loggato e il contatore violazioni incrementato. Il traffico dagli indirizzi permessi viene inoltrato.
Configurazione:
SW1(config)#int f0/2
SW1(config-if)#switchport port-security violation protect
SW1(config-if)#switchport port-security violation restrict
Quando Port Security è attivo di default il numero massimo di indirizzi MAC che possono trasmettere è 1, ma può essere aumentato se più host convidono una porta, per esempio un telefono IP con un PC collegatogli dietro.
SW1(config)#interface f0/2
SW1(config-if)#switchport port-security maximum 2
Per vedere le impostazioni di sicurezza sull'interfaccia si usa il comando "show port-security int f0/2".
Si può configurare manualmente indirizzi MAC statici se si vuole bloccare una porta ad un host in particolare:
SW1(config)#interface f0/10
SW1(config-if)#switchport port-security
SW1(config-if)#switchport port-security mac-address 1111.2222.3333
SW1(config-if)#swithport port-security maximum 1
Nel caso dovessimo bloccare molti host su una porta usiamo gli indirizzi MAC "sticky" che aggiungono il MAC appena imparato nella running-configuration e basta salvarli nella startup-config per renderli permanenti:
SW1(config)#interface f0/2
SW1(config-if)#switchport port-security
SW1(config-if)#switchport port-security mac-address sticky
Per verificare gli indirizzi MAC permessi si usa il comando "show port-security address".
Per verificare le informazioni di Port Security si può usare il comando "show port-security".