Cosa è MASQUERADE nel contesto di iptables?


42

In iptablesmolte volte vedo il bersaglio MASQUERADE . Cos'è quello? Ho cercato e trovato molte cose. Ma ho bisogno di qualcuno che mi spieghi cos'è MASQUERADE in modo facile da capire?

Un esempio (tratto da questa risposta ) è:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Risposte:


33

È un algoritmo dipendente dall'implementazione di iptables che consente di instradare il traffico senza interrompere il traffico originale.

Uso l'algoritmo mascherato quando voglio creare un adattatore wifi virtuale e condividere il mio wifi.

NON sto parlando di condividere la connessione Ethernet tramite il tuo wifi, sto parlando di condividere la connessione wifi tramite il tuo wifi tramite il mascheramento su un adattatore virtuale. Questo in effetti ti consente di condividere la tua connessione wifi tramite wifi.

.

.

Leggi questo e scorri verso il basso fino a MASQUERADE: http://billauer.co.il/ipmasq-html.html

Leggi questo per maggiori dettagli: http://oreilly.com/openbook/linag2/book/ch11.html

Tutte quelle domande su "Connectify per Linux" possono essere risolte implementando l'algo MASQUERADE.

Per un esempio diretto visitare questa pagina: http://pritambaral.com/2012/05/connectify-for-linux-wireless-hotspot/

NON HO LETTO L'ULTIMO LINK !!!! Ma quanto segue è un estratto / esempio accurato.

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -A FORWARD -i wlan0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Non mi piace il modo in cui i motori di ricerca trasformano l'algoritmo in un tipo malvagio di hack. Lo uso semplicemente per condividere la mia Internet con i miei telefoni Android.

MODIFICA FINALE: questo link è il migliore http://gsp.com/cgi-bin/man.cgi?section=3&topic=libalias


come il tuo primo link che era - esattamente-- quello che sto cercando :)
Mohammad Reza Rezwani,

Ho testato la MASUERADEregola (la terza riga nell'elenco dei codici) e il collegamento è esattamente condiviso e disponibile tra le interfacce. Pertanto, sono frustrato a cosa serve la FORWARDregola? (la regola sulla seconda riga nell'elenco dei codici)
千 木 郷

34

MASQUERADE è un target iptables che può essere usato al posto del target SNAT (NAT di origine) quando l'ip esterno dell'interfaccia inet non è noto al momento della scrittura della regola (quando il server ottiene l'ip esterno in modo dinamico).


Cosa dovrebbe essere usato quando l'indirizzo IP è noto?
Luc,

4
@Luc, destinazione SNAT (traduzione dell'indirizzo di rete di origine) con definizione dell'IP di origine che deve essere collocata al posto dell'ip di origine originale nel pacchetto ip dall'host originale. In questo modo -j SNAT --to-source xx.xx.xx.xxdove xx.xx.xx.xx è l'ip esterno dell'interfaccia desiderata. E non posso dire che dovrebbe essere usato quando si conosce un IP esterno. Preferirei usare MASQUERADE invece di SNAT per rendere le regole flessibili e non legate a specifici ip esterni che ho al momento.
Sergey P. aka azzurro il

7

IP Masquerade è anche noto come Network Address Translation (NAT) e Network Connection Sharing alcuni altri sistemi operativi popolari. È fondamentalmente un metodo per consentire a un computer che non dispone di un indirizzo IP pubblico su Internet di comunicare con altri computer su Internet con l'aiuto di un altro computer che si trova tra esso e Internet.

Come sapete, gli indirizzi IP vengono utilizzati su Internet per identificare le macchine. Dato un pacchetto con un indirizzo IP, ogni router che compone Internet sa dove inviare quel pacchetto per portarlo a destinazione. Ora, ci sono anche alcuni intervalli di indirizzi IP che sono stati riservati per uso privato all'interno delle reti locali e di altre reti che non sono direttamente connesse a Internet. Questi indirizzi privati ​​sono garantiti per non essere utilizzati su Internet pubblico.

Ciò causa problemi ai computer connessi a reti private che utilizzano indirizzi IP privati, poiché non possono essere collegati direttamente a Internet. Non hanno un indirizzo IP che può essere utilizzato su Internet pubblico. IP Masquerade risolve questo problema consentendo a una macchina con un indirizzo IP privato di comunicare con Internet, modificando allo stesso tempo i pacchetti della macchina per utilizzare un indirizzo IP pubblico valido anziché l'indirizzo IP privato originale. I pacchetti di ritorno da Internet vengono modificati per utilizzare l'indirizzo IP originale prima di raggiungere la macchina IP privata.

Si noti che questo non è limitato alla rete Internet mascherata / NAT può essere utilizzato per instradare il traffico da una rete a un'altra, diciamo 10.0.0.0/24 e 192.168.0.0/24

La regola di mascheramento di Iptables può essere sostituita con la regola SNAT

iptables -t nat -A POSTROUTING -o eth2 -s 10.0.0.0/24  -j MASQUERADE

=

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth2 -j SNAT --to-source 192.168.1.2
# supposing eth2 assigned ip is 192.168.1.2

Sia masquerade che snat richiedono ip_forward abilitato a livello di kernel con echo "1" > /proc/sys/net/ipv4/ip_forwardo permanentemente modificando il file delle impostazioni nano /etc/sysctl.conf.

IP Forward fa funzionare la macchina come un router e quindi reindirizza / inoltra i pacchetti da tutte le interfacce attive logicamente dalla rete di destinazione (locale / rete / altro / ecc.) O seguendo la tabella di instradamento. Si noti che l'abilitazione di ip_forward può comportare importanti rischi per la sicurezza, se ip_forward non può essere evitato, deve essere supervisionato / protetto da ulteriori iptables / regole di instradamento.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.