Linux что такое masquerade

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

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

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

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

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

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

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

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

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

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

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

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

И маскарад, и 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.

Источник

Linux что такое masquerade

Маскарадинг (masquerading) и трансляции ip-адресов (NAT)

Проблема маскарада (masquerading) и трансляции ip-адресов в Линуксе. Что это такое, что там можно и что нельзя.

Автор оригинала Иван Н. Песин

Но так как статья морально устарела, то она будет взята лишь за основу. (претензии автора принимаются). Каждому Linux админу рано или поздно приходится сталкиваться с проблемой маскарада (masquerading) и трансляции ip-адресов на Линуксе (кроме тех у кого есть куча реальных адресов и они раздают их всем компам в локальной сети :-)). Если у Вас есть локальная сеть, подключенная к сети Интернет через linux сервер, то без маскарада не обойтись.
Начнем, пожалуй, с определений.
1. Маскарад (masquerade) и трансляция адресов (NAT) в мире Linux не являются синонимами.
2. Маскарад — замена адреса на адрес машины, выполняющей маскарад.
3. Трансляция адресов — замена адреса на любой указанный.
Если вы используете ОС Linux с ядром 2.0 или 2.2, Вам нужно будет опустить глаза вниз — в конце этой статьи находится авторское описание настроек ipfwadm и ipchains.
Я же опишу настройку NAT, masquerading для ОС Linux с ядром 2.4- 2.6, де используются iptables.
Для чего это вообще нужно? Вы имеете сеть с адресами:
10.0.0.0-10.255.255.255 — сеть класса А
172.16.0.0 — 172.31.255.255 — сеть класса B
192.168.0.0-192.168.255.255 — сеть класса С
Эти сети зарезервированы для использования в локальных сетях (intranet) и в сети Интернет не используются.
Допустим ваш компьютер в локальной сети с ip 192.168.0.2 получает доступ к Интернет через сервер с внутренним ip адресом 192.168.0.1 (eth1) и внешним адресом 111.111.111.111 (eth0).
Если пакет с вашего компьютера будет иметь ваш адрес источника (192.168.0.2) то он просто не придет обратно, так как удаленный хост не будет знать по какому маршруту отослать его обратно. Для того, чтобы этого не случилось и придуманы NAT и masquerading.
Итак как работает маскарад.
Ваш пакет (например на проходит через сервер и в нем адрес источника меняется на адрес сервере (111.111.111.111). Пакет приходит на и хост отвечает по адресу в пакете (111.111.111.111). Так как Ваш сервер запомнил, что пакет для посылали вы, то он принимает пакет и отдает его вашему компьютеру.
Вот и все пакет ушел и вернулся.
Включается маскарад в iptables очень просто:
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
(этой командой вы разрешили прохождение пакетов между сетевыми интерфейсами из локальной сети 192.168.0.0/24)
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT
(этой командой вы разрешили прохождение пакетов между сетевыми интерфейсами в локальную сеть 192.168.0.0/24)
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
(и последняя команда — ей вы включили маскарад для сети 192.168.0.0/24).
Еще вам нужно проверить чтобы был включен forward ip в вашем ядре.
Сделать это можно командой
cat /proc/sys/net/ipv4/ip_forward
если Вы получили 1 на выходе значит все в порядке, если 0, тогда вам нужно включить ip forward командой
echo 1 >/proc/sys/net/ipv4/ip_forward
Как работает NAT ?
Ваш пакет (например на проходит через сервер и в нем адрес источника меняется на указанный адрес (мы укажем адрес сервера (111.111.111.111). Пакет приходит на и хост отвечает по адресу в пакете (111.111.111.111). Пакет приходит на Ваш сервер и происходит обратная замена.
Включается NAT в iptables так:
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
(этой командой вы разрешили прохождение пакетов между сетевыми интерфейсами из локальной сети 192.168.0.0/24)
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT
(этой командой вы разрешили прохождение пакетов между сетевыми интерфейсами в локальную сеть 192.168.0.0/24)
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT —to-source 111.111.111.111
(и последняя команда — ей вы включили трансляцию адресов сети 192.168.0.0/24 на адрес 111.111.111.111).
Еще вам нужно проверить чтобы был включен forward ip в вашем ядре.
Сделать это можно командой
cat /proc/sys/net/ipv4/ip_forward
если Вы получили 1 на выходе значит все в порядке, если 0, тогда вам нужно включить ip forward командой
echo 1 >/proc/sys/net/ipv4/ip_forward
Вот собственно и все. Дальше идет статья Ивана Песина
Решение проблемы маскарада, на ядрах разных версий отличается, и потому мы разделим нашу повесть на две части, ядра версии от, если не ошибаюсь, 2.0.29 до 2.2.9ас, и от 2.2.10 до 2.4.0. Ядра версии 2.4.х я обсуждать не буду, потому как там имеется вполне сносное описание. Итак,

Читайте также:  Процесс установки windows 10 как отменить

Ядра версий 2.0.29 — 2.2.9

Для функции маскарада в этих версиях необходим пакет ipfwadm либо ipchains, зависит от версии. Установив их можно приступать к осмысленным действиям. Очень тривиальная задача решается следующим образом:

ipchains -A forward -i ethX -s 192.168.1.0/24 -j MASQ

результатом этой команды будет замена исходных адресов пакетов из сети 192.168.1.0 класса С, при маршрутизации их через интерфейс ethX, на адрес машины на которой выполнены команды.

Перейдем теперь к более сложным случаям. Допустим, вам необходимо, в зависимости от адреса источника/назначения маскарадить под разными адресами. Как же это выполнить? Тут нам придется обратиться к нестандартным средствам.

Для начала посмотрим урл Хотя там написано не очень много, зато содержательно. После прочтения остается лишь вытащить соответствующий архив с программой и патчем ядра. Пропатчив ядро, его надо перекомпилировать (прочитать почитайки обязательно!) с соответствующими изменениями в конфигурации. Устанавливаем скомпилированное ядро, при этом не забываем про «ядро на всякий случай» (рабочее ядро, которое вы будете загружать, если новое ядро не загрузится). После перезагрузки станет возможным использование команды ipnatadm. Название говорит само за себя ;). Теперь легко можно изобразить команды вроде:

ipnatadm -O -i -b -S 192.168.1.1/24 -M 207.46.230.219
ipnatadm -O -i -b -S 192.168.1.2/24 -M 207.46.230.229

ну и так далее, думаю, разобраться можно. Есть еще полезная опция -W, позволяющая задавать интерфейс. Да, не забудьте, что псевдонимы интерфейсов не понимаются ни ipchains, ни ipfwadm, ни ipnatadm. Перейдем теперь к теме

Ядра версий 2.2.10 — 2.4.0

На этих версиях, к сожаленью, программа ipnatadm предательски перестает функционировать. Почему предательски? Потому что удается пропатчить ядро, скомпилировать, загрузиться и даже приконнектиться с помощью telnet, например. Но при попытке выполнить, допустим, даже вышеописанные команды, интерфейс подвисает. Ну что ж, значит нужно искать другие ходы. Если нужно, значит надо.

Читайте также:  Postgres windows postgresql conf

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

Ну а я попробую, насколько это возможно, сжато рассмотреть стандартный и нестандартные методы маскарада, и NAT´а. Стандартный случай: необходимо маскарадить исходящие пакеты хоста 192.168.1.1 в 207.46.230.219. Подход к решению этой задачи полностью аналогичен случаю с более ранними ядрами. Необходимо лишь учесть, что в системах с этими ядрами утилиты ipfwadm нет, вместо нее используется ipchains. Сразу перейдем к рассмотрению более сложных случаев. Допустим, как и в предыдущем примере, пакеты с разных машин, необходимо транслировать в разные адреса.

Тут придется прибегнуть к утилите ip из пакета iproute. Изобразим следующие команды:

ip rule add from 192.168.1.1 nat 207.46.230.219
ip rule add from 192.168.1.2 nat 207.46.230.229

ip route add nat 207.46.230.219 via 192.168.1.1
ip route add nat 207.46.230.229 via 192.168.1.2

Результатом этих действий будет маскарад и демаскарад адресов 192.168.1.1 и 192.168.1.2, соответственно в 207.46.230.219 и 229.

Вот такие пирожки. Это все теория и стандартные случаи, давайте рассмотрим более интересный и совсем реальный пример. Имеется сеть на

250 машин, линукс красная шапочка версии 6.2, в роли маршрутизатора, и выполняющий маскарад внутренних машин под адрес, допустим, 207.46.230.219. Линукс включен в машину провайдера витой парой, из сетевой в сетевую. Кроме того, провайдер, естественно, не желает тратить отдельный ip-адрес на сетевую в которую включен наш линукс. Другими словами (рисунком) ситуация следующая

Читайте также:  Установить telegram kali linux

Вопрос: как это реализовать на линуксе? Вообще-то весьма просто. Для начала объясним линуксу, как посылать пакеты на машину провайдера. Она находиться не в одной логической сети с нами, а потому изначально линукс не знает как туда попасть. Для этого укажем:

route add -host 192.168.100.1 eth1

что означает: машина 192.168.100.1 подсоединена непосредственно к интерфейсу eth1. Далее, укажем, что все пакеты, предназначенные для интернета отсылать через машину провайдера:

route add default gw 192.168.100.1

и остается лишь прописать правила маскарада. Допустим, я хочу, что бы машины с адресами 192.168.1.101-105 ходили в интернет, а другие нет:

ipchains -A forward -s 192.168.1.101 -j MASQ
ipchains -A forward -s 192.168.1.102 -j MASQ
ipchains -A forward -s 192.168.1.103 -j MASQ
ipchains -A forward -s 192.168.1.104 -j MASQ
ipchains -A forward -s 192.168.1.105 -j MASQ

ipchains -A forward -j REJECT -l

Ну вот, в общем, на сегодня и все.

Copyright (С) 2001, Иван Песин.
Лицензия

Источник

Что такое NAT, маскарад (masquerade) и проброс портов?

Желаете узнать что за магия творится в тех коробочках с огоньками, подключенных провайдером и как работает Интернет у вас дома или в офисе? Или просто, наконец, решили научиться самостоятельно настраивать роутер, но совершенно не ясно что скрывается за словами NAT, маскарад (Masquerade) или проброс портов? Тогда давайте разбираться.

Итак, провайдер выдал вам всего один шнурок для подключения в сети Интернет, а у вас кроме компьютера (а то и не одного), имеется ещё и планшет с телефоном. Как же быть? Для совместного выхода в интернет всего этого добра потребуется настроить роутер, но чтобы сделать это правильно, понадобятся кое-какие знания.

Все устройства находящиеся в локальной сети (компьютеры, ноутбуки, планшеты, смартфоны) имеют собственные внутренние IP адреса. Чтобы все они одновременно и независимо друг от друга могли выходить в Интернет используя одно подключение придуман специальный механизм NAT (Network Address Translation), дословно «трансляция сетевых адресов».

С какого бы компьютера или устройства изнутри вы не выходили в глобальную сеть, сервера в Интернете будут видеть только внешний адрес вашего роутера, но не ваш внутренний адрес в локальной сети. Процесс подмены роутером внутренних адресов устройств на свой собственный называется «маскарадом» (masquerade). Роутер запоминает от какого устройства и куда шёл запрос и возвращает полученный ответ отправителю.

Когда возникает необходимость в подключении из внешней сети к какому-то внутреннему сетевому ресурсу (например вы находитесь за границей и хотите подключиться к системе видеонаблюдения у себя дома или в офисе), то вы подключаетесь к своему роутеру, на котором заранее создано специальное правило, переправляющее ваш запрос на требуемый ресурс внутри сети. Вот так мы и подобрались к теме проброса портов, осталось только выяснить что такое порт?

Представьте себе большой многоквартирный дом, за каждой дверью в котором кто-то живёт и мы можем зайти в гости, или не зайти если дверь закрыта. Так же и с портами, качаете вы торренты, отправляете или принимаете почту, открываете странички в браузере или подключаетесь к системе видеонаблюдения, каждый из этих сервисов работает на каком-то порту (живёт в своей квартире) и доступ к нему возможен лишь когда данный порт открыт.

Как видите, всё не так уж и сложно. Если материал вам понравился, не ленитесь оставлять комментарии и подписываться на мой дзен-канал на Яндексе и паблик вконтакте

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Источник

Оцените статью