- •Iptables
- •История
- •Архитектура
- •Основные понятия
- •Принцип работы
- •Основные компоненты
- •netfilter
- •iptables
- •conntrack
- •nfnetlink
- •ipset
- •ipvs
- •Механизм определения состояний
- •Критерий состояния соединения
- •Маркировка соединений
- •Использование статистики по соединениям
- •Ограничение количества соединений
- •Отслеживание информации о соединениях
- •Действия
- •Переходы
- •Встроенные действия
- •Терминальные и нетерминальные действия
- •Таблицы
- •Таблица mangle
- •Цепочки
- •Действия
- •Таблица nat
- •Цепочки
- •Действия
- •Таблица filter
- •Цепочки
- •Действия
- •Таблица security
- •Цепочки
- •Действия
- •Таблица raw
- •Цепочки
- •Действия
- •Таблица rawpost
- •Цепочки
- •Действия
- •Критерии
- •Универсальные критерии
- •Критерии, специфичные для протоколов
- •IPsec
- •Критерии состояния соединения
- •conntrack
- •state
- •Дополнительные критерии
- •Вспомогательные критерии
- •Критерии маркировки
- •Лимитирующие критерии
- •Критерий recent
- •Критерий u32
- •Прочие критерии
- •Критерии из набора xtables-addons
- •Программы
- •Основные
- •iptables
- •ipset
- •Вспомогательные
- •Фронтенды
- •С веб-интерфейсом
- •Модули ядра
- •Параметры sysctl/procfs
- •Псевдофайлы procfs
- •Параметры, относящиеся к протоколам
- •Расширения
- •Userspace-компоненты
- •Наборы дополнительных критериев и действий
- •Patch-o-Matic
- •Команды
- •Команды модификации правил
- •Параметры определения правил
- •Модули
- •Некоторые из встроенных (входящие в стандартный пакет)
- •state
- •connlimit
- •iprange
- •multiport
- •Примечания
- •Литература
- •Ссылки
- •Лицензия
Iptables |
1 |
Iptables
iptables
Тип |
Межсетевой экран |
|
|
Разработчик |
Netfilter Core Team |
|
|
Написана на |
C |
|
|
ОС |
часть ядра Linux |
|
|
Последняя версия |
1.4.21 (2013-Nov-22) |
|
|
Лицензия |
GNU GPL |
|
|
Сайт |
www.netfilter.org [1] |
iptables — утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) netfilter для ядер Linux версий 2.4 и 2.6. Для использования утилиты iptables требуются привилегии суперпользователя (root).
Иногда под словом iptables имеется в виду и сам межсетевой экран netfilter.
История
Изначально разработка netfilter и iptables шла совместно, поэтому в ранней истории этих проектов есть много общего. Подробности см. в статье про netfilter.
Предшественниками iptables были проекты ipchains (применялась для администрирования фаервола ядра Linux версии 2.2) и ipfwadm (аналогично для ядер Linux версий 2.0). Последний был основан на BSD-утилите ipfw.
iptables сохраняет идеологию, ведущую начало от ipfwadm: функционирование фаервола определяется набором правил, каждое из которых состоит из критерия и действия, применяемого к пакетам, подпадающим под этот критерий. В ipchains появилась концепция цепочек — независимых списков правил. Были введены отдельные цепочки для фильтрации входящих (INPUT), исходящих (OUTPUT) и транзитных (FORWARD) пакетов. В продолжении этой идеи, в iptables появились таблицы — независимые группы цепочек. Каждая таблица решала свою задачу — цепочки таблицы filter отвечали за фильтрацию, цепочки таблицы nat — за преобразование сетевых адресов (NAT), к задачам таблицы mangle относились прочие модификации заголовков пакетов (например, изменение TTL или TOS). Кроме того, была слегка изменена логика работы цепочек: в ipchains все входящие пакеты, включая транзитные, проходили цепочку INPUT. В iptables через INPUT проходят только пакеты, адресованные самому хосту.
Такое разделение функциональности позволило iptables при обработке отдельных пакетов использовать информацию о соединениях в целом (ранее это было возможно только для NAT). В этом iptables значительно превосходит ipchains, так iptables может отслеживать состояние соединения и перенаправлять, изменять или отфильтровывать пакеты, основываясь не только на данных из их заголовков (источник, получатель) или содержимом пакетов, но и на основании данных о соединении. Такая возможность фаервола называется