Iptables
![]() | |
Автор | Русті Рассел |
---|---|
Розробник | Netfilter Core Team |
Перший випуск | 1998 |
Стабільний випуск | 1.4.14 (26 травня 2011 ) |
Платформа | Ядро Linux і Linux-libred |
Операційна система | Linux |
Мова програмування | C |
Ліцензія | GNU General Public License |
Репозиторій | http://git.netfilter.org/iptables/, https://git.netfilter.org/iptables/, git://git.netfilter.org/iptables |
Вебсайт | www.netfilter.org |
Iptables — утиліта командного рядка, стандартний інтерфейс керування роботою міжмережевого екрана (брандмауеру) Netfilter для ядер Linux від версії 2.4. Всупереч поширеній думці, ані iptables, ані netfilter не виконують маршрутизацію пакетів і не керують нею. Netfilter лише фільтрує та модифікує (також для NAT) пакети за правилами, вказаними адміністратором через утиліту iptables. Для використання утиліти iptables потрібні привілеї суперкористувача (root).
Іноді під словом iptables йдеться про сам міжмережевий екран netfilter.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/37/Netfilter-packet-flow.svg/500px-Netfilter-packet-flow.svg.png)
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 лютого 2017. Процитовано 5 грудня 2016.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
- How To List and Delete Iptables Firewall Rules [Архівовано 13 червня 2016 у Wayback Machine.] DigitalOcean