Basic IPv4 Access List 1
Concetti Base di Access List Access List è un metodo di sicurezza che permette ad un router Cisco di poter bloccare determinati flussi dati e permetterne degli altri. Ad esempio è possibile bloccare il traffico generato da una sottorete oppure bloccare il traffico diretto verso un indirizzo IP specifico. La prima cosa da fare consiste nel creare un gruppo di regole. Ciascuna regola identifica il traffico in termini di indirizzo IP sorgente e destinazione. Per ciascuna regola è poi riportata l azione da intraprendere: Permetti (Permit) o Blocca (Deny). Il gruppo di regole deve essere poi applicato sull interfaccia da cui proviene/è destinato il traffico. Capiamo meglio quanto detto con un esempio. 2
Supponiamo di voler bloccare il traffico generato da A e diretto a C e di permettere invece il traffico generato da B e diretto a C. La prima cosa da fare è individuare la direzione del flusso dati. Come puoi vedere i dati entrano dall interfaccia Fa0/0 di R1, escono da Se0/0; entrano nuovamente nell interfaccia seriale di R2 e infine escono dall interfaccia Fa0/0. Definire l interfaccia di entrata e uscita di ciascun router come vedremo è di fondamentale importanza. 3
Il passo successivo consiste nel creare un elenco di regole (rules o policy) per identificare il traffico da analizzare. Nel caso dell esempio, il gruppo sarà quindi composto dalle seguenti regole: # Sorgente Destinazione Azione 1 A C Blocca (Deny) 2 B C Permetti (Permit) Come vedi a ciascuna rules è associato anche un numero progressivo 1,2. Il tutto va implementato sui router R1 e R2. 4
Una volta attivate le ACL, ciascun router verifica per ogni pacchetto ricevuto se esiste corrispondenza con una o più regole. In altri termini, per ciascun pacchetto, il router controlla se Source e Destination IP corrispondono a quelli riportati nelle regole. Se c è un riscontro (match) il router applica l azione prevista dalla regola. Supponiamo che A invii un pacchetto a C. Ciascun router opera come segue: 1. Rileva i valori Source e Destination IP del pacchetto ricevuto 2. Verifica se sono presenti rules tali che: Source IP = A Destination IP= C 5
3. Esiste un riscontro nella riga 1 (esiste un matching), quindi il router applica l azione prevista dalla rules, ovvero Deny 4. Il pacchetto viene bloccato e scartato Facciamo un altro esempio: supponiamo che sia ora B ad inviare un pacchetto a C. In questo caso, ciascun router opera come segue: 1. Rileva i valori Source e Destination IP del pacchetto ricevuto 2. Verifica se sono presenti rules tali che: Source IP = B Destination IP= C 6
3. Esiste un riscontro nella riga 2 (esiste un matching), quindi il router applica l azione prevista dalla rules ovvero Permit 4. Il pacchetto viene inoltrato. In entrambi i casi le regole sono analizzate in maniera sequenziale: inizia dalla regola n 1, se c è matching si intraprende l azione, altrimenti il router esamina la regola n 2: anche in questo se non c è riscontro, si passa alla regola successiva, via via finché tutte le policy non sono state esaminate. 7
Standard Numbered Access List Esistono differenti tipologie di access-list. Le principali distinzioni riguardano: I campi che possono essere esaminati: Una Standard Access List può esaminare solo il Source IP del pacchetto Una Extended Access List può esaminare anche il Destination IP, porta sorgente e destinazione e altri campi Modalità di configurazione: 8
Una Numbered Access List è identificata per mezzo di un numero e utilizza solo comandi globali Una Named Access List è identificata per mezzo di un nome e permette l utilizzo di sotto comandi. In questa sezione analizzeremo le access-list (o ACL) di tipo Standard Numbered. In una Standard Numbered ACL il matching può avvenire esclusivamente sulla base dell indirizzo IP sorgente. A ciascuna ACL è assegnato un identificativo ID numerico compreso tra i valori 1 e 99. Torniamo a considerare lo scenario visto in precedenza. 9
In questo caso su ciascun router deve essere implementata la seguente lista di regole: # Sorgente Azione 1 A Blocca (Deny) 2 B Permetti (Permit) 10
Come vedi è assente la colonna Destinazione in quanto il matching può essere effettuato analizzando solo il campo sorgente. Come detto prima, la tabella viene analizzata dai router in maniera lineare e la ricerca di match si interrompe una volta trovata una corrispondenza. Proprio per questo motivo è fondamentale non commettere errori nella creazione delle regole. Cosa succede se avviene quanto proposto in tabella? # IPSorgente Azione 1 B (192.168.244.100) Blocca (Deny) 2 A (192.168.244.50) Permetti (Permit) 3 B (192.168.244.100) Permetti (Permit) 11
In questo caso il router analizzando la prima riga, bloccherebbe il traffico generato da B, nonostante la presenza in 3 riga di un Permit. Le ACL possono essere utilizzate anche per permettere o bloccare il flusso dati di un intera subnet o porzione di essa. Per far ciò utilizza il concetto di Wildcard Mask precedentemente visto per OSPF. La wildcard mask è una stringa a 32 bit espressa in formato DDN: è quindi composta da quattro ottetti decimali separati da un punto. Se un ottetto assume valore decimale: 0: il router compara il relativo ottetto dell indirizzo 255: il router lo ignora (l ottetto dell IP può assumere qualsiasi valore) 12
Nell esempio saranno comparati i primi tre ottetti in quanto il valore della Wildcard Mask è a 0, mentre il quarto ottetto può assumere qualsiasi valore. In questo caso le access rules sono organizzate come descritto in tabella. 13
# IP/Subnet Sorgente Wildcard Mask Azione 1 A (192.168.244.50) 0.0.0.0.0 Blocca (Deny) 2 192.168.38.0 0.0.0.255 Permetti (Permit) 3 172.16.25.83 0.0.255.255 Blocca (Deny) Il router agisce quindi come segue: 1. Blocca il traffico generato dall host 192.168.244.50, in quanto la wildcard mask impone la comparazione di tutti gli ottetti 2. Consente il traffico generato da tutti gli indirizzi IP del tipo 192.168.38.x, in quanto la wildcard mask impone la 14
comparazione dei soli primi tre ottetti, mentre il 4 può assumere valore qualsiasi 3. Blocca il traffico generato da tutti gli indirizzi IP del tipo 172.16.x.x, in quanto la wildcard mask impone la comparazione dei soli primi due ottetti: 3 e 4 possono assumere valore qualsiasi Un access list può essere utilizzata per permettere/negare il traffico generato da un intera subnet. La procedura da seguire per il calcolo della wildcard mask è semplice e deve essere svolta in questo modo: 15
1. Utilizza il Subnet ID come indirizzo principale del comando access-list 2. La Wildcard Mask è il valore ottenuto sottraendo a 255.255.255.255 il valore DDN della subnet mask. Quale è ad esempio la wildcard mask da utilizzare per includere nell ACL tutti gli indirizzi della rete 172.16.8.0/255.255.252.0? 255.255.255.255-255.255.252.0 = 0. 0. 3. 255 La wildcard mask è quindi 0.0.3.255 16
Spesso può esser richiesto di calcolare il range di indirizzi IP che possono trovare corrispondenza in un access-list. Come vedremo nel prossimo paragrafo, un ACL è implementabile su IOS per mezzo del comando access-list access-list-number {deny permit} source [sourcewildcard] ad esempio: access-list 1 permit 172.16.200.0 0.0.7.255 Il limite inferiore del range è rappresentato dal campo source (172.16.200.0) mentre quello superiore si ottiene sommando a tale campo il valore DDN della wildcard mask: 17
172.16. 200. 0 + 0. 0. 7.255 = 172.16. 207. 255 Quindi, nell esempio: Limite inferiore Range: 172.16.200.0 Limite superiore Range: 172.16.207.255 Configurazione IOS Standard Numbered ACL La configurazione access-list su Cisco IOS deve essere implementata nel seguente modo: 18
1. Innanzitutto è necessario individuare i router, le interfacce e le direzioni su cui abilitare l ACL. Tiene bene a mente che: Le Standard ACL devono essere configurate il più vicino possibile alla destinazione del pacchetto Le Extended ACL devono essere configurate il più vicino possibile alla sorgente del pacchetto 19
Le standard ACL possono comparare solo gli indirizzi IP sorgente; identifica quindi l interfaccia del router da cui provengono i pacchetti e le direzioni dei flussi 2. Da Global Configuration Mode configura una o più access-list con il comando access-list access-list-number {deny permit} source [sourcewildcard] Le ACL sono lette in maniera sequenziale: quando viene riscontrato un match, il router non legge ulteriori righe. In genere l ultima ACL è detta Implicit Deny any any in quanto nega tutto il traffico di rete. 20
3. E necessario associare le ACL all interfaccia del router, specificando anche la direzione. Per farlo accedendo al Context Interface dare il comando: ip access-group number {in out} La figura che segue illustra un esempio di configurazione. 21
L ACL 1 è configurata in modo da: Permettere il traffico generato dall IP 10.1.1.1 Negare il traffico generato dagli indirizzi IP che iniziano per 10.1.1.x (dove x può assumere qualsiasi valore) Permettere il traffico generato dagli indirizzi IP che iniziano per 10.0.x.x (dove x può assumere qualsiasi valore) L ACL 1 è poi applicata al traffico in ingresso all interfaccia Seriale0/0/1 del router R2. Infine, l ACL è configurata solo su R2, in quanto è il router topologicamente più vicino alla destinazione del pacchetto. In 22
questo modo si evita che R1 o altri router della catena possano scartare involontariamente traffico autorizzato. 23