NAT e Packet Mangling con iptables

Nella prima parte di questo articolo impareremo come eseguire Network Address Translation (NAT) e Port Address Translation (PAT), indicato anche come Network Address e Port Translation (NAPT), con iptables. Dopo di che, noi impariamo che cosa mascherare il pacchetto è e come manipolare i pacchetti.

Una breve introduzione al NAT e PAT (NAPT)

  

A seconda di come TCP / IP di lavori, in modo che gli host di comunicare su Internet, ognuno deve avere un indirizzo IP univoco.
Tuttavia, a causa della carenza di indirizzi IP pubblici disponibili, è necessario utilizzare un indirizzo IP per molti host utilizzando NAT.
Network Address Translation è un modo per tradurre un indirizzo IP in un altro. Ciò implica un router NAT (Linux nel nostro caso), che riscrive l'IP sorgente o destinazione di un dispositivo dietro il router NAT.
Ci sono molte piccole scatole chiamati router SOHO o router NAT che può essere utilizzato per eseguire NAT per una piccola rete privata. Sono economici e di solito si può semplicemente collegare in e tutto funziona. Se hai già utilizzato uno, vedrete che ci sono molte cose che puoi fare con Linux.


SNAT e Masquerade

SNAT è un alias per Source Network Address Translation. Si chiama così perché solo l'indirizzo IP di origine viene tradotta. La finestra di NAT sovrascrivere l'indirizzo di origine nelle intestazioni IP di tutti i pacchetti inviati da una scatola dietro NAT per uno o più indirizzi IP.
Uno o molti ospiti può essere tradotto in uno o molti indirizzi IP pubblici solo quando l'accesso a Internet, ma quando una richiesta da Internet è fatta per l'indirizzo IP pubblico (es), la richiesta non sarà di raggiungere qualsiasi dei padroni di casa (se il indirizzo tradotto è il router, si raggiunge il router, altrimenti i pacchetti saranno eliminati). Questa è una buona protezione per le reti locali e consente di risparmiare un sacco di indirizzi IP pubblici.
Se uno o molti host dietro NAT sono tradotte in un solo indirizzo IP pubblico, il processo è chiamato static SNAT. Se sono tradotte in diverse indirizzi IP pubblici (di solito un intervallo di indirizzi IP), il processo è chiamato dinamica SNAT. Nel caso di dinamica SNAT, il router NAT sceglie un indirizzo IP da una vasta gamma, così un computer l'accesso a Internet è molto probabile essere tradotti in diversi indirizzi IP per ogni connessione si avvia. Per SNAT dinamica, iptables sceglie il meno utilizzato l'indirizzo IP dal range specificato. Se molti indirizzi IP della gamma non sono utilizzati a tutti, iptables sceglie a caso uno di questi.
Mascherata o MASQ funziona esattamente come SNAT statica fa, solo che non è possibile specificare l'indirizzo IP pubblico per essere usato. Esso utilizza automaticamente l'indirizzo IP dell'interfaccia di uscita del router NAT.

SNAT è stato introdotto con iptables, e non esiste in netfilter per kernel inferiore a 2,4. Tuttavia, Masquerade è stato tenuto in iptables, semplicemente perché, come le schede con le interfacce PPP che ricevono un indirizzo IP assegnato dinamicamente, è più semplice fare un MASQ piuttosto che trovare l'indirizzo IP assegnato in modo dinamico e non SNAT.

 

Se il computer è SNATed o mascherate, il router Linux cambierà l'indirizzo IP di origine nell'intestazione del pacchetto da 192.168.1.3 a 1.1.1.1 e passare il pacchetto verso 2.2.2.2 secondo il processo di routing. Informazioni su questa connessione è memorizzata in / proc / ip_conntrack net /.
Quando 2.2.2.2 risposte, il pacchetto IP che arriva in router Linux avrà origine l'indirizzo IP 2.2.2.2 e 1.1.1.1 indirizzo IP di destinazione. Ricerche Linux per informazioni su questo pacchetto in / proc / ip_conntrack net /, e trova un match contro le informazioni memorizzate nella fase precedente. A questo punto, Linux cambierà l'indirizzo IP di destinazione nell'intestazione del pacchetto di 192.168.1.3 e passare il pacchetto IP verso il computer NATed secondo il processo di routing.

DNAT

