Что такое MASQUERADE в контексте iptables?

42

Во iptablesмного раз я вижу цель Маскарад . Что это? Я искал и нашел много вещей. Но мне нужно, чтобы кто-нибудь объяснил мне, что такое MASQUERADE простым для понимания способом?

Пример (взят из этого ответа ):

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Мохаммед Реза Резвани
источник

Ответы:

33

Это алгоритм, зависящий от реализации iptables, который позволяет маршрутизировать трафик без прерывания исходного трафика.

Я использую алгоритм маскарада, когда хочу создать виртуальный адаптер Wi-Fi и поделиться своим Wi-Fi.

Я НЕ говорю о совместном использовании Ethernet-соединения через ваш wifi, я говорю о совместном использовании wifi-соединения через ваш wifi, маскируя его под виртуальный адаптер. По сути, это позволяет вам поделиться своим Wi-Fi соединение через Wi-Fi.

,

,

Прочитайте это и прокрутите вниз до MASQUERADE: http://billauer.co.il/ipmasq-html.html

Прочитайте это для более подробной информации: http://oreilly.com/openbook/linag2/book/ch11.html

Все эти вопросы о «Connectify для Linux» можно решить с помощью алгоритма MASQUERADE.

Для прямого примера посетите эту страницу: http://pritambaral.com/2012/05/connectify-for-linux-wireless-hotspot/

Я НЕ ЧИТАЛ ПОСЛЕДНЮЮ ССЫЛКУ !!!! Но ниже приведен точный отрывок / пример.

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

Мне действительно не нравится, как поисковые системы делают алгоритм каким-то злым взломом ... Я использую его просто для того, чтобы поделиться своим интернетом с моими телефонами Android.

ЗАКЛЮЧИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ: эта ссылка самая лучшая http://gsp.com/cgi-bin/man.cgi?section=3&topic=libalias

Banned_User
источник
как твоя первая ссылка, которая была - именно - то, что я ищу :)
Мохаммад Реза Резвани
Я проверил MASUERADEправило (третья строка в вашем листинге кода), и ссылка точно передана и доступна через интерфейсы. Поэтому я разочарован, для чего это FORWARDправило? (правило во второй строке вашего кода)
郷 木 郷
34

MASQUERADE - это цель iptables, которую можно использовать вместо цели SNAT (исходный NAT), когда внешний ip интерфейса inet неизвестен на момент написания правила (когда сервер динамически получает внешний ip).

Сергей П. ака лазурь
источник
Что следует использовать, когда известен IP-адрес?
Люк
4
@Luc, цель SNAT (трансляция сетевого адреса источника) с определением исходного ip, который должен быть помещен вместо исходного исходного ip в пакет ip исходного хоста. Вот так -j SNAT --to-source xx.xx.xx.xxгде xx.xx.xx.xx - это внешний ip желаемого интерфейса. И я не могу сказать, что его следует использовать, когда известен внешний ip. Я бы предпочел использовать MASQUERADE вместо SNAT, чтобы сделать правила гибкими и не привязанными к конкретному внешнему ip, который у меня есть на данный момент.
Сергей Павлович ака лазурь
7

IP Masquerade также известен как трансляция сетевых адресов (NAT) и совместное использование сетевых подключений некоторых других популярных операционных систем. Это в основном метод, позволяющий компьютеру, который не имеет общедоступного IP-адреса в Интернете, обмениваться данными с другими компьютерами в Интернете с помощью другого компьютера, расположенного между ним и Интернетом.

Как вы знаете, IP-адреса используются в Интернете для идентификации машин. Учитывая пакет с IP-адресом, каждый маршрутизатор, который составляет Интернет, знает, куда отправить этот пакет, чтобы получить его к месту назначения. Теперь есть также несколько диапазонов IP-адресов, которые были зарезервированы для частного использования внутри локальных сетей и других сетей, которые напрямую не подключены к Интернету. Эти частные адреса гарантированно не будут использоваться в общедоступном Интернете.

Это вызывает проблемы для машин, которые подключены к частным сетям, используют частные IP-адреса, потому что они не могут быть подключены напрямую к Интернету. У них нет IP-адреса, который разрешено использовать в общедоступном Интернете. IP Masquerade решает эту проблему, позволяя машине с частным IP-адресом обмениваться данными с Интернетом, одновременно изменяя пакеты машины, чтобы использовать действительный общедоступный IP-адрес вместо исходного частного IP-адреса. Пакеты, возвращающиеся из Интернета, перед использованием частного IP-адреса модифицируются так, чтобы они использовали исходный IP-адрес.

Обратите внимание, что это не ограничивается маскарадом сети Интернет / NAT может использоваться для маршрутизации трафика из одной сети в другую, скажем, 10.0.0.0/24 и 192.168.0.0/24.

Правило маскарада Iptables можно заменить на правило 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

И маскарад, и snat требуют, чтобы ip_forward был включен на уровне ядра с помощью echo "1" > /proc/sys/net/ipv4/ip_forwardили навсегда, отредактировав файл настроек nano /etc/sysctl.conf.

IP Forward заставляет машину действовать как маршрутизатор и, таким образом, перенаправлять / пересылать пакеты со всего активного интерфейса логически по целевой сети (локальная / net / other / etc) или следуя таблице маршрутов. Обратите внимание, что включение ip_forward может представлять значительную угрозу безопасности, если ip_forward нельзя избежать, его необходимо контролировать / защищать с помощью дополнительных правил iptables / route.

intika
источник