Vai al contenuto
Avanet

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 VPNModello di routingControllo tipico
IPsec basato su policySophos Firewall esegue lookup IPsec in backgroundreti locali/remoti nella connessione IPsec, regole del firewall, se necessario ipsec_route
IPsec basato su rottaIl traffico viene instradato all’interfaccia del tunnelInterfaccia 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:

  1. Verificare lo stato del tunnel: La connessione IPsec è attiva e le reti previste sono negoziate.
  2. Verificare le regole del firewall: Zona di origine, zona di destinazione, origine, destinazione, servizio e registrazione sono corretti.
  3. Verificare il NAT: È chiaro se gli indirizzi IP originali o tradotti devono passare attraverso il tunnel.
  4. 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.
  5. Verificare il peer: Il peer conosce il percorso di ritorno e l’indirizzo di origine previsto.
  6. 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_route per traffico inoltrato, quando il traffico tradotto deve essere assegnato a un tunnel basato su policy.
  • sys-traffic-nat per 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:

  1. Definire il caso di test: Origine, destinazione, servizio, direzione e tunnel previsto.
  2. Attivare il logging delle regole del firewall per la regola interessata.
  3. Documentare system ipsec_route show.
  4. Generare il traffico di test una sola volta.
  5. Filtrare Log Viewer su origine, destinazione e regola del firewall.
  6. Eseguire Packet Capture con un filtro stretto.
  7. Verificare se i byte in ipsec statusall aumentano in entrambe le direzioni.
  8. 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

SintomoCausa probabileProssimo controllo
Tunnel verde, nessun trafficoRegola, NAT, percorso di ritorno o assegnazione IPsec mancanteLog Viewer, Packet Capture, ipsec statusall
Il traffico va verso WANPrecedenza delle rotte o assegnazione IPsec non correttaRoute Lookup, rotte SD-WAN, ipsec_route show
SNAT non si applica a IPsec basato su policyLa regola SNAT ha un’interfaccia di uscita errataVerificare la regola SNAT su Any
Un host funziona, una rete noMaschera di rete, oggetto o selettore di traffico non correttiConfrontare reti locali/remoti
Comportamento diverso dopo l’aggiornamento a SFOS-22Vecchio caso particolare con IPsec basato su policy, NAT o SD-WANNote di rilascio, caso di test e peer da verificare
Il traffico della stessa firewall non passa attraverso il tunnelIl traffico di sistema viene instradato diversamenteVerificare 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 show verificato 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?

No. Nelle normali connessioni site-to-site basate su policy, la configurazione IPsec con reti locali e remote appropriate è sufficiente. Una rotta IPsec manuale è uno strumento per casi particolari.

Dovrebbe essere utilizzato IPsec basato su rotta invece di basato su policy per nuove VPN?

Per connessioni tra sedi più grandi, in crescita o instradate dinamicamente, l’IPsec basato su rotta è spesso più chiaro. Tuttavia, i tunnel basati su policy semplici esistenti possono continuare ad essere utili se sono stabili e ben documentati.

Perché è importante l'interfaccia di uscita Any per SNAT?

Nel caso di IPsec basato su policy, il traffico non passa come il normale traffico Internet attraverso una specifica interfaccia WAN. Se una regola SNAT è limitata a una specifica interfaccia WAN, non può essere applicata al traffico IPsec basato su policy.

ipsec_route aiuta con il traffico generato dalla firewall?

In generale no. 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.

Dopo SFOS 22, è necessario reimpostare tutte le rotte IPsec?

No. Tuttavia, i casi particolari basati su policy con NAT, SD-WAN, MPLS o rotte IPsec manuali dovrebbero essere testati specificamente dopo un aggiornamento.