Introduzione
 
  In questo documento vengono descritte configurazioni di esempio per gli Access Control List (ACL) IP di uso comune, che filtrano i pacchetti IP.
 
  Prerequisiti
 
   
  Requisiti
 
  Prima di provare questa configurazione, accertarsi di soddisfare i seguenti requisiti:
 
   
  Per ulteriori informazioni, consultare Indirizzamento IP e subnetting per nuovi utenti.
 
  Componenti usati
 
  Il documento può essere consultato per tutte le versioni software o hardware.
 
  Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
 
  Premesse
 
  In questo documento vengono illustrati alcuni ACL standard ed estesi di uso comune. Per informazioni più dettagliate sui diversi tipi di ACL supportati dal software Cisco IOS e su come configurare e modificare gli ACL, consultare il documento sulla configurazione degli elenchi degli accessi IP.
 
  Gli elenchi di controllo di accesso IP filtrano i pacchetti in base a:
 
   
   - Source address
- Indirizzo di destinazione
- Tipo di pacchetto
- Una combinazione dei due
Per filtrare il traffico di rete, gli ACL controllano se i pacchetti indirizzati sono inoltrati o bloccati sull'interfaccia del router. Il router esamina ogni pacchetto per stabilire se inoltrarlo o eliminarlo in base ai criteri specificati nell'ACL. I criteri dell'ACL includono:
 
   
   - Indirizzo di origine del traffico
- Indirizzo di destinazione del traffico
- Protocollo di livello superiore
Per creare un ACL come quello degli esempi di questo documento completare questi passaggi:
 
   
   - Creare un ACL.
- Applicare l'ACL a un'interfaccia.
L'ACL di indirizzi IP è una raccolta sequenziale di condizioni di autorizzazione e rifiuto che si applicano a un pacchetto IP. Il router confronta i pacchetti con le condizioni dell'ACL uno alla volta.
 
  La prima corrispondenza determina se il software Cisco IOS® accetta o rifiuta il pacchetto. Poiché il software Cisco IOS interrompe il test delle condizioni dopo la prima corrispondenza, l'ordine delle condizioni è critico. Se nessuna condizione corrisponde, il router rifiuta il pacchetto in base alla clausola implicit deny all.
 
  Questi sono esempi di ACL di indirizzi IP che è possibile configurare nel software Cisco IOS:
 
   
   - ACL standard
- ACL estesi
- ACL dinamici (lock and key)
- ACL con nome IP
- ACL riflessivi
- ACL con limiti di tempo e uso di intervalli
- Voci ACL IP con commento
- ACL basati sul contesto
- Proxy di autenticazione
- ACL turbo
- ACL con limiti di tempo distribuiti
Il formato della sintassi dei comandi di un ACL standard è access-list access-list-number{permit|deny} {host|source source-wildcard|any}.
 
  Gli ACL standard controllano il traffico confrontando l'indirizzo di origine dei pacchetti IP con gli indirizzi configurati nell'ACL.
 
  Gli ACL estesi controllano il traffico confrontando gli indirizzi di origine e di destinazione dei pacchetti IP con gli indirizzi configurati nell'ACL. È inoltre possibile rendere gli ACL estesi più granulari e configurarli per filtrare il traffico in base a criteri quali:
 
   
   - Protocollo
