iptables
![]() | Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( Апрель 2015 г. ) |
Оригинальный автор(ы) | Расти Рассел |
---|---|
Разработчик(и) | Основная команда Netfilter |
Первоначальный выпуск | 1998 |
Стабильная версия | 1.8.10 [1] ![]() |
Репозиторий | |
Написано в | С |
Операционная система | Линукс |
Платформа | Сетевой фильтр |
Тип | Фильтрация пакетов |
Лицензия | лицензия GPL |
Веб-сайт | www |
iptables — это служебная программа пользовательского пространства , которая позволяет системному администратору настраивать правила фильтрации IP-пакетов брандмауэра ядра Linux , реализованные в виде различных Netfilter модулей . Фильтры организованы в различные таблицы, содержащие цепочки правил обработки пакетов сетевого трафика. В настоящее время для разных протоколов используются разные модули ядра и программы; iptables применяется к IPv4, ip6tables к IPv6, arptables к ARP и ebtables к кадрам Ethernet .
Для работы iptables требуются повышенные привилегии, и он должен выполняться пользователем root , иначе он не сможет работать. В большинстве систем Linux iptables устанавливается как /usr/sbin/iptables и задокументирован на его справочных страницах , которые можно открыть с помощью man iptables
при установке. Его также можно найти в /sbin/iptables
, но поскольку iptables больше похож на сервис, чем на «необходимый двоичный файл», предпочтительное расположение остается /usr/sbin .
Термин iptables также часто используется для обозначения компонентов уровня ядра. x_tables — это имя модуля ядра, несущего общую часть кода, используемую всеми четырьмя модулями, которая также предоставляет API, используемый для расширений; впоследствии Xtables в той или иной степени используется для обозначения всей архитектуры брандмауэра (v4, v6, arp и eb).
iptables заменил ipchains ; а преемником iptables является nftables , выпущенный 19 января 2014 года. [2] и был объединен с основной веткой ядра Linux в версии ядра 3.13.
Обзор
[ редактировать ]iptables позволяет системному администратору определять таблицы содержащие цепочки правил , обработки пакетов. Каждая таблица связана с различным типом обработки пакетов . Пакеты обрабатываются путем последовательного прохождения правил в цепочках. Правило в цепочке может вызывать переход или переход к другой цепочке, и это можно повторять до любого желаемого уровня вложенности. (Прыжок аналогичен «вызову», т. е. запоминается точка, из которой был выполнен переход.) Каждый сетевой пакет, поступающий на компьютер или исходящий от него, проходит как минимум одну цепочку.

