iptables - iptables

редактировать
iptables
Исходный автор (-ы) Расти Рассел
Разработчик (-ы) Netfilter Core Team
Первоначальный выпуск1998
Стабильная версия 1.8.5 / 3 июня 2020 г.; 4 месяца назад (2020-06-03)
Репозиторий Измените это в Викиданных
Написано вC
Операционной системе Linux
Платформа Netfilter
Тип Фильтрация пакетов
Лицензия GPL
Веб-сайтwww.netfilter.org

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 года и был объединен с основной веткой ядра Linux в версии ядра 3.13.

Содержание

  • 1 Обзор
  • 2 Утилиты пользовательского пространства
    • 2.1 Интерфейсы
    • 2.2 Другие известные инструменты
  • 3 См. Также
  • 4 Ссылки
  • 5 Литература
  • 6 Внешние links

Обзор

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.

Пакет продолжается пройти по цепочке до тех пор, пока либо

  1. правило не совпадет с пакетом и не определит окончательную судьбу пакета, например, вызвав один из ACCEPTили DROP, либо модуль, возвращающий такая окончательная судьба; или
  2. правило вызывает вердикт RETURN, и в этом случае обработка возвращается в вызывающую цепочку; или
  3. достигнут конец цепочки; обход либо продолжается в родительской цепочке (как если бы использовалось RETURN), либо используется политика базовой цепочки, которая является окончательной судьбой.

Цели также возвращают вердикт типа ACCEPT(модули NATбудут делать это) или DROP(например, модуль REJECT), но также может подразумевать CONTINUE(например, LOGmodule; CONTINUE- внутреннее имя) для продолжения работы со следующим правилом, как если бы цель / вердикт не был указан вообще.

Утилиты пользовательского пространства

Внешние интерфейсы

Для iptables существует множество сторонних программных приложений, которые пытаются облегчить настройку правил. Внешние интерфейсы в текстовом или графическом виде позволяют пользователям генерировать простые наборы правил, щелкая мышью; сценарии обычно относятся к сценариям оболочки (но возможны и другие языки сценариев), которые вызывают iptables или (более быстрый) iptables-restoreс набором предопределенных правил или правил, расширенных из шаблон с помощью простого файла конфигурации. В дистрибутивах Linux обычно используется последняя схема использования шаблонов. Такой подход, основанный на шаблонах, является практически ограниченной формой генератора правил, и такие генераторы также существуют автономно, например, как веб-страницы PHP.

Такие интерфейсы, генераторы и сценарии часто ограничены их встроенными системами шаблонов и там, где шаблоны предлагают места для замены правил, определенных пользователем. Кроме того, сгенерированные правила обычно не оптимизированы для конкретного эффекта брандмауэра, который желает пользователь, поскольку это, вероятно, увеличит затраты на обслуживание для разработчика. Пользователям, которые достаточно разбираются в iptables и хотят оптимизировать свой набор правил, рекомендуется создать свой собственный набор правил.

Другие известные инструменты

  • FireHOL - сценарий оболочки, заключающий iptables в простой для понимания текстовый файл конфигурации
  • NuFW - расширение межсетевого экрана аутентификации для Netfilter
  • Shorewall - инструмент настройки шлюза / брандмауэра, позволяющий использовать более простые правила и сопоставить их с iptables

См. Также

  • Портал бесплатного программного обеспечения с открытым исходным кодом
  • icon Портал Linux

Ссылки

Литература

Внешние ссылки

Последняя правка сделана 2021-05-24 06:12:37
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте