NAT#

La traduzione degli indirizzi di rete (NAT - Network Address Translation) è utilizzata per modificare le informazioni degli indirizzi di rete negli header dei pacchetti durante il transito. Il NAT consente principalmente la traduzione degli indirizzi IP privati utilizzati all’interno di una rete locale in un indirizzo IP pubblico, consentendo a più dispositivi all’interno della rete locale di condividere un singolo indirizzo IP pubblico durante l’accesso a Internet. Per impostazione predefinita, tutti gli host all’interno della rete locale che accedono alla WAN utilizzando il firewall utilizzano la mascheratura. La mascheratura è una forma di NAT che assegna automaticamente l’indirizzo IP di origine dei pacchetti in uscita all’indirizzo IP WAN del firewall. Ciò garantisce che gli host interni che accedono a Internet appaiano ai server esterni come se stessero originando dall’indirizzo IP pubblico del firewall.

Accedi alla pagina NAT nella sezione`` Firewall`` per configurare i seguenti tipi di regole NAT:

Si noti che queste regole NAT vengono applicate a tutti i protocolli di rete.

Puoi configurare anche regole NAT di destinazione (DNAT), di solito denominate port forward o redirezione di porte, dalla pagina port forward.

SNAT#

Il NAT di origine, spesso indicato come SNAT, modifica l’indirizzo IP di origine dei pacchetti in uscita. Viene comunemente utilizzato nelle reti in cui gli indirizzi IP privati vengono tradotti in un singolo indirizzo IP pubblico durante la comunicazione con reti esterne. Il SNAT garantisce che le risposte dai server esterni vengano instradate correttamente al dispositivo interno corretto, modificando l’indirizzo IP di origine dei pacchetti in uscita con l’indirizzo IP pubblico. Ciò consente a più dispositivi interni di accedere a Internet utilizzando un unico indirizzo IP pubblico, migliorando la sicurezza e la scalabilità.

Esempio: Hai una piccola azienda con due indirizzi IP pubblici forniti dal tuo fornitore di servizi Internet (ISP). Desideri utilizzare uno di questi IP (1.2.3.4) specificamente per il tuo server di posta interno (192.168.1.33) per migliorarne la reputazione e l’autenticazione del mittente. L’altro indirizzo IP sarà utilizzato per l’accesso generale a Internet.

Problema: Per impostazione predefinita, tutto il traffico in uscita dalla tua rete utilizza lo stesso indirizzo IP WAN, incluso il tuo server di posta. Ciò può influire negativamente sulla reputazione del tuo server di posta, poiché gli spammer spesso utilizzano IP condivisi. Inoltre, potresti richiedere configurazioni specifiche per il server di posta che differiscono da quelle per il normale traffico Internet.

Soluzione: Configura l’alias IP (1.2.3.4) sulla tua interfaccia WAN, quindi crea una regola SNAT (Traduzione Statica degli Indirizzi di Rete) nel tuo firewall per instradare tutto il traffico in uscita dal tuo server di posta all’indirizzo IP pubblico dedicato. La regola dovrebbe contenere l’indirizzo IP interno del tuo server di posta (192.168.1.33) come sorgente e l’indirizzo IP pubblico dedicato (1.2.3.4) come indirizzo di traduzione, la zona di uscita deve essere impostata su WAN; seleziona SNAT come azione.

Risultato: Tutto il traffico in uscita originato dal tuo server di posta verrà ora tradotto all’indirizzo IP pubblico dedicato. Ciò migliora la reputazione del tuo server di posta e consente configurazioni specifiche adatte alle sue esigenze. Il traffico Internet generale continuerà a utilizzare l’altro indirizzo IP pubblico.

MASQUERADE#

La regola di mascheramento maschera tutto il traffico in uscita con l’indirizzo IP dell’interfaccia di uscita del firewall. Il traffico proveniente dagli host interni verso Internet viene automaticamente mascherato dal firewall. La mascheratura può anche essere utilizzata per mascherare il traffico proveniente da una rete remota (ad esempio, una VPN) con l’IP del firewall per evitare problemi di routing.

Esempio: Devi raggiungere un host sulla rete locale (routed) dalla rete VPN (ad esempio, 192.168.7.0/24), ma l’host non ha un gateway configurato o ha un gateway diverso rispetto al firewall.

Problema: L’host non riesce a raggiungere il dispositivo locale a causa della mancanza di un gateway.

Soluzione: Crea una regola NAT con azione di mascheramento per il traffico proveniente dalla rete VPN. Questo maschera il traffico dalla rete VPN (192.168.7.0/24) verso la rete locale con l’indirizzo IP del firewall dell’interfaccia di destinazione. La regola dovrebbe contenere la rete VPN (192.168.7.0/24) come sorgente e la rete dell’host interno (192.168.1.0/24) come indirizzo di destinazione, la zona di uscita può essere lasciata vuota; seleziona MASQUERADE come azione.

Risultato: L’host può raggiungere il dispositivo locale (ad esempio, 192.168.1.78) come se provenisse dal firewall.

ACCEPT (disabilita NAT)#

Una regola ACCEPT disabilita il NAT (no-NAT) e consente di bypassare il processo di NAT per un traffico specifico. Questo è particolarmente utile quando si tratta di evitare il mascheramento WAN per destinazioni specifiche.

Esempio: Il tuo firewall è collegato a un router che, oltre a consentire l’accesso a Internet, consente anche di raggiungere reti private attraverso connessioni CDN o tunnel IPsec. Per poter raggiungere reti remote private, il traffico dalla rete locale deve uscire con il proprio indirizzo IP originale (senza riscrittura del mascheramento).

Problema: Le politiche di tunnel del router consentono solo il traffico tra la rete locale di NethSecurity e le reti di destinazione, ma tutto il traffico esce dal firewall con l’IP mascherato (l’IP WAN di NethSecurity). A causa del mascheramento, la comunicazione diretta tra la LAN di NethSecurity e la rete remota non è possibile.

Soluzione: Crea una regola NAT (Network Address Translation) con ACCEPT nel tuo firewall. Questa regola evita il mascheramento per tutto il traffico diretto alla rete CDN, mantenendo invariato l’indirizzo IP di origine locale. La regola dovrebbe contenere la rete interna (192.168.1.0/24) come sorgente e la rete CDN (192.168.50.0/24) come indirizzo di destinazione.

Netmap#

Netmap è una tecnica di NAT che offre una traduzione 1:1 su tutta la rete senza cambiare gli indirizzi individuali degli host. Ciò significa che potrebbe mappare un’intera rete privata (ad esempio, 192.168.1.0/24) su un’altra rete (ad esempio, 10.5.6.0/24) in una sola volta, eliminando la necessità di configurare manualmente regole di NAT individuali per ogni dispositivo.

Esempio: Due firewall, FW-A e FW-B, che mantengono un tunnel VPN tra le reti A e B. Le reti locali e remote si sovrappongono (192.168.1.0/24), rendendo impossibile instradare il traffico tra di esse. Tradurre le reti A e B su due reti alternative può risolvere il problema in modo che non ci siano reti sovrapposte.

Utilizziamo questo schema di traduzione.

  • Rete A: 192.168.1.0/24 -> viene tradotta in -> Rete ALT_A: 10.1.1.0/24

  • Rete B: 192.168.1.0/24 -> viene tradotta in -> Rete ALT_B: 10.2.2.0/24

Un host nella rete A che cerca di raggiungere un host nella rete B non deve contattare l’IP reale, ma la sua rete tradotta (solo l’ultimo ottetto rimane lo stesso). Ad esempio, l’host 192.168.1.10 dalla rete A che desidera raggiungere 192.168.0.20 nella rete B deve contattare l’IP 10.2.2.20. Prima che la richiesta esca dal firewall FW-A, la sorgente del pacchetto sarà riscritta da FW-A all’IP ALT_IP 10.1.1.10 per eliminare ogni problema di instradamento nella rete B. Il processo inverso avverrà per i pacchetti in ritorno.

Soluzione: Il problema può essere risolto utilizzando Netmap per tradurre il traffico in una diversa rete privata. Ciò consente di instradare correttamente il traffico.

Come farlo