- Numeri di porta
- Valore DSCP (Differentiated Services Code Point)
- Valore di precedenza
- Stato del bit del numero di sequenza sincronizzazione (SYN)
I formati di sintassi del comando degli ACL estesi sono:
 
  IP
 
  access-list access-list-number [dynamic dynamic-name [timeout minutes]]
{deny | permit} protocol source source-wildcard destination destination-wildcard
 [precedence precedence] [tos tos] [log | log-input]
 [time-range time-range-name][fragments] 
  Protocollo ICMP (Internet Control Message Protocol)
 
  access-list access-list-number [dynamic dynamic-name [timeout minutes]] 
{deny | permit} icmp source source-wildcard destination destination-wildcard
 [[icmp-type] [icmp-code] | [icmp-message]] [precedence precedence] [tos tos] [log | log-input]
 [time-range time-range-name][fragments] 
  Protocollo TCP (Transmission Control Protocol)
 
  access-list access-list-number [dynamic dynamic-name [timeout minutes]] 
{deny | permit} tcp source source-wildcard [operator [port]] destination destination-wildcard [operator [port]]
 [established] [precedence precedence] [tos tos] [log | log-input]
 [time-range time-range-name][fragments] 
  Protocollo UDP (User Datagram Protocol)
 
  access-list access-list-number [dynamic dynamic-name [timeout minutes]] 
{deny | permit} udp source source-wildcard [operator [port]] destination destination-wildcard [operator [port]]
 [precedence precedence] [tos tos] [log | log-input]
 [time-range time-range-name][fragments] 
  Configurazione
 
  Questi esempi di configurazione utilizzano gli ACL di indirizzi IP più comuni.
 
  Consentire a un host selezionato di accedere alla rete
 
  Nell'immagine viene mostrato come a un host selezionato sia stata concessa l'autorizzazione di accesso alla rete. Tutto il traffico originato dall'Host B e destinato a NetA è autorizzato, mentre tutto il traffico originato da NetB e destinato a NetA è rifiutato.
 
  
 
  La tabella R1 mostra il modo in cui la rete concede l'accesso all'host. La tabella mostra che:
 
   
   -  La configurazione consente di accedere solo all'host con indirizzo IP 192.168.10.1 tramite l'interfaccia Ethernet 0 su R1. 
-  Questo host può accedere ai servizi IP di NetA. 
-  Nessun altro host in NetB può accedere a NetA. 
-  Nell'ACL non è stata configurata alcuna istruzione deny. 
Per impostazione predefinita, è presente una clausola implicit deny all alla fine di ogni ACL. Tutti i pacchetti non consentiti esplicitamente vengono rifiutati.
 
  R1
 
  hostname R1
!
interface ethernet0
 ip access-group 1 in
!
access-list 1 permit host 192.168.10.1
 
  Nota: l'ACL filtra i pacchetti IP da NetB a NetA, ad eccezione dei pacchetti provenienti dall'host B. I pacchetti provenienti dall'host B a NetA sono ancora consentiti.
 
  Nota: L'elenco degli accessi 1 dell'ACL permette 192.168.10.1 0.0.0.0 è un altro modo per configurare la stessa regola.
 
  Rifiutare l'accesso alla rete di un host
 
  Nell'immagine viene mostrato che il traffico proveniente dall'host B e destinato a NetA viene rifiutato, mentre tutto il resto del traffico proveniente da NetB e diretto ad accedere a NetA viene autorizzato.
 
  
 
  Questa configurazione rifiuta tutti i pacchetti dall'host 192.168.10.1/32 a Ethernet 0 su R1 e consente tutto il resto. È necessario usare il comando access list 1 allow any per autorizzare esplicitamente tutto il resto, in quanto con ogni ACL è presente una clausola deny all implicita.
 
  R1
 
  hostname R1
!
interface ethernet0
 ip access-group 1 in
!
access-list 1 deny host 192.168.10.1
access-list 1 permit any
 
  Nota: L'ordine delle istruzioni è fondamentale per il funzionamento di un ACL. Se l'ordine delle voci è invertito, come mostrato in questo comando, la prima riga trova l'indirizzo di origine di ogni pacchetto. Pertanto, l'ACL non riesce a impedire all'host 192.168.10.1/32 di accedere a NetA.
 
  access-list 1 permit any
access-list 1 deny host 192.168.10.1
 
  Consentire l'accesso a un intervallo di indirizzi IP contigui
 
  Nell'immagine viene mostrato come tutti gli host in NetB con indirizzo di rete 192.168.10.0/24 possano accedere alla rete 192.168.200.0/24 in NetA.
 
  
 
  Questa configurazione consente ai pacchetti IP la cui intestazione IP ha indirizzo di origine nella rete 192.168.10.0/24 e indirizzo di destinazione nella rete 192.168.200.0/24 di accedere a NetA. Alla fine dell'ACL è presente la clausola implicit deny all, che rifiuta tutto il resto del traffico in entrata su R1 attraverso Ethernet 0.
 
  R1
 
  hostname R1
!
interface ethernet0
 ip access-group 101 in
