Configurare le ACL IP comunemente utilizzate
Introduzione
Questo documento fornisce configurazioni di esempio per le Access Control List (ACL) IP comunemente utilizzate, che filtrano i pacchetti IP in base a:
- Indirizzo di origine
- Indirizzo di destinazione
- Tipo di pacchetto
- Qualsiasi combinazione di questi elementi
Al fine di filtrare il traffico di rete, le ACL controllano se i pacchetti instradati vengono inoltrati o bloccati sull’interfaccia del router. Il tuo router esamina ogni pacchetto per determinare se inoltrare o rifiutare il pacchetto in base ai criteri che specifichi all’interno dell’ACL. I criteri ACL includono:
- Indirizzo di origine del traffico
- Indirizzo di destinazione del traffico
- Protocollo di livello superiore
Completa questi passi per costruire un ACL come mostrano gli esempi in questo documento:
- Crea un ACL.
- Applica l’ACL ad un’interfaccia.
L’ACL IP è una collezione sequenziale di condizioni di permit e deny che si applicano ad un pacchetto IP. Il router testa i pacchetti rispetto alle condizioni dell’ACL una alla volta.
La prima corrispondenza determina se il software Cisco IOS® accetta o rifiuta il pacchetto. Poiché il software Cisco IOS smette di testare le condizioni dopo la prima corrispondenza, l’ordine delle condizioni è critico. Se nessuna condizione corrisponde, il router rifiuta il pacchetto a causa di una clausola implicita deny all.
Questi sono esempi di IP ACL che possono essere configurati nel software Cisco IOS:
- Standard ACLs
- Extended ACLs
- Dynamic (lock and key) ACLs
- IP-named ACLs
- Reflexive ACLs
- Time-based ACLs che usano intervalli di tempo
- Commented IP ACL entries
- Context-ACL basate sul contesto
- Autenticazione proxy
- Turbo ACL
- ACL distribuite basate sul tempo
Questo documento discute alcune ACL standard ed estese comunemente usate. Per maggiori informazioni sui diversi tipi di ACL supportati nel software Cisco IOS e su come configurare e modificare le ACL, fare riferimento a Configurazione delle liste d’accesso IP.
Il formato della sintassi del comando di un ACL standard è access-list access-list-numero {permetti|nega}
Le ACL standard confrontano l’indirizzo sorgente dei pacchetti IP con gli indirizzi configurati nell’ACL per controllare il traffico.
Le ACL estese confrontano gli indirizzi sorgente e destinazione dei pacchetti IP con gli indirizzi configurati nell’ACL per controllare il traffico. Puoi anche rendere le ACL estese più granulari e configurate per filtrare il traffico in base a criteri come:
- Protocollo
- Numeri di porta
- Valore DSCP (Differentiated Services Code Point)
- Valore di precedenza
- Stato del bit SYN (Synchronize sequence number)
I formati della sintassi dei comandi delle ACL estese sono:
IP
access-list access-list-number ]{deny | permit} protocol source source-wildcard destination destination-wildcard
Internet Control Message Protocol (ICMP)
access-list access-list-number ] {deny | permit} icmp source source-wildcard destination destination-wildcard
| ]
Transport Control Protocol (TCP)
access-list access-list-number ] {deny | permit} tcp source source-wildcard ] destination destination-wildcard ]
User Datagram Protocol (UDP)
access-list access-list-number ] {deny | permit} udp source source-wildcard ] destination destination-wildcard ]
Prequisiti
Requisiti
Assicurati di soddisfare questi requisiti prima di tentare questa configurazione:
-
Comprensione di base dell’indirizzamento IP
Riferimento a Indirizzamento IP e subnetting per nuovi utenti per ulteriori informazioni.
Componenti usati
Questo documento non è limitato a specifiche versioni software e hardware.
Le informazioni in questo documento sono state create dai dispositivi in uno specifico ambiente di laboratorio. Tutti i dispositivi usati in questo documento sono partiti con una configurazione azzerata (predefinita). Se la tua rete è attiva, assicurati di capire il potenziale impatto di ogni comando.
Configura
Questi esempi di configurazione usano le più comuni ACL IP.
Consenti ad un host selezionato di accedere alla rete
Questa figura mostra un host selezionato a cui viene concesso il permesso di accedere alla rete. Tutto il traffico proveniente dall’host B e destinato alla rete A è permesso, e tutto il traffico proveniente dalla rete B e destinato alla rete A è negato.
L’output sulla tabella R1 mostra come la rete garantisce l’accesso all’host. Questo output mostra che:
-
La configurazione permette solo l’host con l’indirizzo IP 192.168.10.1 attraverso l’interfaccia Ethernet 0 su R1.
-
Questo host ha accesso ai servizi IP di NetA.
-
Nessun altro host in NetB ha accesso a NetA.
-
Nessuna dichiarazione deny è configurata nell’ACL.
Di default, c’è una clausola implicita deny all alla fine di ogni ACL. Tutto ciò che non è esplicitamente permesso viene negato.
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, tranne i pacchetti provenienti da NetB. I pacchetti provenienti dall’Host B verso NetA sono ancora permessi.
Nota: L’ACL access-list 1 permit 192.168.10.1 0.0.0.0 è un altro modo per configurare la stessa regola.
Negare l’accesso alla rete ad un host selezionato
Questa figura mostra che il traffico proveniente dall’host B destinato a NetA è negato, mentre tutto il resto del traffico proveniente da NetB per accedere a NetA è permesso.
Questa configurazione nega tutti i pacchetti dall’host 192.168.10.1/32 attraverso Ethernet 0 su R1 e permette tutto il resto. Devi usare il comando access list 1 permit any per permettere esplicitamente tutto il resto perché c’è una clausola implicita deny all con ogni ACL.
R1
hostname R1!interface ethernet0 ip access-group 1 in!access-list 1 deny host 192.168.10.1access-list 1 permit any
Nota: L’ordine delle dichiarazioni è critico per il funzionamento di una ACL. Se l’ordine delle voci è invertito come mostra questo comando, la prima riga corrisponde ad ogni indirizzo sorgente del pacchetto. Pertanto, l’ACL non riesce a bloccare l’host 192.168.10.1/32 dall’accesso a NetA.
access-list 1 permit anyaccess-list 1 deny host 192.168.10.1
Consenti l’accesso a un intervallo di indirizzi IP contigui
Questa figura mostra che tutti gli host in NetB con l’indirizzo di rete 192.168.10.0/24 possono accedere alla rete 192.168.200.0/24 in NetA.
Questa configurazione permette ai pacchetti IP con un header IP che ha un indirizzo sorgente nella rete 192.168.10.0/24 e un indirizzo destinazione nella rete 192.168.200.0/24 di accedere a NetA. C’è la clausola implicita deny all alla fine dell’ACL che nega ogni altro passaggio di traffico attraverso Ethernet 0 in entrata su R1.
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 permit ip 192.168.10.0 0.0.0.255 192.168.200.0 0.0.255, lo “0.0.0.255” è la maschera inversa della rete 192.168.10.0 con maschera 255.255.255.0. Le ACL usano la maschera inversa per sapere quanti bit nell’indirizzo di rete devono corrispondere. Nella tabella, l’ACL permette tutti gli host con indirizzi sorgente nella rete 192.168.10.0/24 e indirizzi di destinazione nella rete 192.168.200.0/24.
Per maggiori informazioni sulla maschera di un indirizzo di rete e su come calcolare la maschera inversa necessaria per le ACL, consultare la sezione Maschere di Configurazione delle liste di accesso IP.
Negare il traffico Telnet (TCP, porta 23)
Al fine di soddisfare preoccupazioni di sicurezza più elevate, potresti dover disabilitare l’accesso Telnet alla tua rete privata dalla rete pubblica. Questa figura mostra come il traffico Telnet da NetB (pubblico) destinato a NetA (privato) è negato, il che permette a NetA di iniziare e stabilire una sessione Telnet con NetB mentre tutto il resto del traffico IP è permesso.
Telnet usa TCP, porta 23. Questa configurazione mostra che tutto il traffico TCP destinato a NetA per la porta 23 è bloccato, e tutto l’altro traffico IP è permesso.
R1
hostname R1!interface ethernet0 ip access-group 102 in!access-list 102 deny tcp any any eq 23access-list 102 permit ip any any
Allow Only Internal Networks to Initiate a TCP Session
Questa figura mostra che il traffico TCP proveniente da NetA destinato a NetB è permesso, mentre il traffico TCP da NetB destinato a NetA è negato.
Lo scopo dell’ACL in questo esempio è quello di:
-
Consentire agli host in NetA di iniziare e stabilire una sessione TCP verso gli host in NetB.
-
Non permettere agli host in NetB di iniziare e stabilire una sessione TCP destinata agli host in NetA.
Questa configurazione permette ad un datagramma di passare attraverso l’interfaccia Ethernet 0 in entrata su R1 quando il datagramma ha:
-
Bit di conferma (ACK) o di reset (RST) impostati (che indicano una sessione TCP stabilita)
-
Un valore di porta di destinazione maggiore di 1023
R1
hostname R1!interface ethernet0 ip access-group 102 in!access-list 102 permit tcp any any gt 1023 established
Siccome la maggior parte delle porte conosciute per servizi IP usano valori inferiori a 1023, qualsiasi datagramma con una porta di destinazione inferiore a 1023 o un bit ACK/RST non impostato viene negato da ACL 102. Pertanto, quando un host da NetB inizia una connessione TCP inviando il primo pacchetto TCP (senza bit di sincronizzazione/avvio pacchetto (SYN/RST) impostato) per un numero di porta inferiore a 1023, viene negato e la sessione TCP fallisce. Le sessioni TCP iniziate da NetA e destinate a NetB sono permesse perché hanno il bit ACK/RST impostato per i pacchetti di ritorno e usano valori di porta maggiori di 1023.
Riferimento a RFC 1700 per una lista completa di porte.
Negare il traffico FTP (TCP, porta 21)
Questa figura mostra che il traffico FTP (TCP, porta 21) e dati FTP (porta 20 ) proveniente da NetB e destinato a NetA è negato, mentre tutto il resto del traffico IP è permesso.
FTP usa le porte 21 e 20. Il traffico TCP destinato alle porte 21 e 20 è negato e tutto il resto è esplicitamente permesso.
R1
hostname R1!interface ethernet0 ip access-group 102 in!access-list 102 deny tcp any any eq ftpaccess-list 102 deny tcp any any eq ftp-dataaccess-list 102 permit ip any any
Allow FTP Traffic (Active FTP)
FTP può operare in due diverse modalità chiamate attiva e passiva. Fare riferimento a Funzionamento FTP per capire come funziona l’FTP attivo e passivo.
Quando l’FTP opera in modalità attiva, il server FTP usa la porta 21 per il controllo e la porta 20 per i dati. Il server FTP (192.168.1.100) si trova in NetA. Questa figura mostra che il traffico FTP (TCP, porta 21) e dati FTP (porta 20) proveniente da NetB e destinato al server FTP (192.168.1.100) è permesso, mentre tutto il resto del traffico IP è negato.
R1
hostname R1!interface ethernet0 ip access-group 102 in!access-list 102 permit tcp any host 192.168.1.100 eq ftpaccess-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 establishedaccess-list 110 permit host 192.168.1.100 eq ftp-data any
Allow FTP Traffic (Passive FTP)
FTP può operare in due modalità differenti chiamate attiva e passiva. Fare riferimento a Funzionamento FTP per capire come funziona l’FTP attivo e passivo.
Quando l’FTP funziona in modalità passiva, il server FTP usa la porta 21 per il controllo e le porte dinamiche maggiori o uguali a 1024 per i dati. Il server FTP (192.168.1.100) si trova in NetA. Questa figura mostra che il traffico FTP (TCP, porta 21) e dati FTP (porte maggiori o uguali a 1024) proveniente da NetB e destinato al server FTP (192.168.1.100) è permesso, mentre tutto il resto del traffico IP è negato.
R1
hostname R1!interface ethernet0 ip access-group 102 in!access-list 102 permit tcp any host 192.168.1.100 eq ftpaccess-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 establishedaccess-list 110 permit host 192.168.1.100 gt 1023 any established
Allow Pings (ICMP)
Questa figura mostra che ICMP proveniente da NetA destinato a NetB è permesso, e i pings provenienti da NetB destinati a NetA sono negati.
Questa configurazione permette solo ai pacchetti echo-reply (ping response) di entrare 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. Quindi, gli host in NetA possono fare ping agli host in NetB, ma gli host in NetB non possono fare ping agli host in NetA.
R1
hostname R1!interface ethernet0 ip access-group 102 in!access-list 102 permit icmp any any echo-reply
Consenti HTTP, Telnet, Mail, POP3, FTP
Questa figura mostra che solo il traffico HTTP, Telnet, Simple Mail Transfer Protocol (SMTP), POP3 e FTP è permesso, e il resto del traffico proveniente da NetB e destinato a NetA è negato.
Questa configurazione permette il traffico TCP con valori di porta di destinazione che corrispondono a WWW (porta 80), Telnet (porta 23), SMTP (porta 25), POP3 (porta 110), FTP (porta 21), o FTP data (porta 20). Notate che una clausola implicita deny all alla fine di una ACL nega tutto il resto del traffico che non corrisponde alle clausole di permesso.
R1
hostname R1!interface ethernet0 ip access-group 102 in!access-list 102 permit tcp any any eq wwwaccess-list 102 permit tcp any any eq telnetaccess-list 102 permit tcp any any eq smtpaccess-list 102 permit tcp any any eq pop3access-list 102 permit tcp any any eq 21access-list 102 permit tcp any any eq 20
Allow DNS
Questa figura mostra che solo il traffico Domain Name System (DNS) è permesso, e il resto del traffico proveniente da NetB destinato a NetA è negato.
Questa configurazione permette il traffico TCP con valore della porta di destinazione 53. La clausola implicita deny all alla fine di una ACL nega tutto il resto del traffico che non corrisponde alle clausole di permesso.
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 anyaccess-list 102 permit tcp any any eq domain access-list 102 permit tcp any eq domain any
Permettere gli aggiornamenti di routing
Quando si applica una ACL in-bound su un’interfaccia, assicurarsi che gli aggiornamenti di routing non siano filtrati. Usa l’ACL pertinente da questa lista per permettere i pacchetti del protocollo di routing:
Inserisci questo comando per permettere il Routing Information Protocol (RIP):
access-list 102 permit udp any any eq rip
Entrare questo comando per permettere l’Interior Gateway Routing Protocol (IGRP):
access-list 102 permit igrp any any
Entrare questo comando per permettere Enhanced IGRP (EIGRP):
access-list 102 permit eigrp any any
Entrare questo comando per permettere l’Open Shortest Path First (OSPF):
access-list 102 permit ospf any any
Entrare questo comando per permettere il Border Gateway Protocol (BGP):
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 dei comandi di debug richiede l’allocazione di risorse di sistema come memoria e potenza di elaborazione e in situazioni estreme può causare lo stallo di un sistema molto carico. Usare i comandi di debug con attenzione. Usare una ACL per definire selettivamente il traffico che deve essere esaminato per ridurre l’impatto del comando di debug. Tale configurazione non filtra alcun pacchetto.
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.1R1(config)#access-list 199 permit tcp host 172.16.1.1 host 10.1.1.1R1(config)#end
R1#debug ip packet 199 detailIP packet debugging is on (detailed) for access list 199
Riferimento a Informazioni importanti sui comandi di debug per ulteriori informazioni sull’impatto dei comandi di debug.
Riferimento alla sezione Usare il comando di debug di Capire i comandi Ping e Traceroute per ulteriori informazioni sull’uso delle ACL con i comandi di debug.
Filtraggio degli indirizzi MAC
Puoi filtrare i frame con un particolare indirizzo sorgente o destinazione della stazione a livello MAC. Qualsiasi numero di indirizzi può essere configurato nel sistema senza una penalizzazione delle prestazioni. Per filtrare per indirizzo di strato MAC, usare questo comando in modalità di configurazione globale:
Router#config terminal bridge irb bridge 1 protocol ieee bridge 1 route ip
Applica il protocollo bridge ad un’interfaccia che hai bisogno di filtrare il traffico insieme alla lista d’accesso creata:
Router#config terminal
int fa0/0 no ip address bridge-group 1 {input-address-list 700 | output-address-list 700} exit
Creare un’interfaccia virtuale a ponte e applicare l’indirizzo IP assegnato all’interfaccia Ethernet:
Router#config terminal
int bvi1 ip address exit ! ! access-list 700 deny <mac address> 0000.0000.0000 access-list 700 permit 0000.0000.0000 ffff.ffff.ffff
Con questa configurazione, il router permette solo gli indirizzi MAC configurati nella lista di accesso 700. Con la lista d’accesso, negare gli indirizzi MAC che non possono avere accesso e poi permettere il resto.
Nota: crea ogni linea della lista di accesso per ogni indirizzo MAC.
Verifica
Al momento non è disponibile alcuna procedura di verifica per questa configurazione.
Risoluzione dei problemi
Al momento non sono disponibili informazioni specifiche per la risoluzione dei problemi per questa configurazione.