Was ist MASQUERADE im Kontext von iptables?


42

In iptablesoft sehe ich das Ziel MASQUERADE . Was ist das? Ich habe viele Dinge gesucht und gefunden. Aber ich brauche jemanden, der mir erklärt, was MASQUERADE einfach zu verstehen ist?

Ein Beispiel (aus dieser Antwort entnommen ) ist:

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

Antworten:


33

Es ist ein Algorithmus, der von der Implementierung von iptables abhängig ist und das Weiterleiten von Verkehr ermöglicht, ohne den ursprünglichen Verkehr zu stören.

Ich verwende den Maskerade-Algorithmus, wenn ich einen virtuellen WLAN-Adapter erstellen und mein WLAN freigeben möchte.

Ich spreche NICHT über das Teilen der Ethernet-Verbindung über Ihr WLAN. Ich spreche über das Teilen der WLAN-Verbindung über Ihr WLAN, indem ich sie auf einen virtuellen Adapter maskiere. Auf diese Weise können Sie Ihre WLAN-Verbindung über WLAN freigeben.

.

.

Lesen Sie dies und scrollen Sie nach unten zu MASQUERADE: http://billauer.co.il/ipmasq-html.html

Lesen Sie dies für weitere Informationen: http://oreilly.com/openbook/linag2/book/ch11.html

All diese Fragen zu "Connectify for Linux" können mit der Implementierung von MASQUERADE algo gelöst werden.

Ein direktes Beispiel finden Sie auf dieser Seite: http://pritambaral.com/2012/05/connectify-for-linux-wireless-hotspot/

ICH HABE DEN LETZTEN LINK NICHT GELESEN !!!! Das Folgende ist jedoch ein genauer Auszug / Beispiel.

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

Ich mag es wirklich nicht, wie Suchmaschinen den Algorithmus zu einem bösen Hack machen. Ich benutze ihn nur, um mein Internet mit meinen Android-Handys zu teilen.

FINAL EDIT: Dieser Link ist der beste http://gsp.com/cgi-bin/man.cgi?section=3&topic=libalias


Wie dein erster Link, der genau das war, wonach ich suche :)
Mohammad Reza Rezwani

Ich habe die MASUERADERegel (die dritte Zeile in Ihrer Codeliste) getestet und der Link ist genau freigegeben und über Schnittstellen verfügbar. Daher bin ich frustriert, was ist die FORWARDRegel für? (die Regel in der zweiten Zeile im Code - Eintrag)
千木郷

34

MASQUERADE ist ein iptables-Ziel, das anstelle des SNAT-Ziels (Quell-NAT) verwendet werden kann, wenn die externe IP-Adresse der inet-Schnittstelle zum Zeitpunkt des Schreibens der Regel nicht bekannt ist (wenn der Server die externe IP-Adresse dynamisch erhält).


Was sollte verwendet werden, wenn die IP-Adresse bekannt ist?
Luc

4
@Luc, SNAT-Ziel (Quellnetzwerkadressübersetzung) mit der Definition der Quell-IP, die anstelle der ursprünglichen Quell-IP im IP-Paket des ursprünglichen Hosts platziert werden soll. Wie dies in -j SNAT --to-source xx.xx.xx.xxdem xx.xx.xx.xx ist die externe IP der gewünschten Schnittstelle. Und ich kann nicht sagen, dass es verwendet werden sollte , wenn externe IP bekannt ist. Ich würde lieber MASQUERADE anstelle von SNAT verwenden, um Regeln flexibel zu gestalten und nicht an eine bestimmte externe IP gebunden zu sein, die ich gerade habe.
Sergey P. aka azure

7

IP Masquerade wird auch als Network Address Translation (NAT) und Network Connection Sharing (Netzwerkverbindungsfreigabe) bezeichnet. Dies ist im Grunde eine Methode, mit der ein Computer, der keine öffentliche, internetweite IP-Adresse hat, mit anderen Computern im Internet kommunizieren kann, wobei ein anderer Computer zwischen ihm und dem Internet sitzt.

Wie Sie wissen, werden im Internet IP-Adressen verwendet, um Maschinen zu identifizieren. Bei einem Paket mit einer IP-Adresse weiß jeder Router, aus dem das Internet besteht, wohin das Paket gesendet werden muss, um es an sein Ziel zu bringen. Nun gibt es auch einige Bereiche von IP-Adressen, die für den privaten Gebrauch in lokalen Netzwerken und anderen Netzwerken reserviert sind, die nicht direkt mit dem Internet verbunden sind. Diese privaten Adressen werden garantiert nicht im öffentlichen Internet verwendet.

Dies führt zu Problemen bei Computern, die mit privaten Netzwerken verbunden sind und private IP-Adressen verwenden, da sie nicht direkt mit dem Internet verbunden werden können. Sie haben keine IP-Adresse, die im öffentlichen Internet verwendet werden darf. IP Masquerade löst dieses Problem, indem ein Computer mit einer privaten IP-Adresse mit dem Internet kommunizieren kann und gleichzeitig die Pakete des Computers so geändert werden, dass anstelle der ursprünglichen privaten IP-Adresse eine gültige öffentliche IP-Adresse verwendet wird. Pakete, die aus dem Internet zurückkehren, werden so geändert, dass sie die ursprüngliche IP-Adresse verwenden, bevor sie den privaten IP-Computer erreichen.

Beachten Sie, dass dies nicht auf das Internet-Netzwerk beschränkt ist. Masquerade / NAT kann verwendet werden, um Datenverkehr von einem Netzwerk zu einem anderen weiterzuleiten, beispielsweise 10.0.0.0/24 und 192.168.0.0/24

Die Maskeraderegel von Iptables kann durch eine SNAT-Regel ersetzt werden

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

Sowohl masquerade als auch snat setzen voraus, dass ip_forward auf Kernelebene mit Echo "1" > /proc/sys/net/ipv4/ip_forwardoder permanent durch Bearbeiten der Einstellungsdatei nano aktiviert ist /etc/sysctl.conf.

Durch die IP-Weiterleitung verhält sich das Gerät wie ein Router und leitet Pakete von allen aktiven Schnittstellen logisch über das Zielnetzwerk (lokal / netz / andere / usw.) oder anhand der Routentabelle um bzw. weiter. Beachten Sie, dass die Aktivierung von ip_forward ein erhebliches Sicherheitsrisiko mit sich bringen kann. Wenn ip_forward nicht vermieden werden kann, muss es durch zusätzliche iptables / route-Regeln überwacht / gesichert werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.