Iptables edbox wiki
Інструменти користувача
Інструменти сайту
Зміст
Архітектура
Основні поняття
Ключовими поняттями iptables є:

Критерії стану з'єднання
conntrack
Маска містить перерахування через ком список можливих станів з'єднання. Пакет вважається задовольняючим критерію, якщо з'єднання, яким він проходить, перебуває у одному з перелічених станів.
Можливі стани:
Таблиця nat
Таблиця filter
Таблицяfilter містить такі ланцюжки:
Допустимими діями в таблиці filter є:
Також певний інтерес становлять дії, що надаються модулями xtables-addons (нині цей проект вже включений до Debian testing). Деякі з них:
Під правильним застосуванням розуміється запобігання обробці таких з'єднань підсистемою conntrack, так як в іншому випадку будуть витрачатися системні ресурси хоста, що атакується. Наприклад, перед додаванням правила блокування порту
обов'язково додавайте до таблиці raw відповідне правило
що запобігає обробці блокованих з'єднань підсистемою conntrack.
Таблиця raw
Призначена для виконання дій з пакетами до їх обробки системоюconntrack.
Зверніть увагу, що в даній таблиці не спрацьовуватимуться критерії, яким для коректної роботи необхідний conntrack (це критерії conntrack, connmark, connlimit, connbytes).
у той час як для тієї ж операції при використанні «сирих» перетворень необхідно щонайменше два правила
Таблиця rawpost
Як і в таблиціraw, уrawpost відсутня можливістьзвернення до conntrack, тому критерії, що використовують цю підсистему (conntrack, connmark, connlimit, connbytes), у цій таблиці не працюватимуть.
Ця таблиця реалізована в рамках проектуxtables-addons і відсутня у стандартному комплекті iptables/netfilter.
Для порівняння, з використанням stateful-перетворення достатньо одного правила
Нагадуємо, критерій - це логічний вираз, що визначає, чи відповідає пакет або з'єднання цього конкретного правила.
В одному правилі можна зазначити кілька критеріїв. Для того щоб пакет був оброблений правилом, повинні виконуватися всі критерії, тобто критерії неявно поєднуються логічним AND.
Також багато критеріїв і параметри критеріїв можна інвертувати, поставивши перед ними знак оклику.
Універсальні критерії
Під цим терміном розуміються критерії, які застосовуються до всіх пакетів і з'єднань, незалежно від протоколу транспортного рівня, і не потребують підключення зовнішніх модулів (-m).
Дозволяє вказати протокол транспортного рівня. Найчастіше використовуються tcp, udp, icmp і all. Протокол також можна вказати за допомогою номера або назви згідно з переліком, наведеним у /etc/protocols. Значення "будь-який протокол" можна вказати за допомогою слова all або числа 0. Якщо протокол не вказаний, мається на увазі "будь-який протокол".
При зазначенні протоколу стає можливим використовувати специфічні йому критерії. Наприклад, для TCP та UDP доступні критерії –sport та --dport , для ICMP – --icmp-type .
Визначає вхідний інтерфейс мережі. Якщо вказане ім'я інтерфейсу закінчується знаком «+» (наприклад, tun+), то критерію відповідають усі інтерфейси, чиї назви починаються на вказане ім'я(Для нашого прикладу tun0, tun1, …). Цей критерій можна використовувати в ланцюжках PREROUTING, INPUT та FORWARD.
Визначає вихідний інтерфейс мережі. Синтаксис аналогічний –i. Критерій можна використовувати в ланцюжках FORWARD, OUTPUT та POSTROUTING.