La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
In questo documento viene descritto come configurare un tunnel IKEv1 da sito a sito (da LAN a LAN) tramite la CLI tra un'appliance Cisco ASA e un router con software Cisco IOS®.
Cisco raccomanda la conoscenza dei seguenti argomenti:
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e 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.
In questa sezione viene descritto come completare le configurazioni della CLI dei router ASA e Cisco IOS.
Per le informazioni di questo documento viene utilizzata la seguente configurazione della rete:
Se le interfacce ASA non sono configurate, verificare di configurare almeno gli indirizzi IP, i nomi delle interfacce e i livelli di sicurezza:
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address 172.16.1.1 255.255.255.0
!
interface GigabitEthernet0/1
nameif inside
security-level 100
ip address 10.10.10.1 255.255.255.0
Nota: per stabilire un tunnel VPN da sito a sito, verificare che sia disponibile una connettività sia alle reti interne che a quelle esterne, in particolare al peer remoto utilizzato. È possibile usare un comando ping per verificare la connettività di base.
Per configurare i criteri ISAKMP (Internet Security Association and Key Management Protocol) per le connessioni IPSec Internet Key Exchange versione 1 (IKEv1), immettere il crypto ikev1 policy
comando:
crypto ikev1 policy 10
authentication pre-share
encryption aes
hash sha
group 2
lifetime 86400
Nota: esiste una corrispondenza di criteri IKEv1 quando entrambi i criteri dei due peer contengono gli stessi valori di autenticazione, crittografia, hash e parametro Diffie-Hellman. Per IKEv1, il criterio peer remoto deve inoltre specificare una durata minore o uguale alla durata del criterio inviato dall'iniziatore. Se le durate non sono identiche, l'appliance ASA usa la durata più breve.
Nota: se non si specifica un valore per un determinato parametro di criterio, viene applicato il valore predefinito.
È necessario abilitare IKEv1 sull'interfaccia che termina il tunnel VPN. In genere, si tratta dell'interfaccia esterna (o pubblica). Per abilitare IKEv1, immettere il crypto ikev1 enable
comando in modalità di configurazione globale:
crypto ikev1 enable outside
Per un tunnel da LAN a LAN, il tipo di profilo di connessione è ipsec-l2l
. Per configurare la chiave già condivisa IKEv1, immettere il tunnel-group ipsec-attributes
modalità di configurazione:
tunnel-group 172.17.1.1 type ipsec-l2l
tunnel-group 172.17.1.1 ipsec-attributes
ikev1 pre-shared-key cisco123
L'appliance ASA utilizza gli Access Control Lists (ACL) per distinguere il traffico che deve essere protetto con la crittografia IPSec dal traffico che non deve essere protetto. Protegge i pacchetti in uscita che corrispondono a una voce ACE (Application Control Engine) dell'autorizzazione e garantisce la protezione dei pacchetti in entrata che corrispondono a una voce ACE dell'autorizzazione.
object-group network local-network
network-object 10.10.10.0 255.255.255.0
object-group network remote-network
network-object 10.20.10.0 255.255.255.0
access-list asa-router-vpn extended permit ip object-group local-network
object-group remote-network
Nota: un ACL per il traffico VPN usa gli indirizzi IP di origine e di destinazione dopo il protocollo NAT (Network Address Translation).
Nota: è necessario eseguire il mirroring di un ACL per il traffico VPN su entrambi i peer VPN.
Nota: se è necessario aggiungere una nuova subnet al traffico protetto, è sufficiente aggiungere una subnet/host al rispettivo gruppo di oggetti e completare una modifica di mirroring sul peer VPN remoto.
Nota: la configurazione descritta in questa sezione è facoltativa.
In genere, non deve essere eseguito alcun NAT sul traffico VPN. Per escludere il traffico, è necessario creare una regola NAT di identità. La regola NAT di identità traduce semplicemente un indirizzo nello stesso indirizzo.
nat (inside,outside) source static local-network local-network destination static
remote-network remote-network no-proxy-arp route-lookup
Un set di trasformazioni IKEv1 è una combinazione di protocolli e algoritmi di sicurezza che definiscono il modo in cui l'appliance ASA protegge i dati. Durante le negoziazioni della Security Association (SA) IPSec, i peer devono identificare un set di trasformazioni o una proposta identica per entrambi i peer. L'ASA quindi applica il set di trasformazioni o la proposta di trasformazione corrispondente per creare un'associazione di protezione (SA) che protegga i flussi di dati nell'elenco degli accessi per la mappa crittografica.
Per configurare il set di trasformazioni IKEv1, immettere il crypto ipsec ikev1 transform-set
comando:
crypto ipsec ikev1 transform-set ESP-AES-SHA esp-aes esp-sha-hmac
Una mappa crittografica definisce un criterio IPSec da negoziare nell'associazione di protezione IPSec e include:
Di seguito è riportato un esempio:
crypto map outside_map 10 match address asa-router-vpn
crypto map outside_map 10 set peer 172.17.1.1
crypto map outside_map 10 set ikev1 transform-set ESP-AES-SHA
È quindi possibile applicare la mappa crittografica all'interfaccia:
crypto map outside_map interface outside
Di seguito è riportata la configurazione finale dell'appliance ASA:
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address 172.16.1.1 255.255.255.0
!
interface GigabitEthernet0/1
nameif inside
security-level 100
ip address 10.10.10.1 255.255.255.0
!
object-group network local-network
network-object 10.10.10.0 255.255.255.0
object-group network remote-network
network-object 10.20.10.0 255.255.255.0
!
access-list asa-router-vpn extended permit ip object-group local-network
object-group remote-network
!
nat (inside,outside) source static local-network local-network destination
static remote-network remote-network no-proxy-arp route-lookup
!
crypto ipsec ikev1 transform-set ESP-AES-SHA esp-aes esp-sha-hmac
!
crypto map outside_map 10 match address asa-router-vpn
crypto map outside_map 10 set peer 172.17.1.1
crypto map outside_map 10 set ikev1 transform-set ESP-AES-SHA
crypto map outside_map interface outside
Se le interfacce del router Cisco IOS non sono ancora configurate, è necessario configurare almeno le interfacce LAN e WAN. Di seguito è riportato un esempio:
interface GigabitEthernet0/0
ip address 172.17.1.1 255.255.255.0
no shutdown
!
interface GigabitEthernet0/1
ip address 10.20.10.1 255.255.255.0
no shutdown
Verificare la connettività alle reti interne ed esterne, in particolare al peer remoto utilizzato per stabilire un tunnel VPN da sito a sito. È possibile usare un comando ping per verificare la connettività di base.
Per configurare i criteri ISAKMP per le connessioni IKEv1, immettere il crypto isakmp policy
in modalità di configurazione globale. Di seguito è riportato un esempio:
crypto isakmp policy 10
encr aes
authentication pre-share
group 2
Nota: è possibile configurare più criteri IKE in ogni peer che partecipa a IPSec. All'inizio della negoziazione IKE, viene eseguito il tentativo di trovare un criterio comune configurato in entrambi i peer e viene avviato con i criteri con la priorità più alta specificati nel peer remoto.
Per configurare una chiave di autenticazione già condivisa, immettere il comando crypto isakmp key
comando in modalità di configurazione globale:
crypto isakmp key cisco123 address 172.16.1.1
Utilizzare l'elenco degli accessi esteso o con nome per specificare il traffico che deve essere protetto dalla crittografia. Di seguito è riportato un esempio:
access-list 110 remark Interesting traffic access-list
access-list 110 permit ip 10.20.10.0 0.0.0.255 10.10.10.0 0.0.0.255
Nota: un ACL per il traffico VPN usa gli indirizzi IP di origine e destinazione dopo NAT.
Nota: è necessario eseguire il mirroring di un ACL per il traffico VPN su entrambi i peer VPN.
Nota: la configurazione descritta in questa sezione è facoltativa.
In genere, non deve essere eseguito alcun NAT sul traffico VPN. Se si usa il sovraccarico NAT, è necessario usare una route-map per esentare il traffico VPN di interesse dalla traduzione. Notare che nell'elenco degli accessi utilizzato nella route-map, il traffico VPN di interesse deve essere rifiutato.
access-list 111 remark NAT exemption access-list
access-list 111 deny ip 10.20.10.0 0.0.0.255 10.10.10.0 0.0.0.255
access-list 111 permit ip 10.20.10.0 0.0.0.255 any
route-map nonat permit 10
match ip address 111
ip nat inside source route-map nonat interface GigabitEthernet0/0 overload
Per definire un set di trasformazioni IPSec (una combinazione accettabile di protocolli e algoritmi di protezione), immettere il comando crypto ipsec transform-set
in modalità di configurazione globale. Di seguito è riportato un esempio:
crypto ipsec transform-set ESP-AES-SHA esp-aes esp-sha-hmac
mode tunnel
Per creare o modificare una voce della mappa crittografica e accedere alla modalità di configurazione della mappa crittografica, immettere il comando di configurazione globale crypto map. Affinché la voce della mappa crittografica sia completa, è necessario definire almeno alcuni aspetti:
set peer
set transform-set
match address
Di seguito è riportato un esempio:
crypto map outside_map 10 ipsec-isakmp
set peer 172.16.1.1
set transform-set ESP-AES-SHA
match address 110
Il passaggio finale è l'applicazione a un'interfaccia della mappa crittografica definita in precedenza. Per applicare questo criterio, immettere il crypto map
comando interface configuration:
interface GigabitEthernet0/0
crypto map outside_map
Di seguito è riportata la configurazione finale della CLI del router Cisco IOS:
crypto isakmp policy 10
encr aes
authentication pre-share
group 2
crypto isakmp key cisco123 address 172.16.1.1
!
crypto ipsec transform-set ESP-AES-SHA esp-aes esp-sha-hmac
mode tunnel
!
crypto map outside_map 10 ipsec-isakmp
set peer 172.16.1.1
set transform-set ESP-AES-SHA
match address 110
!
interface GigabitEthernet0/0
ip address 172.17.1.1 255.255.255.0
ip nat outside
ip virtual-reassembly in
duplex auto
speed auto
crypto map outside_map
!
interface GigabitEthernet0/1
ip address 10.20.10.1 255.255.255.0
ip nat inside
ip virtual-reassembly in
duplex auto
speed auto
!
ip nat inside source route-map nonat interface GigabitEthernet0/0 overload
!
route-map nonat permit 10
match ip address 111
!
access-list 110 remark Interesting traffic access-list
access-list 110 permit ip 10.20.10.0 0.0.0.255 10.10.10.0 0.0.0.255
access-list 111 remark NAT exemption access-list
access-list 111 deny ip 10.20.10.0 0.0.0.255 10.10.10.0 0.0.0.255
access-list 111 permit ip 10.20.10.0 0.0.0.255 any
Prima di verificare se il tunnel è attivo e se supera il traffico, è necessario verificare che il traffico di interesse sia inviato verso l'ASA o il router Cisco IOS.
Nota: sull'appliance ASA, per avviare il tunnel IPSec, è possibile usare lo strumento packet-tracer che corrisponde al traffico di interesse (ad esempio packet-tracer input inside tcp 10.10.10.10 12345 10.20.10.10 80 detailed
ad esempio).
Per verificare se IKEv1 fase 1 è attivo sull'appliance ASA, immettere il comando show crypto isakmp sa. L'output previsto è il seguente: MM_ACTIVE
state:
ciscoasa# show crypto isakmp sa
IKEv1 SAs:
Active SA: 1
Rekey SA: 0 (A tunnel will report 1 Active and 1 Rekey SA during rekey)
Total IKE SA: 1
1 IKE Peer: 172.17.1.1
Type : L2L Role : responder
Rekey : no State : MM_ACTIVE
There are no IKEv2 SAs
ciscoasa#
Per verificare se la fase 1 di IKEv1 è attiva su Cisco IOS, immettere il show crypto isakmp sa
L'output previsto è il seguente: ACTIVE
state:
Router#show crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst src state conn-id status
172.16.1.1 172.17.1.1 QM_IDLE 1005 ACTIVE
IPv6 Crypto ISAKMP SA
Router#
Per verificare se IKEv1 fase 2 è attivo sull'appliance ASA, immettere il comando show crypto ipsec sa
Nell'output previsto verrà visualizzato l'indice dei parametri di sicurezza (SPI, Security Parameter Index) in entrata e in uscita. Se il traffico attraversa il tunnel, è necessario verificare l'incremento dei contatori encaps/decaps.
Nota: per ciascuna voce dell'elenco, viene creata un'associazione di sicurezza in entrata/in uscita distinta, che può generare un lungo show crypto ipsec sa
output del comando (a seconda del numero di voci ACE nell'ACL crittografico).
Di seguito è riportato un esempio:
ciscoasa# show crypto ipsec sa peer 172.17.1.1
peer address: 172.17.1.1
Crypto map tag: outside_map, seq num: 10, local addr: 172.16.1.1
access-list asa-router-vpn extended permit ip 10.10.10.0 255.255.255.0
10.20.10.0 255.255.255.0
local ident (addr/mask/prot/port): (10.10.10.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (10.20.10.0/255.255.255.0/0/0)
current_peer: 172.17.1.1
#pkts encaps: 1005, #pkts encrypt: 1005, #pkts digest: 1005
#pkts decaps: 1014, #pkts decrypt: 1014, #pkts verify: 1014
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 1005, #pkts comp failed: 0, #pkts decomp failed: 0
#pre-frag successes: 0, #pre-frag failures: 0, #fragments created: 0
#PMTUs sent: 0, #PMTUs rcvd: 0, #decapsulated frgs needing reassembly: 0
#TFC rcvd: 0, #TFC sent: 0
#Valid ICMP Errors rcvd: 0, #Invalid ICMP Errors rcvd: 0
#send errors: 0, #recv errors: 0
local crypto endpt.: 172.16.1.1/0, remote crypto endpt.: 172.17.1.1/0
path mtu 1500, ipsec overhead 74(44), media mtu 1500
PMTU time remaining (sec): 0, DF policy: copy-df
ICMP error validation: disabled, TFC packets: disabled
current outbound spi: 8A9FE619
current inbound spi : D8639BD0
inbound esp sas:
spi: 0xD8639BD0 (3630406608)
transform: esp-aes esp-sha-hmac no compression
in use settings ={L2L, Tunnel, IKEv1, }
slot: 0, conn_id: 8192, crypto-map: outside_map
sa timing: remaining key lifetime (kB/sec): (3914900/3519)
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0xFFFFFFFF 0xFFFFFFFF
outbound esp sas:
spi: 0x8A9FE619 (2325734937)
transform: esp-aes esp-sha-hmac no compression
in use settings ={L2L, Tunnel, IKEv1, }
slot: 0, conn_id: 8192, crypto-map: outside_map
sa timing: remaining key lifetime (kB/sec): (3914901/3519)
IV size: 16 bytes
replay detection support: Y
Anti replay bitmap:
0x00000000 0x00000001
ciscoasa#
Per verificare se IKEv1 fase 2 è attivo su Cisco IOS, immettere il show crypto ipsec sa
L'output previsto consente di visualizzare l'indice SPI in entrata e in uscita. Se il traffico attraversa il tunnel, è necessario verificare l'incremento dei contatori encaps/decaps.
Di seguito è riportato un esempio:
Router#show crypto ipsec sa peer 172.16.1.1
interface: GigabitEthernet0/0
Crypto map tag: outside_map, local addr 172.17.1.1
protected vrf: (none)
local ident (addr/mask/prot/port): (10.20.10.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (10.10.10.0/255.255.255.0/0/0)
current_peer 172.16.1.1 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 2024, #pkts encrypt: 2024, #pkts digest: 2024
#pkts decaps: 2015, #pkts decrypt: 2015, #pkts verify: 2015
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 26, #recv errors 0
local crypto endpt.: 172.17.1.1, remote crypto endpt.: 172.16.1.1
path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0/0
current outbound spi: 0xD8639BD0(3630406608)
PFS (Y/N): N, DH group: none
inbound esp sas:
spi: 0x8A9FE619(2325734937)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2003, flow_id: Onboard VPN:3, sibling_flags 80000046,
crypto map: outside_map
sa timing: remaining key lifetime (k/sec): (4449870/3455)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0xD8639BD0(3630406608)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2004, flow_id: Onboard VPN:4, sibling_flags 80000046,
crypto map: outside_map
sa timing: remaining key lifetime (k/sec): (4449868/3455)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
outbound ah sas:
outbound pcp sas:
Router#
In questa sezione vengono descritti i comandi che è possibile usare sull'appliance ASA o Cisco IOS per verificare i dettagli delle fasi 1 e 2.
Immettere il show vpn-sessiondb
sull'appliance ASA per la verifica:
ciscoasa# show vpn-sessiondb detail l2l filter ipaddress 172.17.1.1
Session Type: LAN-to-LAN Detailed
Connection : 172.17.1.1
Index : 2 IP Addr : 172.17.1.1
Protocol : IKEv1 IPsec
Encryption : IKEv1: (1)AES128 IPsec: (1)AES128
Hashing : IKEv1: (1)SHA1 IPsec: (1)SHA1
Bytes Tx : 100500 Bytes Rx : 101400
Login Time : 18:06:02 UTC Wed Jul 22 2015
Duration : 0h:05m:07s
IKEv1 Tunnels: 1
IPsec Tunnels: 1
IKEv1:
Tunnel ID : 2.1
UDP Src Port : 500 UDP Dst Port : 500
IKE Neg Mode : Main Auth Mode : preSharedKeys
Encryption : AES128 Hashing : SHA1
Rekey Int (T): 86400 Seconds Rekey Left(T): 86093 Seconds
D/H Group : 2
Filter Name :
IPsec:
Tunnel ID : 2.2
Local Addr : 10.10.10.0/255.255.255.0/0/0
Remote Addr : 10.20.10.0/255.255.255.0/0/0
Encryption : AES128 Hashing : SHA1
Encapsulation: Tunnel
Rekey Int (T): 3600 Seconds Rekey Left(T): 3293 Seconds
Rekey Int (D): 4608000 K-Bytes Rekey Left(D): 4607901 K-Bytes
Idle Time Out: 30 Minutes Idle TO Left : 26 Minutes
Bytes Tx : 100500 Bytes Rx : 101400
Pkts Tx : 1005 Pkts Rx : 1014
NAC:
Reval Int (T): 0 Seconds Reval Left(T): 0 Seconds
SQ Int (T) : 0 Seconds EoU Age(T) : 309 Seconds
Hold Left (T): 0 Seconds Posture Token:
Redirect URL :
ciscoasa#
Immettere il show crypto session
sul Cisco IOS per la verifica:
Router#show crypto session remote 172.16.1.1 detail
Crypto session current status
Code: C - IKE Configuration mode, D - Dead Peer Detection
K - Keepalives, N - NAT-traversal, T - cTCP encapsulation
X - IKE Extended Authentication, F - IKE Fragmentation
Interface: GigabitEthernet0/0
Uptime: 00:03:36
Session status: UP-ACTIVE
Peer: 172.16.1.1 port 500 fvrf: (none) ivrf: (none)
Phase1_id: 172.16.1.1
Desc: (none)
IKE SA: local 172.17.1.1/500 remote 172.16.1.1/500 Active
Capabilities:(none) connid:1005 lifetime:23:56:23
IPSEC FLOW: permit ip 10.20.10.0/255.255.255.0 10.10.10.0/255.255.255.0
Active SAs: 2, origin: crypto map
Inbound: #pkts dec'ed 2015 drop 0 life (KB/Sec) 4449870/3383
Outbound: #pkts enc'ed 2024 drop 26 life (KB/Sec) 4449868/3383
Router#
Le informazioni contenute in questa sezione permettono di risolvere i problemi relativi alla configurazione.
Nota: consultare le informazioni importanti sui comandi di debug e sulla risoluzione dei problemi di sicurezza IP - Comprensione e uso dei comandi di debug nei documenti Cisco prima di usare il comando debug
comandi.
Per verificare automaticamente se la configurazione IPSec da LAN a LAN tra l'ASA e Cisco IOS è valida, è possibile usare lo strumento IPSec da LAN a LANChecker. Lo strumento è progettato in modo da accettare un show tech
o show running-config
da un router ASA o Cisco IOS. Esamina la configurazione e cerca di rilevare se è configurato un tunnel IPSec basato su mappa crittografica LAN a LAN. Se configurato, esegue un controllo della configurazione in più punti ed evidenzia gli eventuali errori di configurazione e le impostazioni per il tunnel che verrebbe negoziato.
Per risolvere i problemi di negoziazione del tunnel IPSec IKEv1 su un firewall ASA, è possibile utilizzare i seguenti debug
comandi:
debug crypto ipsec 127
debug crypto isakmp 127
debug ike-common 10
Nota: se il numero di tunnel VPN sull'appliance ASA è significativo, il debug crypto condition peer A.B.C.D
prima di abilitare i debug, è necessario usare il comando debug per limitare gli output del debug in modo che includano solo il peer specificato.
Per risolvere i problemi di negoziazione del tunnel IPSec IKEv1 su un router Cisco IOS, è possibile utilizzare i seguenti comandi di debug:
debug crypto ipsec
debug crypto isakmp
Nota: se il numero di tunnel VPN su Cisco IOS è significativo, il debug crypto condition peer ipv4 A.B.C.D
prima di abilitare i debug, è necessario utilizzarli per limitare gli output del debug in modo che includano solo il peer specificato.
Suggerimento: per ulteriori informazioni su come risolvere i problemi relativi a una VPN da sito a sito, consultare il documento sulle soluzioni più comuni per la risoluzione dei problemi relativi alle VPN IPSec da sito a sito Cisco.
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
17-Feb-2023 |
Versione iniziale |