!
access-list 101 permit ip 192.168.10.0 0.0.0.255 192.168.200.0 0.0.0.255
 
  Nota: Nel comando access-list 101 allow ip 192.168.10.0 0.0.0.255.192.168.200.0.0.0.255, la maschera 0.0.255 è la maschera inversa della rete 192.168.10.0 con maschera 255.255.255.0. Per conoscere il numero di ACL che usano la maschera inversa l'indirizzo di rete deve corrispondere. Nella tabella, l'ACL autorizza tutti gli host con indirizzi di origine nella rete 192.168.10.0/24 e indirizzi di destinazione nella rete 192.168.200.0/24.
 
  Consultare la sezione Maschere in Configurazione degli ACL di indirizzi IP per ulteriori informazioni sulla maschera di un indirizzo di rete e su come calcolare la maschera inversa necessaria per gli ACL.
 
  Rifiutare il traffico Telnet (TCP, porta 23)
 
  Per risolvere problemi di protezione più elevati, è possibile disabilitare l'accesso Telnet alla rete privata dalla rete pubblica. Nell'immagine viene mostrato come il traffico Telnet da NetB (pubblico) destinato a NetA (privato) viene rifiutato, il che consente a NetA di avviare e stabilire una sessione Telnet con NetB, mentre tutto il resto del traffico IP viene autorizzato.
 
  
 
  Telnet utilizza TCP, porta 23. Questa configurazione mostra che tutto il traffico TCP destinato a NetA sulla porta 23 è bloccato, mentre il resto del traffico IP è consentito.
 
  R1
 
  hostname R1
!
interface ethernet0
 ip access-group 102 in
!
access-list 102 deny tcp any any eq 23
access-list 102 permit ip any any
 
  Consentire solo alle reti interne di avviare una sessione TCP
 
  Questa figura mostra che il traffico TCP originato proveniente da NetA e destinato a NetB è autorizzato, mentre il traffico TCP proveniente da NetB e destinato a NetA è rifiutato.
 
  
 
  Lo scopo dell'ACL in questo esempio è:
 
   
  Questa configurazione consente a un datagramma di passare attraverso l'interfaccia Ethernet 0 in entrata su R1 quando sono presenti:
 
   
  R1
 
  hostname R1
!
interface ethernet0
 ip access-group 102 in
!
access-list 102 permit tcp any any gt 1023 established
 
  Poiché la maggior parte delle porte conosciute per i servizi IP utilizza valori inferiori a 1023, qualsiasi datagramma con una porta di destinazione inferiore a 1023 o con un bit ACK/RST non impostato viene rifiutato da ACL 102. Pertanto, quando un host di NetB avvia una connessione TCP e invia il primo pacchetto TCP (senza bit di sincronizzazione/avvio (SYN/RST) impostato) per un numero di porta inferiore a 1023, il pacchetto viene rifiutato e la sessione TCP non riesce. Le sessioni TCP avviate da NetA e destinate a NetB sono consentite perché hanno bit ACK/RST impostati per i pacchetti di ritorno e usano le porte maggiori di 1023.
 
  Consultare la richiesta RFC 1700 per un elenco completo delle porte.
 
  Rifiutare il traffico FTP (TCP, porta 21)
 
  Nell'immagine viene mostrato come il traffico FTP (TCP, porta 21) e i dati FTP (porta 20 ) provenienti da NetB e destinati a NetA vengano rifiutati, mentre tutto il resto del traffico IP è autorizzato.
 
  
 
  FTP utilizza la porta 21 e la porta 20. Il traffico TCP destinato alla porta 21 e alla porta 20 viene rifiutato, mentre il resto è consentito esplicitamente.
 
  R1
 
  hostname R1
!
interface ethernet0
 ip access-group 102 in
!
access-list 102 deny tcp any any eq ftp
access-list 102 deny tcp any any eq ftp-data
access-list 102 permit ip any any
 
  Consentire il traffico FTP (FTP attivo)
 
  FTP può operare in due diverse modalità, dette attiva e passiva.
 
  Quando l'FTP funziona in modalità attiva, il server FTP utilizza la porta 21 per il controllo e la porta 20 per i dati. Il server FTP (192.168.1.100) si trova in NetA. Nell'immagine viene mostrato come il traffico FTP (TCP, porta 21) e i dati FTP (porta 20 ) provenienti da NetB e destinati al server FTP (192.168.1.100) siano autorizzati, mentre tutto il resto del traffico IP è rifiutato.
 
  
 
  R1
 
  hostname R1