Происхождение пакета определяет, какую цепочку он пересекает изначально. Существует пять предопределенных цепочек (соответствующих пяти доступным перехватчикам Netfilter), хотя в таблице могут быть не все цепочки. Предопределенные цепочки имеют политику , например DROP, которая применяется к пакету, если он достигает конца цепочки. Системный администратор может создать любое количество других цепочек. У этих сетей нет политики; если пакет достигает конца цепочки, он возвращается в цепочку, вызвавшую его. Цепочка может быть пустой.
PREROUTING
: Пакеты попадут в эту цепочку до того, как будет принято решение о маршрутизации.INPUT
: Пакет будет доставлен на месте. Это не имеет ничего общего с процессами, имеющими открытый сокет; локальная доставка контролируется таблицей маршрутизации «local-delivery»:ip route show table local
.FORWARD
: все пакеты, которые были маршрутизированы и не предназначены для локальной доставки, будут проходить через эту цепочку.OUTPUT
: Пакеты, отправленные с самой машины, будут посещать эту цепочку.POSTROUTING
: Решение о маршруте принято. Пакеты попадают в эту цепочку непосредственно перед передачей их оборудованию.
Цепь не существует сама по себе; он принадлежит таблице . Есть три таблицы: nat , filter и mangle . Если перед ним не стоит опция -t , iptables
По умолчанию команда касается таблицы фильтров . Например, команда iptables -L -v -n
, который показывает некоторые цепочки и их правила, эквивалентен iptables -t filter -L -v -n
. Чтобы показать цепочки таблицы nat , используйте команду iptables -t nat -L -v -n
Каждое правило в цепочке содержит спецификацию, каким пакетам оно соответствует. Он также может содержать цель (используется для расширений) или вердикт (одно из встроенных решений). По мере прохождения пакета по цепочке поочередно проверяется каждое правило. Если правило не соответствует пакету, пакет передается следующему правилу. Если правило соответствует пакету, оно выполняет действие, указанное целью/вердиктом, что может привести к тому, что пакету будет разрешено продолжить движение по цепочке, а может и нет. Совпадения составляют большую часть наборов правил, поскольку они содержат условия, на которых проверяются пакеты. Это может произойти практически на любом уровне модели OSI , как, например, в случае --mac-source
и -p tcp --dport
параметры, а также есть совпадения, независимые от протокола, такие как -m time
.
Пакет продолжает перемещаться по цепочке до тех пор, пока
- правило сопоставляет пакет и решает окончательную судьбу пакета, например, вызывая один из
ACCEPT
илиDROP
, или модуль, возвращающий такую окончательную судьбу; или - правило называет
RETURN
вердикт, в этом случае обработка возвращается в вызывающую цепочку; или - конец цепочки достигнут; обход либо продолжается в родительской цепочке (как если бы
RETURN
была использована), или используется политика базовой цепочки, что является окончательной судьбой.
Цели также возвращают вердикт типа ACCEPT
( NAT
модули сделают это) или DROP
(например, REJECT
модуль), но может также подразумевать CONTINUE
(например, LOG
модуль; CONTINUE
является внутренним именем), чтобы перейти к следующему правилу, как если бы цель/вердикт вообще не были указаны.
Утилиты пользовательского пространства
[ редактировать ]Интерфейсы
[ редактировать ]Существует множество сторонних программных приложений для iptables, которые пытаются облегчить настройку правил. Интерфейсы в текстовой или графической форме позволяют пользователям создавать простые наборы правил щелчком мыши; сценарии обычно относятся к сценариям оболочки (но возможны и другие языки сценариев), которые вызывают iptables или (более быстрый) iptables-restore
с набором предопределенных правил или правил, расширенных из шаблона с помощью простого файла конфигурации. В дистрибутивах Linux обычно используется последняя схема использования шаблонов. Такой подход на основе шаблонов представляет собой практически ограниченную форму генератора правил, и такие генераторы также существуют автономно, например, в виде веб-страниц PHP.
Такие интерфейсы, генераторы и сценарии часто ограничены встроенными системами шаблонов, а шаблоны предлагают места для замены определяемых пользователем правил. Кроме того, сгенерированные правила обычно не оптимизированы для конкретного эффекта брандмауэра, которого желает пользователь, поскольку это, скорее всего, увеличит затраты на обслуживание для разработчика. Пользователям, которые достаточно хорошо понимают iptables и хотят оптимизировать свой набор правил, рекомендуется создать свой собственный набор правил.
Другие известные инструменты
[ редактировать ]- FireHOL — сценарий оболочки, обертывающий iptables в простой для понимания текстовый файл конфигурации.
- NuFW — расширение брандмауэра аутентификации для Netfilter.
- Shorewall — инструмент настройки шлюза/брандмауэра, позволяющий использовать более простые правила и сопоставлять их с iptables.
См. также
[ редактировать ]- nftables
- НПФ (брандмауэр)
- ПФ (брандмауэр)
- ip-брандмауэр (ipfw)
- IP-фильтр
- ПРП
- ipchains
- Несложный межсетевой экран (брандмауэр)
Ссылки
[ редактировать ]- ^ Фил Саттер (10 октября 2023 г.). «Выпуск iptables 1.8.10» . Проверено 10 октября 2023 г.
- ^ «Linux 3.13, раздел 1.2. nftables, преемник iptables» . kernelnewbies.org . 19 января 2014 года . Проверено 20 января 2014 г.
Литература
[ редактировать ]- Грегор Н. Парди (25 августа 2004 г.). Карманный справочник по Linux iptables: межсетевые экраны, NAT и учет . O'Reilly Media, Inc. ISBN 978-1-4493-7898-1 .
Внешние ссылки
[ редактировать ]- Веб-страница проекта netfilter/iptables
- «iptables» . Бесплатный код .
- Страница документации netfilter/iptables (устарела) [ нужны разъяснения ]
- Обнаружение и обман сканирования сети – меры противодействия nmap
- Страница руководства IPTables для справки по синтаксису.
- Учебное пособие по Iptables 1.2.2, автор: Оскар Андреассон
- IPTABLES: брандмауэр Linux по умолчанию
- Ускорение фильтрации пакетов Linux iptables с помощью GPGPU