Что такое MASQUERADE в контексте iptables?
В iptables
много раз вижу цель MASQUERADE. Что это такое? Я искал и нашел много вещей. Но мне нужно, чтобы кто-нибудь объяснил мне, что такое MASQUERADE простым для понимания способом?
Пример (взят из этого ответа):
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
3 ответа
Это алгоритм, зависящий от реализации 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
MASQUERADE - это цель iptables, которую можно использовать вместо цели SNAT (исходный NAT), когда внешний ip интерфейса inet неизвестен на момент написания правила (когда сервер динамически получает внешний ip).
После изучения приведенных выше ответов я понял следующее:
Маскарадинг позволяет всей сети внутренних IP-адресов работать через один внешний IP-адрес, а маскарадинг позволяет преобразовывать один протокол в другой (проводной / беспроводной).
Когда цепочка MASQUERADE отправляет дейтаграмму с компьютера, она...
- Принимает во внимание тип дейтаграммы: "TCP", "UDP", "ICMP" и т. Д. Примечание. Неизвестные данные могут некорректно работать через MASQUERADE.
- Изменяет дейтаграмму так, чтобы она выглядела так, как будто она была создана самим маршрутизатором (один внешний адрес).
- Помнит, что это было сделано, записывая локальный исходный и внешний IP-адреса назначения.
- Передает дейтаграмму в Интернет с единственным внешним IP-адресом.
Примечание. Когда узел назначения получает эту дейтаграмму, он считает, что дейтаграмма пришла от одного узла маршрутизации, и отправляет все ответные дейтаграммы обратно на этот адрес.
Когда цепочка Linux MASQUERADE получает дейтаграмму от своего Интернет-соединения,
- It looks in its table of established masqueraded connections to see if this datagram actually belongs to a computer on the LAN.
- If it does, it reverses the modification it did on the forward path and transmits the datagram to the LAN computer.
The MASQUERADE chain is useful for internally creating and entire private IP address space, and for forwarding packets that would otherwise be incompatible.
The Ethernet, or wired protocol, assumes that the packet comes from the source and reports itself. The Wifi, or wireless protocol, assumes that the packet is being repeated and reports itself and the original source.
For this reason, Wifi and Ethernet cannot be directly bridged because they are incompatible. Masquerading causes the packets to be rebuilt and will thereby handle conversion between wired and wireless standards. Note: There are ways to cause your computer to accept the incompatibility internally and bridge, but without a full masquerade, the bridge spoof will be viewed externally as a security risk and those requests will be rejected.
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.