Introduzione
In questo documento viene descritto come configurare la VPN da sito a sito su Firepower Threat Defense (FTD) gestito da FMC.
Prerequisiti
Requisiti
È necessario conoscere i seguenti argomenti:
- Conoscenze base di VPN
- Esperienza con Firepower Management Center
- Esperienza con la riga di comando ASA
Componenti usati
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
- Cisco FTD 6.5
- ASA 9.10(1)32
- IKEv2
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.
Configurazione
Iniziare con la configurazione su FTD con FirePower Management Center.
Passaggio 1. Definire la topologia VPN.
1. Passare a Dispositivi > VPN > Sito - Sito. In Aggiungi VPN, fare clic su Firepower Threat Defense Device, come mostrato nell'immagine.
2. Viene visualizzata la casella Create New VPN Topology (Crea nuova topologia VPN). Dai a VPN un nome che sia facilmente identificabile.
Topologia di rete: Point-to-Point
Versione IKE: IKEv2
In questo esempio, quando si selezionano gli endpoint, il nodo A è l'FTD e il nodo B è l'ASA. Fare clic sul pulsante più verde per aggiungere dispositivi alla topologia, come mostrato nell'immagine.
3. Aggiungere l'FTD come primo endpoint.
Selezionare l'interfaccia su cui deve essere posizionata una mappa crittografica. L'indirizzo IP deve essere popolato automaticamente dalla configurazione del dispositivo.
Fare clic sul segno più verde in Reti protette, come mostrato in questa immagine, per selezionare le subnet da crittografare in questa VPN.
4. Fare clic sul segno più verde per creare un oggetto di rete.
5. Aggiungere all'FTD tutte le subnet locali da cifrare. Fare clic su Aggiungi per spostarli nelle reti selezionate. Fare clic su OK, come mostrato nell'immagine.
FTDSubnet = 10.10.113.0/24
Nodo A: (FTD) endpoint completato. Fare clic sul segno più verde per il Nodo B, come mostrato nell'immagine.
Il nodo B è un'ASA. I dispositivi non gestiti dal FMC sono considerati Extranet.
6. Aggiungere un nome di dispositivo e un indirizzo IP. Fare clic sul segno più verde per aggiungere le reti protette, come mostrato nell'immagine.
7. Come mostrato in questa immagine, selezionare le subnet ASA da crittografare e aggiungerle alle reti selezionate.
Subnet ASA = 10.10.110.0/24
Passaggio 2. Configurare i parametri IKE.
A questo punto, entrambi gli endpoint vengono configurati tramite IKE/IPSEC.
1. Nella scheda IKE, specificare i parametri utilizzati per lo scambio iniziale di IKEv2. Fare clic sul segno più verde per creare un nuovo criterio IKE, come mostrato nell'immagine.
2. Nella nuova regola IKE, specificare un numero di priorità e la durata della fase 1 della connessione. Questo documento utilizza questi parametri per lo scambio iniziale: Integrità (SHA256), Crittografia (AES-256), PRF (SHA256) e Gruppo Diffie-Hellman (Gruppo 14)
Nota: tutti i criteri IKE nel dispositivo vengono inviati al peer remoto indipendentemente da quanto è presente nella sezione dei criteri selezionata. Per la connessione VPN verrà selezionato il primo criterio IKE corrispondente al peer remoto. Scegliere il criterio da inviare per primo utilizzando il campo Priorità. La priorità 1 verrà inviata per prima.
3. Una volta aggiunti i parametri, selezionare questo criterio e scegliere il tipo di autenticazione.
4. Scegliere manuale pre-chiave condivisa. Per questo documento, viene usato PSK cisco123.
Passaggio 3. Configurare i parametri IPSec.
1. In IPSec, fare clic sulla matita per modificare il set di trasformazioni e creare una nuova proposta IPSec, come mostrato nell'immagine.
2. Per creare una nuova proposta IPSec IKEv2, fare clic sul segno più verde e immettere i parametri della fase 2.
Selezionare ESP Encryption > AES-GCM-256. Se per la crittografia viene utilizzato l'algoritmo GCM, non è necessario alcun algoritmo Hash. Con GCM la funzione hash è integrata.
3. Dopo aver creato la nuova proposta IPSec, aggiungerla ai set di trasformazioni selezionati.
La nuova proposta IPSec selezionata viene ora elencata in Proposte IPSec IKEv2.
Se necessario, è possibile modificare la durata della fase 2 e l'opzione PFS. Per questo esempio, la durata verrà impostata come predefinita e PFS verrà disattivato.
Facoltativo: è necessario completare l'opzione Ignora controllo di accesso o Crea criteri di controllo di accesso.
Passaggio 4. Ignorare il controllo di accesso.
Facoltativamente, è possibile abilitare sysopt allow-vpn in Advanced > Tunnel.
In questo modo non è più possibile utilizzare i criteri di controllo di accesso per ispezionare il traffico proveniente dagli utenti. È comunque possibile usare filtri VPN o ACL scaricabili per filtrare il traffico degli utenti. Questo è un comando globale e verrà applicato a tutte le VPN se questa casella di controllo è abilitata.
Se sysopt allow-vpn non è abilitato, è necessario creare una policy di controllo dell'accesso per consentire il traffico VPN attraverso il dispositivo FTD. Se l'opzione sysopt allow-vpn è abilitata, ignorare la creazione di criteri di controllo di accesso.
Passaggio 5. Creare criteri di controllo di accesso.
In Criteri di controllo d'accesso, passare a Criteri > Controllo d'accesso > Controllo d'accesso e selezionare il criterio che interessa il dispositivo FTD. Per aggiungere una regola, fare clic su Aggiungi regola, come mostrato nell'immagine.
Deve essere consentito il traffico dalla rete interna verso l'esterno e dalla rete esterna verso la rete interna. Creare una regola per eseguire entrambe le operazioni o creare due regole per mantenerle separate. In questo esempio, viene creata una regola per eseguire entrambe le operazioni.
Passaggio 6. Configurare l'esenzione NAT.
Configurare un'istruzione di esenzione NAT per il traffico VPN. L'esenzione NAT deve essere in atto per evitare che il traffico VPN colpisca un'altra istruzione NAT e traduca in modo errato il traffico VPN.
1. Passare a Dispositivi > NAT, selezionare il criterio NAT che ha come destinazione l'FTD. Creare una nuova regola facendo clic sul pulsante Aggiungi regola.
2. Creare una nuova regola NAT manuale statica. Fare riferimento alle interfacce interne ed esterne.
3. Sotto la scheda Traduzione e selezionare le subnet di origine e di destinazione. Poiché si tratta di una regola di esenzione NAT, rendere uguali l'origine/destinazione originale e l'origine/destinazione tradotta, come mostrato nella seguente immagine:
4. Infine, passare alla scheda Avanzate e abilitare la funzione di ricerca senza proxy e route.
5. Salva questa regola e guarda i risultati finali nell'elenco NAT.
6. Al termine della configurazione, salvare e distribuire la configurazione nell'FTD.
Passaggio 7. Configurare l'appliance ASA.
- Abilitare IKEv2 sull'interfaccia esterna dell'appliance ASA:
Crypto ikev2 enable outside
2. Creare il criterio IKEv2 che definisce gli stessi parametri configurati nell'FTD:
Crypto ikev2 policy 1
Encryption aes-256
Integrity sha256
Group 14
Prf sha256
Lifetime seconds 86400
3. Creare un criterio di gruppo che consenta il protocollo ikev2:
Group-policy FTD_GP internal
Group-policy FTD_GP attributes
Vpn-tunnel-protocol ikev2
4. Creare un gruppo di tunnel per l'indirizzo IP pubblico FTD peer. Fare riferimento ai criteri di gruppo e specificare la chiave già condivisa:
Tunnel-group 172.16.100.20 type ipsec-l2l
Tunnel-group 172.16.100.20 general-attributes
Default-group-policy FTD_GP
Tunnel-group 172.16.100.20 ipsec-attributes
ikev2 local-authentication pre-shared-key cisco123
ikev2 remote-authentication pre-shared-key cisco123
5. Creare un elenco degli accessi che definisca il traffico da crittografare: (FTDSubnet 10.10.113.0/24) (ASASubnet 10.10.110.0/24)
Object network FTDSubnet
Subnet 10.10.113.0 255.255.255.0
Object network ASASubnet
Subnet 10.10.110.0 255.255.255.0
Access-list ASAtoFTD extended permit ip object ASASubnet object FTDSubnet
6. Creare una proposta ipsec ikev2 che faccia riferimento agli algoritmi specificati nell'FTD:
Crypto ipsec ikev2 ipsec-proposal FTD
Protocol esp encryption aes-gcm-256
7. Creare una voce della mappa crittografica che colleghi la configurazione:
Crypto map outside_map 10 set peer 172.16.100.20
Crypto map outside_map 10 match address ASAtoFTD
Crypto map outside_map 10 set ikev2 ipsec-proposal FTD
Crypto map outside_map 10 interface outside
8. Creare una dichiarazione di esenzione NAT che impedisca al traffico VPN di essere NATTED dal firewall:
Nat (inside,outside) 1 source static ASASubnet ASASubnet destination static FTDSubnet FTDSubnet no-proxy-arp route-lookup
Verifica
Nota: al momento non è possibile verificare lo stato del tunnel VPN dal FMC. È necessario apportare un miglioramento a questa funzionalità CSCvh7603.
Tentativo di avviare il traffico attraverso il tunnel VPN. Per accedere alla riga di comando dell'ASA o dell'FTD, è possibile usare il comando packet tracer. Quando si usa il comando packet-tracer per richiamare il tunnel VPN, deve essere eseguito due volte per verificare che il tunnel venga attivato. La prima volta che il comando viene emesso, il tunnel VPN è inattivo, quindi il comando packet-tracer non riuscirà con VPN encrypt DROP. Non utilizzare l'indirizzo IP interno del firewall come indirizzo IP di origine nel packet-tracer, in quanto si verificheranno sempre errori.
firepower# packet-tracer input inside icmp 10.10.113.10 8 0 10.10.110.10
Phase: 10
Type: VPN
Subtype: encrypt
Result: DROP
Config:
Additional Information:
firepower# packet-tracer input inside icmp 10.10.113.10 8 0 10.10.110.10
Phase: 1
Type: ROUTE-LOOKUP
Subtype: Resolve Egress Interface
Result: ALLOW
Config:
Additional Information:
found next-hop 172.16.100.1 using egress ifc outside
Phase: 2
Type: UN-NAT
Subtype: static
Result: ALLOW
Config:
nat (Inside,outside) source static FTDSubnet FTDSubnet destination static ASASubnet ASASubnet no-proxy-arp route-lookup
Additional Information:
NAT divert to egress interface outside
Untranslate 10.10.110.10/0 to 10.10.110.10/0
Phase: 3
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group CSM_FW_ACL_ global
access-list CSM_FW_ACL_ advanced permit ip ifc Inside object-group FMC_INLINE_src_rule_268436483 ifc outside object-group FMC_INLINE_dst_rule_268436483 rule-id 268436483
access-list CSM_FW_ACL_ remark rule-id 268436483: ACCESS POLICY: FTD-Access-Control-Policy - Mandatory
access-list CSM_FW_ACL_ remark rule-id 268436483: L7 RULE: VPN_Traffic
object-group network FMC_INLINE_src_rule_268436483
description: Auto Generated by FMC from src of UnifiedNGFWRule# 1 (FTD-Access-Control-Policy/mandatory)
network-object object ASASubnet
network-object object FTDSubnet
object-group network FMC_INLINE_dst_rule_268436483
description: Auto Generated by FMC from dst of UnifiedNGFWRule# 1 (FTD-Access-Control-Policy/mandatory)
network-object object ASASubnet
network-object object FTDSubnet
Additional Information:
This packet will be sent to snort for additional processing where a verdict will be reached
Phase: 5
Type: NAT
Subtype:
Result: ALLOW
Config:
nat (Inside,outside) source static FTDSubnet FTDSubnet destination static ASASubnet ASASubnet no-proxy-arp route-lookup
Additional Information:
Static translate 10.10.113.10/0 to 10.10.113.10/0
Phase: 10
Type: VPN
Subtype: encrypt
Result: ALLOW
Config:
Additional Information:
Result:
input-interface: Inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: allow
Per monitorare lo stato del tunnel, accedere alla CLI dell'FTD o dell'ASA.
Dalla CLI dell'FTD verificare la fase 1 e la fase 2 con questo comando:
Mostra sa crypto ikev2
> show crypto ikev2 sa
IKEv2 SAs:
Session-id:4, Status:UP-ACTIVE, IKE count:1, CHILD count:1
Tunnel-id Local Remote Status Role
9528731 172.16.100.20/500 192.168.200.10/500 READY INITIATOR
Encr: AES-CBC, keysize: 256, Hash: SHA256, DH Grp:14, Auth sign: PSK, Auth verify: PSK
Life/Active Time: 86400/118 sec
Child sa: local selector 10.10.113.0/0 - 10.10.113.255/65535
remote selector 10.10.110.0/0 - 10.10.110.255/65535
ESP spi in/out: 0x66be357d/0xb74c8753
Risoluzione dei problemi e debug
Problemi iniziali di connettività
Quando si costruisce una VPN, ci sono due lati che negoziano il tunnel. Pertanto, è consigliabile ottenere entrambi i lati della conversazione quando si risolvono i problemi relativi a qualsiasi tipo di errore del tunnel. Per una guida dettagliata su come eseguire il debug dei tunnel IKEv2, fare riferimento a:
La causa più comune degli errori del tunnel è un problema di connettività. Il modo migliore per determinare questa condizione è di acquisire i pacchetti sul dispositivo. Utilizzare questo comando per acquisire pacchetti sul dispositivo:
Capture capout interface outside match ip host 172.16.100.20 host 192.168.200.10
Una volta eseguita l'acquisizione, provare a inviare il traffico sulla VPN e verificare la presenza di traffico bidirezionale nell'acquisizione dei pacchetti.
Esaminare l'acquisizione dei pacchetti con questo comando:
mostra capout
firepower# show cap capout
4 packets captured
1: 11:51:12.059628 172.16.100.20.500 > 192.168.200.10.500: udp 690
2: 11:51:12.065243 192.168.200.10.500 > 172.16.100.20.500: udp 619
3: 11:51:12.066692 172.16.100.20.500 > 192.168.200.10.500: udp 288
4: 11:51:12.069835 192.168.200.10.500 > 172.16.100.20.500: udp 240
Problemi specifici del traffico
I problemi più comuni che si possono verificare sono:
- Problemi di routing dietro l'FTD — la rete interna non è in grado di indirizzare i pacchetti agli indirizzi IP e ai client VPN assegnati.
- Access Control List che blocca il traffico.
- Non è possibile ignorare Network Address Translation per il traffico VPN.
Per ulteriori informazioni sulle VPN sull'FTD gestito da FMC, è possibile consultare la guida alla configurazione completa qui: FTD gestito da FMC