Per consentire alla rete A di accedere a una risorsa nella rete B, sono necessarie due regole: una per il netmap della sorgente e una per il netmap della destinazione.

  • La prima regola, agendo come netmap di origine, specifica che tutto il traffico diretto verso la rete 10.2.2.0/24 (rete di destinazione) e originato dalla rete 192.168.1.0/24 (rete di origine) verrà mappato sulla rete 10.1.1.0/24 (rete di origine mappata).

  • La seconda regola funge da netmap di destinazione, svolgendo un ruolo cruciale nel ricevere correttamente le risposte. Essa richiede che il traffico originato dalla rete 10.2.2.0/24 (rete di origine) e destinato alla rete 10.1.1.0/24 (rete di destinazione) sarà mappato sulla rete 192.168.1.0/24 (rete di destinazione mappata).

Risultato: Tutte le richieste di traffico (e le relative risposte) dalla rete A alla rete B saranno instradate correttamente.

Nota

Se è necessario consentire le richieste che si originano dalla rete B verso la rete A, è necessario eseguire la stessa configurazione anche nel firewall B.

Source netmap#

Il «source netmap» ci consente di determinare come debba cambiare la sorgente quando il traffico è diretto verso una destinazione specifica. Ad esempio, per una destinazione nella rete 10.2.2.0/24, con rete di origine 192.168.0.0/24, la rete di origine mappata sarà 10.1.1.0/24.

Puoi creare una regola di source netmap dalla pagina web all’interno della sezione NAT. Nella parte inferiore della pagina, clicca sul pulsante Aggiungi source NETMAP per creare una nuova regola. All’interno del riquadro, compila i campi come segue:

  • Nome: un nome per la regola

  • Rete di destinazione: la rete di destinazione nella notazione CIDR, ad esempio, 10.2.2.0/24 per l’esempio sopra

  • Rete di origine: la rete di origine, ad esempio, 192.168.1.0/24

  • Rete mappata: la rete di origine tradotta, ad esempio, 10.1.1.0/24

Nella sezione Impostazioni avanzate, è possibile specificare i dispositivi di input e output per la regola. Se il dispositivo non viene specificato, la regola sarà applicata a tutti i dispositivi.

Destination Netmap#

Il «destination netmap» ci consente di determinare come debba cambiare l’indirizzo IP di destinazione quando il traffico proviene da una rete specifica. Ad esempio, per una sorgente nella rete 10.2.2.0/24, con rete di destinazione 10.1.1.0/24, la rete di destinazione mappata sarà 192.168.0.0/24.

Puoi creare una regola di destination netmap dalla pagina web all’interno della sezione NAT. Nella parte inferiore della pagina, fai clic sul pulsante Aggiungi destination NETMAP per creare una nuova regola. All’interno del riquadro, compila i campi come segue:

  • Nome: un nome per la regola

  • Source network: the source network in CIDR notation, e.g., 10.2.2.0/24

  • Destination network: the destination network, e.g., 10.1.1.0/24

  • Mapped network: the translated destination network, e.g., 192.168.1.0/24

Nella sezione Impostazioni avanzate, è possibile specificare i dispositivi di input e output per la regola. Se il dispositivo non viene specificato, la regola sarà applicata a tutti i dispositivi.

CLI commands#

To create a SOURCE netmap rule from CLI

uci set netmap.r1=rule
uci set netmap.r1.name=source_nat
uci set netmap.r1.dest=10.2.2.0/24
uci set netmap.r1.map_from=192.168.1.0/24
uci set netmap.r1.map_to=10.1.1.0/24

you can also specify optional in/out devices this way:

uci  add_list netmap.r1.device_in='eth0'
uci  add_list netmap.r1.device_out='tunrw1'

Then commit and apply:

uci commit netmap
ns-netmap

To create a DESTINATION netmap rule from CLI

uci set netmap.r2=rule
uci set netmap.r2.name=dest_nat
uci set netmap.r2.src=10.2.2.0/24
uci set netmap.r2.map_from=10.1.1.0/24
uci set netmap.r2.map_to=192.168.1.0/24

you can also specify optional in/out devices this way:

uci  add_list netmap.r2.device_in='tunrw1'
uci  add_list netmap.r2.device_out='eth01'

Then commit and apply:

uci commit netmap
ns-netmap
/etc/init.d/firewall reload