SNAT con iptablesFinora, abbiamo discusso NAT principi generali, tipi di NAT, e ciò che ogni tipo di NAT fa. Configurazione del KernelDi solito, tutte le distribuzioni Linux viene fornito con un kernel compilato con il supporto netfilter, iptables strumento, e tutti i moduli necessari per l'esecuzione di Network Address Translation. Il nat La tabella di netfilterLa tabella nat contiene tre catene-PREROUTING, POSTROUTING e OUTPUT. Ogni catena può contenere norme che siano esaminati in sequenza fino a quando una delle regole corrisponde a un pacchetto, lo stesso che per le catene nella tabella di netfilter. Queste catene possono essere visualizzate mediante l'emissione del comando iptables-t nat-L. SNAT con iptablesSNAT è uno dei tipi più comunemente utilizzata di NAT con iptables a causa della topologia.
Siamo in grado di impostare SNAT in modo che tutti i dispositivi in rete 192.168.1.0/24 l'accesso a Internet con una sola regola: iptables-t nat-A POSTROUTING-s 192.168.1.0/24 -J SNAT - to 1.2.3.1 Questo comando ha lo stesso effetto come il seguente comando, che avrebbe utilizzato se l'indirizzo IP di eth1 sono stati assegnati in modo dinamico, o se abbiamo usato un modem dial-up al posto di una scheda Ethernet: iptables-t nat-A POSTROUTING-s 192.168.1.0/24 -J MASQUERADE Diciamo che il nostro fornitore di filtri su tutte le porte superiori a 1024. In questo caso, avremo bisogno di cambiare la porta di origine, nonché, e non solo l'indirizzo IP di origine. Questo può essere fatto da: iptables-t nat-A POSTROUTING-s 192.168.1.0/24-j SNAT - to 1.2.3.1:1-1024 L'utente laptop visto nella figura precedente è un fan di IRC e ci dona una chiamata dicendo che non è possibile connettersi a tutte le reti IRC. Ciò significa che il modulo ip_conntrack ha bisogno di un piccolo aiuto, e noi possiamo dare a lui inserendo il modulo ip_conntrack_irc nel kernel. Inoltre, si potrebbe desiderare per consentire agli utenti di effettuare con successo le connessioni FTP, e così vogliamo aggiungere il modulo ip_conntrack_ftp pure. ip_conntrack_irc # modprobe o insmod ip_conntrack_irc Dopo poche settimane, l'utente portatile ha convinto gli altri utenti della rete 192.168.1.0/24 di come l'IRC è meraviglioso, così abbiamo circa 20-30 utenti che si connettono alla rete IRC stesso. Ora, hanno cominciato a lamentarsi di quanto sia difficile per collegarsi alla rete IRC, perché la rete IRC consente solo un paio di connessioni dallo stesso indirizzo IP. Riteniamo che, 32 indirizzi IP sono sufficienti per loro, così si chiama il fornitore di assegnare noi una / 27 subnet IP pubblico. Per qualche dollaro in più, che ci assegna 1.2.4.0/27. Dobbiamo cambiare la regola iniziale a:
iptables-t nat-A POSTROUTING-s 192.168.1.0/24 -J SNAT - to 1.2.4.0-1.2.4.32 Smettono di lamentarsi, ma ci rendiamo conto di non utilizzare l'indirizzo IP pubblico del nostro router Linux per NAT più. Lasciatemi aggiungere che anche, in modo da dar loro un indirizzo IP extra: iptables-t nat-A POSTROUTING-s 192.168.1.0/24-j SNAT - to 1.2.4.0-1.2.4.32 - A 1.2.3.1 Uno dei nostri utenti viene in una discussione su IRC, e viene allagato, mentre SNAT MAPPS il suo indirizzo IP a 1.2.4.15. Alluvione nostro fornitore del sistema di rilevazione filtra automaticamente l'indirizzo IP e ci invia una e-mail informandoci su di esso. Dobbiamo smettere di SNAT per mappare tutti gli indirizzi interni a tale indirizzo IP, in modo da effettuare le seguenti operazioni: iptables-t nat-A POSTROUTING-s 192.168.1.0/24-j SNAT - Per 1.2.4.0-1.2.4.14 - a 1.2.4.16-1.2.4.32 - a 1.2.3.1 Un ragazzo dalla contabilità con l'indirizzo IP 192.168.1.19 lamenta il fatto che egli non può accedere a qualsiasi computer con indirizzi IP su 192.168.1.32. E 'possibile che abbia cambiato la sua maschera di rete a 255.255.255.227, e così tutti i pacchetti IP dal proprio computer a computer in 192.168.1.0/24 che non sono in 192.168.1.0/27 passare attraverso il router Linux e ottenere SNATed. Per risolvere questo problema, abbiamo due alternative. iptables-t nat-A POSTROUTING-s 192.168.1.0/24 -D! 192.168.1.0/24 -J SNAT - to 1.2.4.0-1.2.4.32 - a 1.2.3.1 La seconda scelta che abbiamo è quello di SNAT solo i pacchetti che vanno su eth1: iptables-t nat-A POSTROUTING-s 192.168.1.0/24 -O eth1 -J SNAT - to 1.2.4.0-1.2.4.32 - a 1.2.3.1 Il nostro fornitore di collegamento in un'altra posizione della nostra azienda per le stesse attrezzature, e dato che siamo nella stessa VLAN, non abbiamo per costruire un tunnel tra i router di ogni posizione, ma solo il percorso delle reti attraverso il router Linux in quella posizione . Sul sito, abbiamo la rete 192.168.2.0/24. Dobbiamo lasciare che i computer nel nostro computer di accesso alla rete nella rete 192.168.2.0/24 senza SNATing loro: iptables-t nat-I POSTROUTING-s 192.168.1.0/24-d 192.168.2.0/24-j ACCEPT Questo comando inserisce la regola prima della regola NAT, quindi se ogni pacchetto da 192.168.1.0/24 è destinato a qualsiasi IP della rete 192.168.2.0/24, questa regola sarà partita e la catena non sarà ulteriormente analizzato, in modo SNAT non avrà luogo. iptables-t nat-I POSTROUTING-s 192.168.1.31 -P tcp - dport 6666:6669 -J DROP Potremmo desiderare di chiedere al gestore che Jane è autorizzato a fare. Ad esempio, se il gestore vuole permettere di Jane accesso web solo, siamo in grado di effettuare le seguenti operazioni: iptables-t nat-I POSTROUTING-s 192.168.1.31 -P tcp - dport! 80 -J DROP Questa regola non l'indirizzo SNAT Jane's IP quando si tenta di accedere a qualcosa di diverso da porta 80 TCP, ma sarà SNAT il suo indirizzo IP quando si accede a tutti i servizi UDP, perché i pacchetti UDP non corrispondono a questa regola, così lei sarà in grado di accedere a qualsiasi server DNS al di fuori della nostra rete. DNAT con iptablesNoi continueremo con lo scenario precedente per DNAT pure. Un giorno, il direttore ci chiama dicendo che ha bisogno di accedere al suo computer da casa. Naturalmente lei non può fare che a causa del suo indirizzo IP privato 192.168.1.50. Decidiamo di assegnare uno degli indirizzi IP pubblici che abbiamo per il suo computer d'ufficio, ma se dovessimo creare un alias sulla eth0 per questo, non solo perde alcuni indirizzi IP, ma anche lei non sarà la stessa rete come gli altri. La soluzione migliore è quella di Mappa un indirizzo IP pubblico (diciamo 1.2.4.1) per affrontare il suo computer dell'ufficio IP privato (192.168.1.50). Questo è, naturalmente, DNAT: iptables-t nat-A PREROUTING-d 1.2.4.1 --j DNAT - to 192.168.1.50 Così la prossima cosa da fare è chiamare lei e dirgli che ogni volta che si tenta di connettersi al proprio computer dell'ufficio da casa, si deve collegare alla 1.2.4.1. iptables-t nat-A PREROUTING-s 1.2.5.17-d 1.2.4.2 --p tcp - dport 80-j DNAT - to 192.168.1.100 Pensiamo di voler SSH al server Intranet da qualsiasi luogo. Non sarebbe un'idea molto saggia per mappare un indirizzo IP al server intranet come è di vitale importanza per la nostra azienda, e se un bug SSH viene scoperto, non vogliamo che server per essere violato. Una buona idea sarebbe quella di mappare un alto numero di porta a porta SSH sul server della rete Intranet (si tratta di PAT o NAPT). iptables-t nat-A PREROUTING-d 1.2.4.2 -P tcp - dport 65521-j DNAT - to 192.168.1.100:22 In questo modo, quando non sono in ufficio e vogliamo SSH al server intranet, apriamo una connessione SSH 1.2.4.2 porta a 65.521. iptables-t nat-A PREROUTING-d 1.2.4.5-p tcp - dport 80-j DNAT - to 192.168.1.200 Transparent ProxyProxy trasparente è un modo per obbligare gli utenti a usare un proxy server, anche se i loro browser sono configurati per non. Probabilmente sapete sui vantaggi di utilizzare un server proxy risparmiando larghezza di banda per le pagine in cache e l'attuazione di controllo di accesso (ad esempio, negare il download di file che hanno le estensioni pericolose). iptables-t nat-A PREROUTING-s 192.168.1.0/24 -P tcp - dport 80-j REDIRECT - to-port 3128 Se vogliamo consentire al gestore (che ha l'indirizzo IP 192.168.1.50) per ignorare il server proxy, lo facciamo in questo modo: iptables-t nat-I PREROUTING-s 192.168.1.50 --p tcp - dport 80-j ACCEPT Quindi questa regola verrà abbinata nella catena PREROUTING, e sarà SNATed nella catena POSTROUTING. 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 "SNAT 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: 240 users browsing the articles directory |
|
|