Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Le ACL sono liste ordinate di condizioni applicate al traffico che definiscono se i pacchetti sono accettati o meno in ingresso o
in uscita da una interfaccia di un router; si può definire una sola ACL per interfaccia, per direzione e per protocollo.
Le ACL forniscono quindi un livello base di sicurezza in quanto decidono quali tipi di traffico inviare o bloccare; allo stesso
tempo limitano il traffico incrementando le prestazioni della rete. Quando arriva un pacchetto la IOS controlla se esiste una
ACL per l’interfaccia in ingresso del router, dopodiché in base alla routing table si decide dove inviare il pacchetto ed infine la
IOS controlla se esiste una ACL sull’interfaccia di uscita. Nella scrittura delle ACL, l’ordine delle righe è molto importante
perché il Cisco IOS le analizza dalla cima in giù e se una condizione è verificata non procede oltre. In fondo alla lista c’è
sempre una riga implicita di deny any (in fig. Default Deny), quindi se si usa una ACL viene lasciato passare solo quello che è
stato specificatamente permesso.
Esempio
R1(config)#access-list 1 permit 192.168.200.0 0.0.0.255 log
Dove deny indica che il pacchetto matchato dalla ACL va buttato, in caso di permit il pacchetto matchato dalla
ACL va permesso; remark indica una nota molto utile per scrivere delle informazioni utili all’ interpretazione
della ACL; l’opzione log genera a seconda della configurazione, un messaggio a video o verso il syslog server
ogni 5 minuti col numero di pacchetti permessi o vietati. Se non c’è wildcard mask è come se fosse 0.0.0.0.
- Sintassi ACL numerica Estesa:
Router(config)#access-list n°ACL [deny|permit|remark] protocollo IP-sorgente wildcard-sorgente [operatore]
(porta] IP-destinazione wildcard- destinazione [operatore] (porta] [log] [established]
Esempio
R1(config)#access-list 101 permit tcp 192.168.200.0 0.0.0.255 any eq 80
l’opzione established controlla che i pacchetti di ritorno di una connessione TCP abbia i flag ACK o RST a 1.
Per la scelta della/delle porte TCP/UDP si possono usare questi operatori logici: eq (=), neq (≠), gt (>), lt (<)
ACL Nominali (Named): Le named ACL sono presenti dalla versione IOS 11.2 e permettono alle ACL standard ed
estese di avere un nome al posto di un numero. Con le ACL nominali è più intuitivo identificare le ACL; inoltre si può
modificare una ruga della ACL nominale senza cancellarla e inserire una nuova ACL intermedia perché vengono
lasciate automaticamente 10 posizioni libere tra una riga e l’altra.
- Sintassi ACL named Standard
Router(config)#ip access-list standard name
Router(config-std-nacl)# [deny|permit|remark] IP-sorgente wildcard-sorgente [log]
Esempio
R1(config)#access-list ACL-dipendenti-rete-10
Router(config-std-nacl)# permit 192.168.10.0 0.0.0.255
- Sintassi ACL named Estesa
Router(config)#ip access-list extended name
Router(config-ext-nacl)#[deny|permit|remark] protocollo IP-sorgente wildcard-sorgente [operatore]
(porta] IP-destinazione wildcard- destinazione [operatore] (porta] [log] [established]
Esempio
R1(config)#access-list ACL-navigazione-dipendenti-rete-10
Router(config-ext-nacl)# permit tcp 192.168.10.0 0.0.0.255 any eq 80
In tutti i casi nella scrittura delle ACL numeriche o nominali, si possono usare le seguenti abbreviazioni:
host sostituisce una maschera wildcard 0.0.0.0 che indica un sinolgo indirizzo IP (es. 192.168.10.10 0.0.0.0 si può
usare host 192.168.10.10)
any sostituisce indirizzo IP con wildcard 255.255.255.255 per indicare qualunque indirizzo IP (es. 0.0.0.0
255.255.255.255, si può usare any)
Una volta definite le ACL numeriche o nominali, queste per essere attivate vanno applicate all’interfaccia indicando la
direzione di controllo tramite il comando ip access-group
Router(config)#interface <interfaccia>
Router(config-if)#ip access-group {access-list-number | access-list-name} {in | out}
Esempi di ACL
Router(config-if)# ip access-group 10 in
Router(config)#access-list 101 remark le ACL permettono traffico ftp di controllo e dati dalla rete 192.168.21.0/24
Router(config)#access-list 101 permit tcp 192.168.21.0 0.0.0.255 any eq 21
Router(config)#access-list 101 permit tcp 192.168.21.0 0.0.0.255 any eq 20
Router(config)#access-list 101 remark la ACL permette il traffico client (hanno porta TCP maggiore di 1024) dalla
sottorete 192.168.19.0/28
Router(config)#access-list 101 permit tcp 192.168.19.0 0.0.0.15 any gt 1024
Router(config)#interface FastEthernet 0/0
Router(config-if)# ip access-group 101 in
ACL complesse
1. Dynamic ACL: le ACL dinamiche sono utilizzate per creare della ACL che hanno validità entro un certo timeout e previa
autenticazione dell’utente. Ad esempio definiamo un’ACL dinamica che permette all’utente hannah con indirizzo IP
192.168.10.10 di accedere al server 192.168.20.254 previa autenticazione al router/firewall con indirizzo 10.1.1.2
2. Reflexive ACL: sono utilizzate per effettuare dei controlli di congruenza sul traffico di ritorno a fronte di una connessione
TCP, UDP o più in generale IP aperta tra due host remoti. Ad esempio definiamo un’ACL reflexive che permetta di
ispezionare il traffico di ritorno di una connessione IP aperta da PC1 verso Outside Host.
3. Time Based ACL o ACL temporali: sono utilizzate per fissare un intervallo di tempo di validità di una specifica regola
di ACL. Ad esempio definiamo un’ACL che permetta di bloccare il traffico WEB Internet (porta TCP/80) tutti i giorni
lavorativi (weekdays) durante l’orario di lavoro (7:00-18:00).