25-04-2023
Тип | |
---|---|
Разработчик |
NETFilter Core Team |
Написана на | |
Операционная система |
на ядре Linux |
Последняя версия |
1.4.17 (25 декабря 2012) |
Лицензия | |
Сайт |
netfilter.org |
IPTables — утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) NETFilter для ядер Linux, начиная с версии 2.4. Для использования утилиты 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 может отслеживать состояние соединения и перенаправлять, изменять или отфильтровывать пакеты, основываясь не только на данных из их заголовков (источник, получатель) или содержимом пакетов, но и на основании данных о соединении. Такая возможность фаервола называется stateful-фильтрацией, в отличие от реализованной в ipchains примитивной stateless-фильтрации (подробнее о видах фильтрации см. статью о фаерволах). Можно сказать, что iptables анализирует не только передаваемые данные, но и контекст их передачи, в отличие от ipchains, и поэтому может принимать более обоснованные решения о судьбе каждого конкретного пакета. Более подробно о stateful-фильтрации в netfilter/iptables см. Netfilter#Механизм определения состояний.
В будущем, разработчики netfilter планируют заменить iptables на nftables — инструмент нового поколения, пока находящийся в ранней стадии разработки[1].
Ключевыми понятиями iptables являются:
Iptables в Викиучебнике? |
Настройка межсетевого экрана в Linux в Викиучебнике? |
Межсетевые экраны | ||
---|---|---|
Свободные | ||
Бесплатные |
Outpost • Ashampoo FireWall Free • Comodo • Privatefirewall • Core Force • Online Armor • PC Tools • PeerGuardian (англ.) • Sygate (англ.) |
|
Проприетарные |
Ashampoo FireWall Pro • AVG Internet Security • CA Personal Firewall • Dr. Web • Jetico Personal Firewall • Kaspersky • Forefront TMG • Norton • Outpost • Panda Cloud • ViPNet Personal Firewall • Trend Micro (англ.) • Брандмауэр Windows • Sunbelt (англ.) • Kerio Control • ZoneAlarm • Mac OS: NetBarrier X4 (англ.) |
|
Аппаратные |
Iptables.