Qu'est-ce que MASQUERADE dans le contexte d'iptables?

42

À iptablesplusieurs reprises, je vois la cible MASQUERADE . Qu'est-ce que c'est? J'ai cherché et trouvé beaucoup de choses. Mais j'ai besoin de quelqu'un pour m'expliquer ce qu'est MASQUERADE d'une manière facile à comprendre?

Un exemple (tiré de cette réponse ) est:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Mohammad Reza Rezwani
la source

Réponses:

33

C'est un algorithme dépendant de l'implémentation d'iptables qui permet d'acheminer le trafic sans perturber le trafic d'origine.

J'utilise l'algorithme de mascarade lorsque je veux créer un adaptateur wifi virtuel et partager mon wifi.

Je ne parle PAS de partager une connexion Ethernet via votre wifi, je parle de partager la connexion wifi via votre wifi via le masquerading à un adaptateur virtuel. Cela vous permet en effet de partager votre connexion wifi via wifi.

.

.

Lisez ceci et faites défiler jusqu'à MASQUERADE: http://billauer.co.il/ipmasq-html.html

Lisez ceci pour plus de détails: http://oreilly.com/openbook/linag2/book/ch11.html

Toutes ces questions sur "Connectify for linux" peuvent être résolues en implémentant l'algorithme MASQUERADE.

Pour un exemple direct, visitez cette page: http://pritambaral.com/2012/05/connectify-for-linux-wireless-hotspot/

Je n'ai pas lu le dernier lien !!!! Mais ce qui suit est un extrait / exemple précis.

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

Je n'aime vraiment pas comment les moteurs de recherche font de l'algorithme un type de piratage diabolique. Je l'utilise simplement pour partager mon Internet avec mes téléphones Android.

FINAL EDIT: ce lien est le meilleur http://gsp.com/cgi-bin/man.cgi?section=3&topic=libalias

Banned_User
la source
comme votre premier lien qui était - exactement - ce que je cherche :)
Mohammad Reza Rezwani
J'ai testé la MASUERADErègle (la troisième ligne de votre liste de code) et le lien est exactement partagé et disponible entre les interfaces. Par conséquent, je suis frustré quelle est la FORWARDrègle? (la règle sur la deuxième ligne dans votre liste de code)
千木郷
34

MASQUERADE est une cible iptables qui peut être utilisée à la place de la cible SNAT (NAT source) lorsque l'adresse IP externe de l'interface inet n'est pas connue au moment de l'écriture de la règle (lorsque le serveur obtient une adresse IP externe de manière dynamique).

Sergey P. aussi nommé azur
la source
Que faut-il utiliser lorsque l'adresse IP est connue?
Luc
4
@Luc, cible SNAT (traduction de l'adresse réseau source) avec la définition de l'adresse IP source à placer à la place de l'adresse IP source d'origine dans le paquet ip de l'hôte d'origine. Comme ceci, -j SNAT --to-source xx.xx.xx.xxoù xx.xx.xx.xx est l'adresse IP externe de l'interface souhaitée. Et je ne peux pas dire qu'il devrait être utilisé lorsque l'ip externe est connue. Je préférerais utiliser MASQUERADE au lieu de SNAT pour rendre les règles souples et non liées à une adresse IP externe spécifique que je possède pour le moment.
Sergey P. dit azure
7

IP Masquerade est également appelé traduction d'adresses réseau (NAT) et partage de connexion réseau avec d'autres systèmes d'exploitation populaires. Il s’agit en gros d’une méthode permettant à un ordinateur qui n’a pas d’adresse IP large Internet de communiquer avec d’autres ordinateurs sur Internet à l’aide d’un autre ordinateur installé entre lui et Internet.

Comme vous le savez, les adresses IP sont utilisées sur Internet pour identifier les machines. Étant donné un paquet avec une adresse IP, chaque routeur Internet constitue le lieu où envoyer ce paquet pour le recevoir à sa destination. À présent, il existe également quelques plages d'adresses IP réservées pour un usage privé à l'intérieur de réseaux locaux et d'autres réseaux non directement connectés à Internet. Il est garanti que ces adresses privées ne seront pas utilisées sur l’Internet public.

Cela pose des problèmes car les machines connectées à des réseaux privés utilisent des adresses IP privées, car elles ne peuvent pas être connectées directement à Internet. Ils n'ont pas d'adresse IP autorisée à être utilisée sur l'Internet public. IP Masquerade résout ce problème en permettant à un ordinateur doté d'une adresse IP privée de communiquer avec Internet, tout en modifiant ses paquets pour utiliser une adresse IP publique valide à la place de l'adresse IP privée d'origine. Les paquets renvoyés depuis Internet sont modifiés pour utiliser l'adresse IP d'origine avant d'atteindre la machine IP privée.

Notez que cela n’est pas limité au réseau Internet. Le masquage / NAT peut être utilisé pour acheminer le trafic d’un réseau à un autre, par exemple 10.0.0.0/24 et 192.168.0.0/24.

La règle de masquage Iptables peut être remplacée par la règle 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

À la fois masquerade et snat, ip_forward doit être activé au niveau du noyau avec echo "1" > /proc/sys/net/ipv4/ip_forwardou de façon permanente en modifiant le fichier de paramètres nano /etc/sysctl.conf.

IP Forward fait en sorte que la machine se comporte comme un routeur et redirige / transfère ainsi les paquets de toutes les interfaces actives de manière logique par le réseau ciblé (local / net / autre / etc.) ou en suivant le tableau de routage. Notez que l'activation de ip_forward peut présenter un risque de sécurité important. Si ip_forward ne peut pas être évité, il doit être supervisé / sécurisé par des règles iptables / route supplémentaires.

intika
la source