Creare una rotta IPsec su Sophos Firewall
Normalmente, Sophos Firewall riconosce autonomamente attraverso quale tunnel IPsec è raggiungibile una rete di destinazione. In un classico tunnel IPsec basato su policy, le reti locali e remote fanno parte della configurazione del tunnel. In un IPsec basato su rotta, invece, il traffico viene instradato nel tunnel tramite interfacce XFRM, rotte statiche, rotte SD-WAN o routing dinamico.
Una rotta IPsec manuale non è quindi standard per ogni tunnel. Si tratta di uno strumento per scenari specifici basati su policy, soprattutto quando il traffico inoltrato deve lavorare con NAT o un’assegnazione particolare al tunnel. Se una tale rotta viene impostata in modo errato, il traffico può finire nel tunnel sbagliato o una connessione esistente può diventare più difficile da tracciare.
Per nuovi tunnel tra sedi, è meglio iniziare con Configurare il VPN IPsec Site-to-Site su Sophos Firewall. Per il troubleshooting generale di IPsec, consultare Troubleshooting VPN IPsec su Sophos Firewall. Per VPN basate su rotta, XFRM e pianificazione delle interfacce, consultare Configurare zone e interfacce su Sophos Firewall.
Quando è utile una rotta IPsec
Una rotta IPsec è particolarmente rilevante quando esiste un tunnel IPsec basato su policy, ma il traffico previsto non viene assegnato correttamente al tunnel.
Casi tipici:
- Un host o una rete deve passare specificamente attraverso un determinato tunnel basato su policy.
- Ci sono più tunnel, reti di destinazione sovrapposte o configurazioni VPN storiche.
- Il traffico viene tradotto tramite DNAT o SNAT e deve essere quindi assegnato a un tunnel IPsec esistente.
- Dopo un aggiornamento a SFOS 22, si vuole verificare se i vecchi casi particolari basati su policy funzionano ancora come previsto.
- Route Lookup, Log Viewer o Packet Capture mostrano che il traffico va verso WAN o un percorso errato.
Non tutti questi casi vengono risolti con ipsec_route. Prima devono essere verificate le regole del firewall, le regole NAT, la precedenza delle rotte, i gateway locali e le rotte di ritorno.
Basato su policy, basato su rotta e SFOS 22
La differenza principale:
| Tipo di VPN | Modello di routing | Controllo tipico |
|---|---|---|
| IPsec basato su policy | Sophos Firewall esegue lookup IPsec in background | reti locali/remoti nella connessione IPsec, regole del firewall, se necessario ipsec_route |
| IPsec basato su rotta | Il traffico viene instradato all’interfaccia del tunnel | Interfaccia XFRM, rotta statica, rotta SD-WAN o routing dinamico |
Per nuove o grandi connessioni tra sedi, l’IPsec basato su rotta è spesso più chiaro, poiché le modifiche al routing non cambiano ogni volta i selettori del tunnel. Per semplici connessioni site-to-site o ambienti esistenti, l’IPsec basato su policy rimane comunque rilevante.
SFOS 22 ha apportato modifiche al comportamento di IPsec in diversi punti. Nelle note di rilascio di SFOS-22.0-MR1 sono documentati diversi problemi risolti relativi a IPsec basato su policy, ipsec_route, SD-WAN, SNAT e Route Lookup. Per gli amministratori, ciò significa che dopo un aggiornamento, i casi particolari basati su policy dovrebbero essere testati specificamente, soprattutto se coinvolgono NAT, MPLS, SD-WAN o rotte IPsec manuali.
Prerequisiti
Prima di apportare modifiche, è importante chiarire i seguenti punti:
- Accesso alla Device Console, ad esempio tramite SSH.
- Nome del tunnel IPsec.
- Host di destinazione o rete di destinazione che deve essere raggiunta tramite il tunnel.
- Connessione IPsec attiva o correttamente configurata.
- Regole del firewall appropriate per la direzione prevista.
- Chiarezza se è coinvolto il NAT.
- Stato attuale delle rotte IPsec esistenti documentato.
Se l’accesso alla console non è ancora configurato, Collegarsi a Sophos Firewall tramite SSH spiega come stabilire una connessione SSH al firewall e aprire la Device Console.
⚠️ Una rotta IPsec errata può disturbare il traffico produttivo. Prima di apportare modifiche, dovrebbero essere documentati il nome del tunnel, la rete di destinazione, il NAT, il percorso di ritorno e le rotte esistenti.
Verifiche prima della modifica
Non si dovrebbe impostare una rotta IPsec come primo passo. È utile seguire questo ordine:
- Verificare lo stato del tunnel: La connessione IPsec è attiva e le reti previste sono negoziate.
- Verificare le regole del firewall: Zona di origine, zona di destinazione, origine, destinazione, servizio e registrazione sono corretti.
- Verificare il NAT: È chiaro se gli indirizzi IP originali o tradotti devono passare attraverso il tunnel.
- Verificare la precedenza delle rotte: Le rotte statiche, SD-WAN e VPN vengono valutate nell’ordine previsto. Se più tipi di routing competono, Modificare in sicurezza la precedenza delle rotte su Sophos Firewall può aiutare.
- Verificare il peer: Il peer conosce il percorso di ritorno e l’indirizzo di origine previsto.
- Utilizzare Packet Capture: Dimostrare se il traffico arriva, dove viene inoltrato e se le risposte tornano.
Per la verifica generale delle regole, Testare le regole del firewall con Log Viewer, Policy Test e Packet Capture è utile. Per le basi del NAT, Comprendere il NAT su Sophos Firewall è appropriato.
Visualizzare le rotte IPsec esistenti
I comandi vengono eseguiti nella Device Console, non nella Advanced Shell.
system ipsec_route show
L’output dovrebbe essere documentato prima di ogni modifica. In questo modo si può vedere successivamente se una rotta è stata aggiunta e se deve essere rimossa.
Inoltre, la tabella di routing IPsec può essere rilevante per l’analisi:
ip route show table 220
Questo controllo viene eseguito nella Advanced Shell ed è più pensato per il troubleshooting. Per le modifiche normali a ipsec_route, la Device Console rimane il luogo corretto.
Creare una rotta IPsec per un host
Se solo un singolo host deve essere raggiungibile tramite un determinato tunnel, si utilizza host.
Sintassi:
system ipsec_route add host <host-ip> tunnelname <tunnelname>
Esempio:
system ipsec_route add host 10.33.46.69 tunnelname Azure_CH
Dopo, non si dovrebbe solo testare il ping, ma verificare il traffico applicativo reale. Un test ICMP può funzionare, mentre TCP, NAT o il percorso di ritorno possono ancora essere errati.
Creare una rotta IPsec per una rete
Se un’intera rete deve essere raggiungibile tramite il tunnel, si utilizza net.
Sintassi:
system ipsec_route add net <network>/<netmask> tunnelname <tunnelname>
Esempio:
system ipsec_route add net 10.33.46.0/255.255.255.0 tunnelname Azure_CH
Con le rotte di rete è necessaria particolare cautela. Una rete troppo grande può attirare più traffico nel tunnel di quanto previsto. Con reti sovrapposte, deve essere chiaro in anticipo quale lato vede quali indirizzi e se viene utilizzato il NAT.
Rimuovere una rotta IPsec
Se la rotta non è più necessaria o è stata impostata in modo errato, può essere eliminata.
Rimuovere la rotta host:
system ipsec_route del host <host-ip> tunnelname <tunnelname>
Rimuovere la rotta di rete:
system ipsec_route del net <network>/<netmask> tunnelname <tunnelname>
Dopo, verificare nuovamente l’elenco:
system ipsec_route show
Se la rotta ha influenzato il traffico produttivo, si dovrebbe testare nuovamente la connessione interessata dopo la rimozione e confrontare le voci del Log Viewer.
NAT e IPsec basato su policy
Il NAT non è intrinsecamente errato con IPsec. Deve però essere pianificato con cura, poiché il NAT modifica l’indirizzo che il peer vede.
Sophos distingue tra questi casi con IPsec:
- NAT direttamente nella configurazione IPsec, ad esempio con reti sovrapposte.
- Regole NAT autonome sotto Rules and policies > NAT rules.
ipsec_routeper traffico inoltrato, quando il traffico tradotto deve essere assegnato a un tunnel basato su policy.sys-traffic-natper il traffico generato dal sistema della stessa firewall.
Importante è la direzione: Se il traffico IPsec basato su policy deve essere tradotto tramite SNAT, la regola SNAT appropriata deve lavorare con Outbound interface su Any. Se la regola invece punta a interfacce WAN specifiche, non verrà applicata al traffico IPsec basato su policy. Proprio tali dettagli portano nella pratica a tunnel che sono verdi, ma non trasportano il traffico previsto.
Il traffico generato dal sistema è un caso speciale
ipsec_route non è pensato per ogni tipo di traffico. Il comando si applica al traffico inoltrato. Il traffico generato dal sistema della stessa firewall, come richieste di autenticazione o casi legati a DHCP, viene trattato diversamente.
Praticamente significa che:
- Il traffico client o server attraverso la firewall può essere un tema
ipsec_route. - Le richieste proprie della firewall necessitano, a seconda dello scenario, di rotte SD-WAN, precedenza delle rotte o
sys-traffic-nat. - Non si dovrebbe cercare di risolvere ogni problema di traffico di sistema in modo generico con
ipsec_route.
Per il traffico generato dal sistema e il contesto SD-WAN, Routing SD-WAN per pacchetti di risposta e traffico di sistema è appropriato.
Test della modifica
Dopo aver creato o rimosso una rotta IPsec, il traffico interessato dovrebbe essere testato specificamente.
Procedura pratica:
- Definire il caso di test: Origine, destinazione, servizio, direzione e tunnel previsto.
- Attivare il logging delle regole del firewall per la regola interessata.
- Documentare
system ipsec_route show. - Generare il traffico di test una sola volta.
- Filtrare Log Viewer su origine, destinazione e regola del firewall.
- Eseguire Packet Capture con un filtro stretto.
- Verificare se i byte in
ipsec statusallaumentano in entrambe le direzioni. - Verificare il peer per il percorso di ritorno, NAT e firewall locale.
Se trasferimenti di grandi dimensioni si bloccano, anche se routing e NAT sembrano corretti, dovrebbe essere verificato anche MTU e MSS in caso di problemi VPN.
Errori tipici
| Sintomo | Causa probabile | Prossimo controllo |
|---|---|---|
| Tunnel verde, nessun traffico | Regola, NAT, percorso di ritorno o assegnazione IPsec mancante | Log Viewer, Packet Capture, ipsec statusall |
| Il traffico va verso WAN | Precedenza delle rotte o assegnazione IPsec non corretta | Route Lookup, rotte SD-WAN, ipsec_route show |
| SNAT non si applica a IPsec basato su policy | La regola SNAT ha un’interfaccia di uscita errata | Verificare la regola SNAT su Any |
| Un host funziona, una rete no | Maschera di rete, oggetto o selettore di traffico non corretti | Confrontare reti locali/remoti |
| Comportamento diverso dopo l’aggiornamento a SFOS-22 | Vecchio caso particolare con IPsec basato su policy, NAT o SD-WAN | Note di rilascio, caso di test e peer da verificare |
| Il traffico della stessa firewall non passa attraverso il tunnel | Il traffico di sistema viene instradato diversamente | Verificare SD-WAN, precedenza delle rotte e sys-traffic-nat |
Checklist
Prima della modifica:
- Nome del tunnel e peer documentati.
- Host di destinazione o rete di destinazione chiari.
- Regole del firewall e regole NAT verificate.
- Precedenza delle rotte e contesto SD-WAN verificati.
- Rotte IPsec esistenti salvate.
- Finestra di manutenzione o momento di test controllato pianificato.
Dopo la modifica:
system ipsec_route showverificato nuovamente.- Log Viewer mostra la regola prevista.
- Packet Capture mostra il percorso previsto.
- Il peer vede l’indirizzo di origine previsto.
- Il percorso di ritorno funziona.
- Modifica e motivazione documentate.
FAQ
Ogni connessione IPsec basata su policy necessita di una rotta IPsec?
Dovrebbe essere utilizzato IPsec basato su rotta invece di basato su policy per nuove VPN?
Perché è importante l'interfaccia di uscita Any per SNAT?
ipsec_route aiuta con il traffico generato dalla firewall?
ipsec_route è pensato per il traffico inoltrato. Per il traffico generato dalla firewall, a seconda dello scenario, devono essere verificate SD-WAN, precedenza delle rotte o sys-traffic-nat.