DNAT o Destinazione Network Address mappe Traduzioni un indirizzo IP pubblico a un indirizzo IP privato. DNAT è il contrario di SNAT, così, se si SNAT per tradurre un indirizzo IP privato in un indirizzo IP pubblico e DNAT a tradurre lo stesso indirizzo IP pubblico verso lo stesso indirizzo IP privato, il risultato sarà Full NAT.
DNAT è di solito utilizzato quando si dispone di server dietro NAT, quindi lo stesso indirizzo IP pubblico si associa a diversi indirizzi IP privati in funzione su porte o protocolli. Questo processo è chiamato anche Port Forwarding.
Normalmente, 2.2.2.2 non può avviare una comunicazione a 192.168.1.3, perché si tratta di un indirizzo IP privato e non è instradato su Internet.
2.2.2.2 tenta di avviare una connessione con 1.1.1.1. Se una regola di DNAT è trovato per questo pacchetto, il router Linux cambierà l'indirizzo IP di destinazione nell'intestazione del pacchetto IP da 1.1.1.1 a 192.168.1.3, passare il pacchetto verso 192.168.1.3, e mantenere una traccia di questa connessione.
Quando 192.168.1.3 risposte, il pacchetto si trova nella tabella conntrack del router Linux in modo che "sa" che il pacchetto appartiene alla connessione avviata da 2.2.2.2 a 1.1.1.1. Il router Linux cambierà l'indirizzo IP di origine nell'intestazione del pacchetto IP da 192.168.1.3 a 1.1.1.1.

Se DNAT è configurato, ma non è SNAT, 2.2.2.2 sarà in grado di stabilire connessioni a 192.168.1.3 utilizzando 1.1.1.1 come indirizzo IP di destinazione, ma 192.168.1.3 non sarà in grado di attivare connessioni a 2.2.2.2.

 

In altre parole, NAT completo è SNAT e DNAT presentata in precedenza.
Questa è la funzione che SOHO router chiamata "DMZ", come spiegato in precedenza. Il motivo per cui chiamare questa funzione "DMZ" è che i pacchetti IP che non appartengono a una connessione iniziata da qualsiasi host della rete privata 192.168.1.0/24 sarà trasmessa al 192.168.1.3, e così questo host non ha ancora la protezione fornita dal fatto che abbia un indirizzo IP privato.

Nel caso appena presentato, 1.1.1.1 può essere l'indirizzo IP del router NAT o può semplicemente essere instradato ad essa. Se è l'indirizzo del router IP pubblico (come nei diagrammi precedenti), il router NAT non è possibile accedere da Internet (ad esempio, non si può SSH in esso), in quanto trasmette tutti i pacchetti a 192.168.1.3.

PAT o NAPT

PAT è l'acronimo di Port Address Translation, ed è chiamato anche NAPT, che sta per Network Address Translation e Porto. L'idea alla base PAT è quello di tradurre non solo l'indirizzo IP, ma anche il numero di porta per determinati host e le porte.
Il server web dell'azienda è dietro NAT e ha l'indirizzo IP 192.168.1.100. Che hanno un solo indirizzo IP pubblico, http://www. . com è configurato per rispondere alla 1.1.1.1. Per il web server al quale si accede da Internet, dobbiamo riscrivere l'indirizzo 1.1.1.1 a 192.168.1.100 ogni volta che arriva una richiesta nel nostro router NAT con la porta di destinazione 80.
Più di questo, abbiamo un server intranet aziendale con l'indirizzo IP 192.168.1.200, per un server Web sulla porta 80. Quando sono in ufficio, i dipendenti hanno a digitare http://192.168.1.200 nel loro browser web e possono accedere al server web intranet.
Se vogliamo consentire agli utenti di accedere al server della rete Intranet, quando sono fuori ufficio, PAT è la risposta. Con PAT, possiamo scegliere una porta che non ha aperto sul router NAT (ad esempio, 2143), e ogni volta che arriva una richiesta da Internet con l'indirizzo IP di destinazione 217.156.123.3 e la porta di destinazione 2143, il router NAT riscrive l'indirizzo IP di destinazione a 192.168.1.200 e il porto di destinazione 2.143-80.
In questo modo, da Internet quando un utente tipi:

  1. http://www. . com / la richiesta viene inoltrata a 192.168.1.100 sulla porta 80 e la pagina web della società, viene visualizzato
  2. http://www. . com: 2143 / la richiesta viene inoltrata a 192.168.1.200 sulla porta 80 e la pagina web della società intranet viene visualizzato

Non abbiamo di riscrivere la porta quando un pacchetto ha l'indirizzo IP di origine 192.168.1.200; dobbiamo solo impostare SNAT o Masquerade in modo che gli accessi Intranet server Internet utilizzando 1.1.1.1.

un articolo presentato da Philip A Clare


Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni.
Importante: Questo articolo "NAT e Packet Mangling con iptables" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.


Online: 233 users browsing the articles directory