!
interface ethernet0
 ip access-group 102 in
!
access-list 102 permit tcp any host 192.168.1.100 eq ftp
access-list 102 permit tcp any host 192.168.1.100 eq ftp-data established
!
interface ethernet1
 ip access-group 110 in
!
access-list 110 permit host 192.168.1.100 eq ftp any established
access-list 110 permit host 192.168.1.100 eq ftp-data any
 
  Consentire il traffico FTP (FTP passivo)
 
  FTP può operare in due diverse modalità, dette attiva e passiva.
 
  Quando l'FTP funziona in modalità passiva, il server FTP utilizza la porta 21 per il controllo e le porte dinamiche a partire dalla 1024 per i dati. Il server FTP (192.168.1.100) si trova in NetA. Nell'immagine viene mostrato come il traffico FTP (TCP, porta 21) e i dati FTP (porte maggiori o uguali a 1024) provenienti da NetB e destinati al server FTP (192.168.1.100) siano autorizzati, mentre tutto il resto del traffico IP è rifiutato.
 
  
 
  R1
 
  hostname R1
!
interface ethernet0
 ip access-group 102 in
!
access-list 102 permit tcp any host 192.168.1.100 eq ftp
access-list 102 permit tcp any host 192.168.1.100 gt 1023
!
interface ethernet1
 ip access-group 110 in
!
access-list 110 permit host 192.168.1.100 eq ftp any established
access-list 110 permit host 192.168.1.100 gt 1023 any established
 
  Consentire i ping (ICMP)
 
  Nell'immagine viene mostrato come l'ICMP proveniente da NetA e destinato a NetB sia autorizzato e i ping provenienti da NetB e destinati a NetA siano rifiutati.
 
  
 
  Questa configurazione consente solo i pacchetti echo-reply (risposta ping) in ingresso sull'interfaccia Ethernet 0 da NetB verso NetA. Tuttavia, la configurazione blocca tutti i pacchetti ICMP echo-request quando i ping sono originati in NetB e destinati a NetA. Pertanto, gli host in NetA possono eseguire il ping degli host in NetB, ma gli host in NetB non possono eseguire il ping degli host in NetA.
 
  R1
 
  hostname R1
!
interface ethernet0
 ip access-group 102 in
!
access-list 102 permit icmp any any echo-reply
 
  Consentire HTTP, Telnet, Mail, POP3, FTP
 
  Nell'immagine viene mostrato che è consentito solo il traffico HTTP, Telnet, SMTP (Simple Mail Transfer Protocol), POP3 e FTP e il resto del traffico proveniente da NetB e destinato a NetA viene rifiutato.
 
  
 
  Questa configurazione consente il traffico TCP con porte di destinazione che corrispondono ai dati WWW (porta 80), Telnet (porta 23), SMTP (porta 25), POP3 (porta 110), FTP (porta 21) o dati FTP (porta 20). Ricordiamo che una clausola implicita deny all alla fine di un ACL rifiuta tutto il traffico rimanente che non corrisponde alle clausole di autorizzazione.
 
  R1
 
  hostname R1
!
interface ethernet0
 ip access-group 102 in
!
access-list 102 permit tcp any any eq www
access-list 102 permit tcp any any eq telnet
access-list 102 permit tcp any any eq smtp
access-list 102 permit tcp any any eq pop3
access-list 102 permit tcp any any eq 21
access-list 102 permit tcp any any eq 20
 
  Consentire il traffico DNS
 
  Nell'immagine viene mostrato che è consentito solo il traffico DNS (Domain Name System) e il resto del traffico proveniente da NetB e destinato a NetA viene rifiutato.
 
  
 
  Questa configurazione consente il traffico TCP con porta di destinazione 53. La clausola implicita deny all alla fine di un ACL rifiuta tutto il traffico rimanente che non corrisponde alle clausole di autorizzazione.
 
  R1
 
  hostname R1
!
interface ethernet0
 ip access-group 102 in
