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_forward
o 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.