Problema
L'obiettivo è consentire agli utenti VPN l'accesso completo alle risorse della rete interna dopo la corretta autenticazione VPN tramite RADIUS (su un server aggiunto al dominio Windows) su Cisco Secure Firewall FTD.
La configurazione della VPN è già operativa. È possibile scaricare e installare il client VPN e autenticarlo correttamente. Il problema riguarda la configurazione del controllo di accesso e delle regole NAT necessarie per consentire l'accesso alle risorse interne necessarie sulla VPN.
Ambiente
- Prodotto: Cisco Secure Firewall Firepower (FTD), versione 7.6.0 (applicabile a tutti gli FTD)
- Gestione: Firepower Management Center (FMC), FMC distribuito tramite cloud (cdFMC) o Firepower Device Manager (FDM)
- Versione del software: 7.6.0
Risoluzione
In questa procedura viene descritta in dettaglio la configurazione necessaria per consentire agli utenti VPN di accedere alle risorse interne (ad esempio RDP e Active Directory) su Cisco FTD. Sono incluse la creazione di regole per i criteri di accesso, la configurazione delle esenzioni NAT e del protocollo NAT hairpin per il traffico VPN e l'utilizzo dei comandi di risoluzione dei problemi per convalidare la configurazione.
1: Aggiungere una voce all'elenco degli accessi per consentire al pool di indirizzi VPN di accedere alle risorse interne.
access-list CSM_FW_ACL_ advanced allow ip object VPN_Pool any rule-id 268438528
access-list CSM_FW_ACL_ note rule-id 268438528: ACCESS POLICY: Default Access Control Policy - Obbligatorio
access-list CSM_FW_ACL_ note rule-id 268438528: L7 RULE: Permit_VPN_Pool
2: Aggiungere una regola dell'elenco degli accessi per consentire alle risorse interne di inviare il traffico di ritorno al pool VPN:
access-list CSM_FW_ACL_ advanced allow ip any object VPN_Pool
Tali norme possono essere rese più rigorose per limitare le fonti e le destinazioni specifiche in base alle necessità.
3: Configurare l'esenzione NAT o il NAT hairpin per il traffico VPN
Esistono due approcci comuni:
- Opzione A: Esenzione NAT per pool VPN su subnet interna
nat (esterno, interno) origine statica VPN_Pool VPN_Pool destinazione statica Net_192.168.95.1-24 Net_192.168.95.1-24 route-lookup
- Opzione B: NAT hairpin per pool VPN sulla stessa interfaccia (no-proxy-arp)
Nat (any,any) source static VPN_Pool VPN_Pool no-proxy-arp
- Opzione C: NAT con hairpin dinamico per pool VPN su interfaccia esterna
Interfaccia VPN_Pool dinamica nat (esterna, esterna)
Il metodo corretto dipende dal fatto che le risorse interne si trovino sulla stessa interfaccia fisica (che richiede un NAT hairpin) o su interfacce diverse (esenzione NAT).
4: Usare il comando packet-tracer per simulare i flussi di traffico tra il pool VPN e le risorse interne e verificare se il traffico è autorizzato dalla regola, dal protocollo NAT e dal percorso previsti.
input packet-tracer esterno a icmp 192.168.250.1 8 0 192.168.95.1
packet-tracer in entrata fuori da tcp 192.168.250.1 12345 192.168.95.1 80
input packet-tracer in icmp 192.168.95.1 8 0 192.168.250.1
input packet-tracer all'interno di tcp 192.168.250.1 54321 192.168.95.1 443
—
Fase 5
ID: 5
Tipo: ACCESS-LIST
Risultato: ALLOW
Config: access-group CSM_FW_ACL_ globalaccess-list CSM_FW_ACL_ advanced allow ip object VPN_Pool any rule-id 268438528 access-list CSM_FW_ACL_ remark rule-id 268438528: ACCESS POLICY: Default Access Control Policy - Mandatoryaccess-list CSM_FW_ACL_ remark rule-id 268438528: L7 RULE: Permit_VPN_Pool
Ulteriori informazioni: questo pacchetto verrà inviato a snort per un'ulteriore elaborazione in cui verrà raggiunto un verdetto Regola per risultati ricerca basata sul flusso in avanti: in id=0x40009d6ae190, priority=12, domain=allow, deny=false hits=1300, user_data=0x00000000000000000, cs_id=0x0, use_real_addr, flags=0x0, protocol src ip/id=240.0.0.0, mask=255.255.255.255, port=0, tag=any, ifc=any dst ip/id=240.5.0.2, mask=255.255.255.255, port=0, tag=any, ifc=any, dscp=0x0, input_ifc=any, output_ifc=any
Tempo trascorso: 0 ns
—
Fase 7
ID: 7
Tipo: NAT
Risultato: ALLOW
Configurazione: interfaccia dinamica VPN_Pool nat (esterna, esterna)
Ulteriori informazioni: Static translate 192.168.250.1/12345 to 192.168.250.1/12345 Forward Flow based lookup yields rule: in id=0x40009d6ad0a0, priority=6, domain=nat, deny=false hits=274, user_data=0x000040009963a2d0, cs_id=0x0, flags=0x0, protocol=0 src ip/id=192.168.250.1, mask=255.255.255.255, port=0, tag=any dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any dscp=0x0, input_ifc=any, output_ifc=any
Tempo trascorso: 0 ns
Nota: l'output packet-tracer per la fase WebVPN potrebbe mostrare una perdita per il traffico VPN sull'interfaccia esterna. Questo è il comportamento previsto per il traffico in testo normale sull'interfaccia esterna e può ancora essere usato per convalidare NAT.
Note aggiuntive:
- È possibile che le acquisizioni di pacchetti nell'interfaccia utente di difesa dalle minacce visualizzino solo le richieste in arrivo. Se non vengono rilevate perdite, ma il traffico non raggiunge la risorsa interna, controllare le regole NAT e dell'elenco degli accessi.
- Quando SSH non è disponibile, tutte le operazioni di risoluzione dei problemi possono essere eseguite tramite le funzionalità dell'interfaccia utente di Threat Defense in cdFMC, ma l'utilizzo dei comandi è limitato.
- È possibile che siano necessarie alcune modifiche sui dispositivi adiacenti per la connettività end-to-end. Verificare che tali modifiche siano convalidate in base alle esigenze.
Causa
La causa principale è stata l'insufficienza dei criteri di accesso e della configurazione NAT per il traffico da VPN a interno e da interno a VPN del pool. La configurazione predefinita non consente la comunicazione bidirezionale completa dal pool VPN alle risorse interne e viceversa, né gestisce i requisiti NAT hairpin per il traffico in entrata e in uscita sulla stessa interfaccia.
Contenuto correlato