!
access-list 102 permit udp any any eq domain 
access-list 102 permit udp any eq domain any
access-list 102 permit tcp any any eq domain 
access-list 102 permit tcp any eq domain any
 
  Consentire gli aggiornamenti routing
 
  Quando si applica un ACL in ingresso a un'interfaccia, assicurarsi che gli aggiornamenti di routing non vengano filtrati. Utilizzare l'ACL pertinente di questo elenco per autorizzare i pacchetti del protocollo di routing:
 
  Immettere questo comando per autorizzare il protocollo RIP (Routing Information Protocol):
 
  access-list 102 permit udp any any eq rip
 
  Immettere questo comando per autorizzare il protocollo IGRP (Interior Gateway Routing Protocol):
 
  access-list 102 permit igrp any any
 
  Immettere questo comando per autorizzare il protocollo EIGRP (Enhanced IGRP):
 
  access-list 102 permit eigrp any any
 
  Immettere questo comando per autorizzare il protocollo OSPF (Open Shortest Path First):
 
  access-list 102 permit ospf any any
 
  Immettere questo comando per autorizzare il protocollo BGP (Border Gateway Protocol):
 
  access-list 102 permit tcp any any eq 179 
access-list 102 permit tcp any eq 179 any
 
  Debug del traffico basato su ACL
 
  L'uso di comandi di debug richiede l'allocazione di risorse di sistema come la memoria e la potenza di elaborazione, e in situazioni estreme può causare l'arresto di un sistema sovraccarico. Utilizzare i comandi di debug con cautela. Per definire in modo selettivo il traffico da esaminare e ridurre l'impatto del comando debug, usare un ACL. Una configurazione di questo tipo non filtra i pacchetti.
 
  Questa configurazione attiva il comando debug ip packet solo per i pacchetti tra gli host 10.1.1.1 e 172.16.1.1.
 
  R1(config)#access-list 199 permit tcp host 10.1.1.1 host 172.16.1.1
R1(config)#access-list 199 permit tcp host 172.16.1.1 host 10.1.1.1
R1(config)#end
R1#debug ip packet 199 detail
IP packet debugging is on (detailed) for access list 199
 
  Per ulteriori informazioni sull'effetto dei comandi di debug, fare riferimento a Informazioni importanti sui comandi di debug.
 
  Consultare la sezione Uso dei comandi di debug in Informazioni sui comandi Ping e Traceroute per ulteriori informazioni sull'uso degli ACL con i comandi di debug.
 
  Filtro degli indirizzi MAC
 
  È possibile filtrare i frame con un indirizzo di origine o destinazione di una stazione di livello MAC specifica. Il sistema consente di configurare qualsiasi numero di indirizzi senza compromettere le prestazioni. Per filtrare i pacchetti in base all'indirizzo di livello MAC, utilizzare questo comando in modalità di configurazione globale:
 
  Router#config terminal
Router(config)#bridge irb
Router(config)#bridge 1 protocol ieee 
Router(config)#bridge 1 route ip
 
  Applicare il protocollo bridge a un'interfaccia necessaria per filtrare il traffico insieme all'elenco degli accessi creato con il bridge-group <numero gruppo> {input-address-list <numero ACL> | output-address-list <numero ACL>} comando:
 
  Router#config terminal
Router(config-if)#interface fastEthernet0/0 
Router(config-if)#no ip address 
Router(config-if)#bridge-group 1 input-address-list 700 
Router(config-if)#exit
 
  Creare un'interfaccia virtuale con bridging e applicare l'indirizzo IP assegnato all'interfaccia Ethernet fisica:
 
  Router#config terminal
Router(config-if)#int bvi1 
Router(config-if)#ip address 192.168.1.1 255.255.255.0 
Router(config-if)#exit 
Router(config)#access-list 700 deny aaaa.bbbb.cccc 0000.0000.0000 
Router(config)#access-list 700 permit 0000.0000.0000 ffff.ffff.ffff
 
  Con questa configurazione, il router consente solo gli indirizzi MAC configurati sull'access-list 700. Con il comando access-list <ACL number> deny <mac address> 0000.000.0000, negare l'indirizzo MAC a cui non è possibile accedere e autorizzare il resto (ad esempio, aaaa.bbb.ccc). 
 
  Nota: Nell'elenco degli accessi, creare una riga per ogni indirizzo MAC.
 
  Verifica
 
  Attualmente non è disponibile una procedura di verifica per questa configurazione.
 
  Risoluzione dei problemi
 
  Al momento non sono disponibili informazioni specifiche per la risoluzione dei problemi di questa configurazione.
 
  Informazioni correlate