Co to jest MASQUERADE w kontekście iptables?

42

W iptableswiele razy widzę docelową Masquerade . Co to jest? Szukałem i znalazłem wiele rzeczy. Ale potrzebuję kogoś, kto wyjaśni mi, czym jest MASQUERADE w łatwy do zrozumienia sposób?

Przykład (wzięty z tej odpowiedzi ) to:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Mohammad Reza Rezwani
źródło

Odpowiedzi:

33

Jest to algorytm zależny od implementacji iptables, który umożliwia kierowanie ruchem bez zakłócania ruchu pierwotnego.

Używam algorytmu maskarady, gdy chcę utworzyć wirtualny adapter Wi-Fi i udostępnić moje Wi-Fi.

NIE mówię o udostępnianiu połączenia Ethernet przez Wi-Fi, mówię o udostępnianiu połączenia Wi-Fi przez Wi-Fi poprzez maskowanie go do wirtualnego adaptera. To w efekcie pozwala udostępniać połączenie Wi-Fi za pośrednictwem Wi-Fi.

.

.

Przeczytaj to i przewiń w dół do MASQUERADE: http://billauer.co.il/ipmasq-html.html

Przeczytaj to, aby uzyskać więcej informacji: http://oreilly.com/openbook/linag2/book/ch11.html

Wszystkie te pytania dotyczące „Connectify for Linux” można rozwiązać, implementując algo MASQUERADE.

Bezpośredni przykład na tej stronie: http://pritambaral.com/2012/05/connectify-for-linux-wireless-hotspot/

NIE CZYTAŁEM OSTATNEGO LINKU !!!! Ale poniżej znajduje się dokładny fragment / przykład.

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

Naprawdę nie podoba mi się, jak wyszukiwarki robią algorytm jakimś złym typem hakowania. Używam go tylko po to, aby udostępnić mój internet moim telefonom z Androidem.

EDYCJA KOŃCOWA: ten link jest najlepszy http://gsp.com/cgi-bin/man.cgi?section=3&topic=libalias

Zbanowany_użytkownik
źródło
jak twój pierwszy link, który był - właśnie - tego szukam :)
Mohammad Reza Rezwani
Przetestowałem MASUERADEregułę (trzeci wiersz na liście kodów), a link jest dokładnie udostępniony i dostępny na różnych interfejsach. Dlatego jestem sfrustrowany, co jest FORWARDregułą? (reguła w drugim wierszu listy kodów)
千 千 郷
34

MASQUERADE jest celem iptables, którego można używać zamiast celu SNAT (źródłowy NAT), gdy zewnętrzny ip interfejsu inet nie jest znany w momencie pisania reguły (gdy serwer dynamicznie otrzymuje zewnętrzny ip).

Sergey P. aka lazur
źródło
Czego należy używać, gdy znany jest adres IP?
Luc
4
@Luc, docelowy SNAT (translacja źródłowego adresu sieciowego) z określeniem źródłowego adresu IP, który powinien zostać umieszczony zamiast oryginalnego źródłowego adresu IP w pakiecie ip z oryginalnego hosta. Podobnie jak w -j SNAT --to-source xx.xx.xx.xxprzypadku, gdy xx.xx.xx.xx jest zewnętrznym adresem ip pożądanego interfejsu. I nie mogę powiedzieć, że należy go używać, gdy znany jest zewnętrzny ip. Wolę używać MASQUERADE zamiast SNAT, aby uelastycznić reguły i nie wiązać się z konkretnym zewnętrznym IP, który mam w tej chwili.
Sergey P. aka lazur
7

IP Masquerade jest również znany jako Network Address Translation (NAT) i Network Connection Sharing inne popularne systemy operacyjne. Jest to w zasadzie metoda pozwalająca komputerowi, który nie ma publicznego adresu IP w całym Internecie, komunikować się z innymi komputerami w Internecie za pomocą innego komputera znajdującego się między nim a Internetem.

Jak wiesz, adresy IP są używane w Internecie do identyfikacji komputerów. Biorąc pod uwagę pakiet z adresem IP, każdy router tworzący Internet wie, gdzie wysłać ten pakiet, aby dostać go do miejsca docelowego. Obecnie istnieje również kilka zakresów adresów IP zarezerwowanych do prywatnego użytku w sieciach lokalnych i innych sieciach, które nie są bezpośrednio połączone z Internetem. Gwarantujemy, że te prywatne adresy nie będą używane w publicznym Internecie.

Powoduje to problemy w przypadku urządzeń podłączonych do sieci prywatnych, które używają prywatnych adresów IP, ponieważ nie można ich podłączyć bezpośrednio do Internetu. Nie mają adresu IP, który może być używany w publicznym Internecie. IP Masquerade rozwiązuje ten problem, umożliwiając maszynie z prywatnym adresem IP komunikowanie się z Internetem, jednocześnie modyfikując pakiety urządzenia, aby używały prawidłowego publicznego adresu IP zamiast oryginalnego prywatnego adresu IP. Pakiety zwracane z Internetu są ponownie modyfikowane w celu użycia oryginalnego adresu IP przed dotarciem do prywatnej maszyny IP.

Zauważ, że nie jest to ograniczone do maskowania sieci / NAT, którego można użyć do kierowania ruchu z jednej sieci do drugiej, powiedzmy 10.0.0.0/24 i 192.168.0.0/24

Regułę maskarady Iptables można zastąpić regułą 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

Zarówno maskarada, jak i snat wymagają włączenia ip_forward na poziomie jądra za pomocą echa "1" > /proc/sys/net/ipv4/ip_forwardlub na stałe poprzez edycję pliku ustawień nano /etc/sysctl.conf.

Przekazywanie IP sprawia, że ​​maszyna działa jak router, a tym samym logicznie przekierowuje / przekazuje pakiety ze wszystkich aktywnych interfejsów przez sieć docelową (lokalną / netto / inną / itp.) Lub postępując zgodnie z tabelą tras. Zauważ, że włączenie ip_forward może powodować poważne zagrożenie bezpieczeństwa, jeśli nie można uniknąć ip_forward, należy go nadzorować / zabezpieczyć dodatkowymi regułami iptables / route.

intika
źródło