Iptables

Iptables утиліта командного рядка, стандартний інтерфейс керування роботою міжмережевного екрану (брандмауеру) Netfilter для ядер Linux від версії 2.4. Всупереч поширеній думці, ані iptables, ані netfilter не виконують маршрутизацію пакетів і не керують нею. Netfilter лише фільтрує та модифікує (також для NAT) пакети за правилами, вказаними адміністратором через утиліту iptables. Для використання утиліти iptables потрібні привілеї суперкористувача (root).

iptables
Автор(и) Русті Рассел
Розробник Netfilter Core Team
Перший випуск 1998
Стабільний випуск 1.4.14 (26 травня 2011 (2011-05-26))
Репозиторій http://git.netfilter.org/iptables/, https://git.netfilter.org/iptables/, git://git.netfilter.org/iptables
Операційна система Linux
Мова програмування C
Ліцензія GNU General Public License
Вебсайт www.netfilter.org

 iptables у Вікісховищі

Іноді під словом iptables мається на увазі сам міжмережевий екран netfilter.

Терміни

Рух мережевих пакетів крізь Netfilter

DNAT — від анг. Destination Network Address Translation — Зміна Мережевої Адреси Отримувача. DNAT — це зміна адреси призначення у заголовці пакета. Найчастіше використовують у парі з SNAT. Основне застосування — використання єдиної реальної IP-адреси кількома комп'ютерами для виходу до Інтернету та умов надання додаткових мережевих послуг зовнішнім клієнтам.

Потік (Stream) — під цим терміном мається на увазі з'єднання, крізь яке передаються і приймаються пакети. Я використав цей термін для позначення з'єднання, якими передається меншою мірою 2 пакета в обох напрямах. Що стосується TCP це означатиме з'єднання, крізь яке передається SYN пакет і далі приймається SYN/ACK пакет. Але це також може передбачати й передачу SYN пакета і прийом повідомлення ICMP Host unreachable. Інакше кажучи, використовую цей термін у досить широкому діапазоні застосувань.

SNAT — від анг. Source Network Address Translation — Зміна Мережевого Адресу Відправника. SNAT — це й зміна вихідного адресу в заголовку пакета. Основне застосування — використання єдиного реального IP-адресу кількома комп'ютерами для виходу до Інтернету. В теперішній час діапазон реальних IP-адрес, за стандартом IPv4, недостатньо широкий, та їх бракує усім (перехід на IPv6 дозволить позбутись цієї проблеми).

Стан (State) — під цим терміном мається на увазі стан, де знаходиться пакет, відповідно до RFC 793 — Transmission Control Protocol, і ті трактуванням, які є у netfilter/iptables. Хочу звернути вашу увагу на той факт, що визначення станів пакетів, як внутрішніх так зовнішніх станів, що використовуються Netfilter, в повному обсязі відповідають зазначеному вище в RFC 793.

Простір користувача (User space) — під цим терміном маю на увазі усе, що розміщено поза ядром, наприклад: команда iptables -h виконується поза ядром, тоді як команда iptables -A FORWARD -p tcp -j ACCEPT виконується (частково) у просторі ядра, оскільки вона додає нове правило до наявного набору.

Простір ядра (Kernel space) — більшою або меншою мірою є твердженням, зворотним терміну «Простір користувача». Мається на думці місце виконання — всередині ядра.

Приклади

За допомогою iptables можна наприклад перенаправити трафік зі стандартного порту HTTP (80) на якийсь порт який не вимагає від сервера прав суперкористувача аби мати можливість на ньому слухати[1]:

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080


Посилання

  1. https://wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+on+Port+80+or+443+using+iptables
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.