NAT e Packet Mangling con iptablesNella 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.
|
| 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 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 è 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.
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:
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.
|
|