Sei sulla pagina 1di 4

ACL (Access Control Lists)

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.

Esistono due tipi di ACL:


 ACL Standard con le quali si possono solo controllare gli indirizzi IP sorgenti; si mettono vicino alla destinazione.
 ACL Estese: sono più usate perché permettono di effettuare maggiori controlli tra cui gli indirizzi IP sorgenti e di
destinazione, il protocollo di livello Rete come IP,IPX, AppleTalk, il protocollo di livello superiore ad IP come TCP e
UDP con le relative porte di servizio.Tali ACL vanno messe il più vicino possibile alla sorgente.
Da notare che le IP access list mandano un messaggio ICMP di destinazione irraggiungibile se rifiutano un pacchetto.
Da notare che nella scrittura delle IP ACL si usa la wildcard mask per indicare il range di IP da controllare; la wildcard si
calcola facendo 255.255.255.255-netmask: dove ci sono “1”, i corrispondenti bit dell’indirizzo IP sono non controllati
(indifferenti), mentre dove ci sono gli “0” i corrispondenti bit dell’indirizzo IP devono coincidere.
Sia le ACL standard che estese possono essere scritte in modo numerico o nominale (named).
 ACL Numeriche: Le ACL sono inserite nel modo di configurazione globale; ogni ACL deve avere un numero che le
raggruppa insieme. Ogni nuova ACL inserita viene aggiunta automaticamente alla fine della lista; per modificare o
cancellare una ACL di tipo numerico o per inserire una nuova ACL in mezzo ad altre, occorre cancellare l’intero
gruppo di ACL e ricrearla (per rendere le cose più semplici si può usare Notepad e fare copia e incolla); il comando da
dare per cancellare la lista di ACL è Router(config)#no access-list n°ACL. Le ACL numeriche sono identificate
come di tipo IP standard o IP esteso o altro protocollo di rete a secondo se il numero appartiene a uno di questi
gruppi.
 IP standard 1 – 99 e 1300-1999
 IP esteso 100 – 199 e 2000-2699
 AppleTalk 600 – 699
 IPX standard 800 – 899
 IPX esteso 900 – 999
- Sintassi ACL numerica Standard:
Router(config)#access-list n°ACL [deny|permit|remark] IP-sorgente wildcard-sorgente [log]

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

Esempio 1: controllare traffico in ingresso all’interfaccia fe 0/0 di un router


1fase) Definiamo il gruppo di ACL standard identificate dal numero 10
Router(config)#access-list 10 deny host 192.168.10.1

Router(config)#access-list 10 permit 192.168.10.0 0.0.0.255

Router(config)#access-list 10 deny 192.168.0.0 0.0.255.255

Router(config)#access-list 10 permit 192.0.0.0 0.255.255.255

2) Applichiamo il gruppo di ACL 10 in ingresso all’ interfaccia FastEthernet 0/0


Router(config)#interface FastEthernet 0/0

Router(config-if)# ip access-group 10 in

Esempio 2: controllare traffico di gestione su un router


Si possono utilizzare le ACL standard per restringere per sicurezza l’accesso alle linee vty usando il comando access-class
anziché access-group; in questo caso si possono usare solo le ACL numerate e non nominali. Nell’esempio permettiamo
l’accesso telnet o SSH al router dalle reti 172.16.1.0/24 e 172.16.2.0/24; gli accessi da altre sottoreti sono di default vietati.
Esempio 3: access list estese numeriche
Router(config)#access-list 101 remark questa ACL permette il traffico telnet dalla rete 192.168.20.0/24
Router(config)#access-list 101 permit tcp 192.168.20.0 0.0.0.255 any eq 23

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

Esempio 4: access list estese nominali

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

Queste sono le fasi del colloquio per tra l’ utente e il router/firewall R2


prima di permettere la raggiungibilità del server remoto 192.168.20.254
Queste sono le fasi di configurazione effettuata
sul router/firewall R2 per il nostro scopo:
1) Configurazione account utente hannah in
locale sul router
2) ACL che permette all’ host 192.168.10.10
di collegarsi in telnet al router 10.1.1.2.
3) ACL dinamica che permette per 90 minuti
l’ accesso all’ host 192.168.10.10 di
collegarsi al server interno 192.168.20.254
4) attivazione del controllo del traffico in
Ingresso all’interfaccia seriale secondo le
ACL 101 definite ai passi precedenti
5) Il comando autocommand dato a livello di vty 0 4 permette di chiudere automaticamente la connessione telnet aperta
precedentemente per autenticare hannah che ha 2 minuti di tempo per autenticarsi.

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).

Comandi di verifica (troubleshooting) delle ACL


 Router# show interfaces mostra informazioni IP dell’interfaccia e indica se ci sono le ACL applicate
 Router# show access-lists mostra il contenuto di tutte le ACL; per vedere l’output di tutte le regole inerenti una
specifica ACL va indicato il numero della ACL (es. Router# show access-lists 100)
 Router# show running-config mostra tutte le ACL configurate e le informazioni sull’ interfaccia e verso di
assegnazione.

Potrebbero piacerti anche