Що таке MASQUERADE в контексті iptables?


42

У iptablesбагатьох випадках я бачу цільову МАСКВЕРАДУ . Що це? Я шукав і знаходив багато речей. Але мені потрібен хтось, який би мені пояснив, що таке МАСКВЕРАДА у легко зрозумілому вигляді?

Приклад (взятий з цієї відповіді ):

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

Відповіді:


33

Це алгоритм, який залежить від реалізації iptables, який дозволяє маршрутизувати трафік, не порушуючи початковий трафік.

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

Я НЕ кажу про спільне використання Ethernet-з'єднання через ваш wifi, я говорю про спільне використання з'єднання через ваш wifi через маскування його до віртуального адаптера. Це фактично дозволяє вам ділитися своїм Wi-Fi з'єднанням через wifi.

.

.

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

Детальніше про це читайте: http://oreilly.com/openbook/linag2/book/ch11.html

Усі ці питання щодо "Connectify для linux" можна вирішити, застосувавши algo 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

Мені дуже не подобається, як пошукові системи роблять алгоритм деяким злим типом злому .. Я використовую його просто, щоб поділитися своїм інтернетом зі своїми андроїд-телефонами.

ЗАКЛЮЧНА РЕДАКЦІЯ: це посилання є найкращим http://gsp.com/cgi-bin/man.cgi?section=3&topic=libalias


як ваш перший посилання, яке було - точно - те, що я шукаю :)
Mohammad Reza Rezwani

Я перевірив 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, які у мене є на даний момент.
Сергій П. aka azure

7

IP-маскарад також відомий як трансляція мережевих адрес (NAT) та обмін мережевим підключенням до деяких інших популярних операційних систем. Це, в основному, спосіб дозволити комп'ютеру, який не має загальнодоступної IP-адреси в Інтернеті, спілкуватися з іншими комп'ютерами в Інтернеті за допомогою іншого комп'ютера, що сидить між ним та Інтернетом.

Як відомо, IP-адреса використовуються в Інтернеті для ідентифікації машин. З огляду на пакет з IP-адресою, кожен маршрутизатор, який складається з Інтернету, знає, куди відправити цей пакет, щоб отримати його до місця призначення. Зараз також є кілька діапазонів IP-адрес, які зарезервовані для приватного використання у локальних мережах та інших мережах, які не підключені безпосередньо до Інтернету. Ці приватні адреси гарантовано не використовуються у загальнодоступному Інтернеті.

Це спричиняє проблеми для машин, підключених до приватних мереж, - це використання приватних IP-адрес, оскільки вони не можуть бути підключені безпосередньо до Інтернету. У них немає IP-адреси, яку можна використовувати в загальнодоступному Інтернеті. IP-маскарад вирішує цю проблему, дозволяючи машині з приватною 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 був включений на рівні ядра з відлунням "1" > /proc/sys/net/ipv4/ip_forwardабо постійно, редагуючи файл налаштувань nano /etc/sysctl.conf.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.