Опубликован: 20.02.2006 | Уровень: специалист | Доступ: платный
Лекция 3:

Межсетевые экраны

Iptables: межсетевой экран с открытыми исходными текстами на платформе Linux

Iptables

Автор/основной контакт: Paul "Rusty" Russell

Web-сайт: http://www.netfilter.org

Платформы: Большинство платформ Linux

Лицензия: GPL

Рассмотренная версия: 1.2.8

Ресурсы:

Списки рассылки Netfilter:

Netfilter-announce. Общий список извещений для новостей или новых выпусков и обновлений. Подписка по адресу:

https://lists.netfilter.org/mailman/listinfo/netfilter-announce

Netfilter-users. Общие вопросы использования Netfilter/Iptables. Сюда следует направлять общие дискуссионные заметки и вопросы. Подписка по адресу:

https://lists.netfilter.org/mailman/listinfo/netfilter-users

Netfilter-devel. Обсуждение разработки и участия. Подписка по адресу:

https://lists.netfilter.org/mailman/listinfo/netfilter-devel

В этом разделе описано, как конфигурировать межсетевой экран при помощи Iptables - утилиты экранирования/фильтрации пакетов, встроенной в большинство систем Linux с ядром версии 2.4 и выше. Данная утилита позволяет создать межсетевой экран, используя команды операционной системы. Она произошла от более ранних проектов межсетевых экранов в Linux. Первая система, Ipfwadm, позволяла создать простой набор правил пропускания или отбрасывания пакетов на основе определенных критериев. В ядро 2.2 ввели Ipchains, чтобы преодолеть ограничения Ipfwadm. Утилита Ipchains работала вполне приемлемо и обладала модульной архитектурой. Однако с ростом числа людей, требующих от своих межсетевых экранов выполнения многочисленных функций (например, сервера-посредника и устройства трансляции сетевых адресов), Ipchains также стало недостаточно. Iptables представляет собой обновленный вариант этих программ и допускает многочисленные применения, ставшие привычными для современных межсетевых экранов. (Отметим, что в Iptables используется практически тот же набор понятий и терминов, что и в Ipchains.)

Iptables является мощным, но сложным средством, и обычно рекомендуется для пользователей, знакомых с межсетевыми экранами и искусством их конфигурирования (см. врезку о написании командных файлов). Если это ваш первый межсетевой экран, я рекомендую, по крайней мере для начала, воспользоваться для создания экранирующей конфигурации одним из рассмотренных далее в этой лекции средств с автоконфигурированием. Эти средства используют Iptables (или продукт-предшественник - Ipchains ) для создания межсетевого экрана согласно заданным исходным данным. Однако, прежде чем приступать к конфигурированию с помощью одного из графических инструментов, имеет смысл разобраться в основах "подкапотной механики" Iptables.

Установка Iptables

В большинство систем Linux с ядром 2.4 и выше межсетевой экран Iptables встроен, поэтому никаких дополнительных программ устанавливать не требуется. (Если версия ядра вашей системы меньше 2.4, то в нее встроены Ipchains или Ipfwadm. Это сходные средства, но они не рассматриваются в этой книге.) Инструкции Iptables можно выполнять из командной строки или из командного файла (см. врезку). Чтобы проверить, что межсетевой экран Iptables установлен, наберите в командной строке Iptables -L и посмотрите, какова реакция. Должен быть выведен текущий набор правил (который, вероятно, пуст, если вы еще не сконфигурировали межсетевой экран).

Если ваша система не содержит Iptables, или если вы хотите получить самую свежую версию, посетите http://www.netfilter.org и загрузите RPM для своей операционной системы. Можно также взять его с компакт-диска, приложенного к книге.

Если на вашем установочном диске нет Webmin RPM, зайдите на http://www.webmin.com и посмотрите, доступна ли там версия Webmin для вашей операционной системы. Webmin требуется для Turtle Firewall, и существуют специальные версии для каждого дистрибутива и операционной системы. Если для вашей операционной системы нет соответствующей версии, то вы не сможете использовать Turtle Firewall, но список поддерживаемых систем весьма велик. Щелкните мышью на файле RPM в X-Window, и он будет установлен автоматически.

Использование Iptables

Идея, лежащая в основе Iptables и Ipchains, состоит в создании каналов входных данных и их обработке в соответствии с набором правил (конфигурацией вашего межсетевого экрана) с последующей передачей в выходные каналы. В Iptables правила располагаются в таблицах, а внутри таблиц - в цепочках. Основными цепочками, используемыми в Iptables, служат:

  • Input.
  • Forward.
  • Prerouting.
  • Postrouting.
  • Output.

Общий формат инструкций Iptables таков:

Iptables команда спецификация_правил расширения,

где команда, спецификация_правил и расширения - это одна или несколько допустимых опций. В табл. 3.3 перечислены команды Iptables, а табл. 3.4 содержит спецификации правил Iptables.

Таблица 3.3. Команды Iptables
Команда Описание
-A цепочка Добавляет в конец указанной цепочки одно или несколько правил, заданных в инструкции вслед за командой
-I цепочка номер_правила Вставляет правила в позицию с заданным номером в указанной цепочке. Это полезно, если вы хотите перекрыть правила, заданные ранее
-D цепочка спецификация_правил Удаляет из указанной цепочки специфицированные номером или текстом правила
-R цепочка номер_правила Заменяет правило в позиции с заданным номером в указанной цепочке
-L цепочка Выдает все правила в цепочке. Если цепочка не задана, выдаются все цепочки
-F цепочка Сбрасывает все правила в цепочке, по сути ликвидируя конфигурацию вашего межсетевого экрана. Это полезно в начале конфигурирования, чтобы гарантировать отсутствие существующих правил, способных конфликтовать с вашими новыми правилами
-Z цепочка Обнуляет все счетчики пакетов и байтов в указанной цепочке
-N цепочка Создает новую цепочку с заданным именем
-X цепочка Удаляет указанную цепочку. По умолчанию удаляются все цепочки
-P цепочка политика Задает политику для указанной цепочки

Таблица 3.4. Спецификации правил Iptables
Спецификация правила Описание
-p протокол Задает протокол, которому соответствует правило. Допустимыми типами протоколов являются icmp, tcp, udp и all
-s адрес/маска Задает определенный адрес или сеть для соответствия. Используется стандартная нотация с косой чертой для указания диапазона IP-адресов
-j цель Указывает, что делать с пакетом, если он соответствует спецификациям. Допустимыми опциями для цели являются:
DROP Отбрасывает пакет без всяких дальнейших действий.
REJECT Отбрасывает пакет и посылает в ответ пакет с уведомлением об ошибке.
LOG Протоколирует пакет в файле.
MARK Помечает пакет для дальнейших действий.
TOS Изменяет поле TOS (тип обслуживания).
MIRROR Меняет местами исходный и целевой адреса и посылает пакеты обратно, по сути "отражая" их назад отправителю.
SNAT Трансляция исходных сетевых адресов. Эта опция применяется при выполнении трансляции сетевых адресов. Исходный адрес преобразуется в другое статическое значение, определенное с помощью ключа - to-source.
DNAT Трансляция целевых сетевых адресов. Данная опция аналогична предыдущей, но применяется к целевым адресам.
MASQ Маскарад с помощью общедоступного IP-адреса.
REDIRECT Перенаправляет пакет.

Существуют и другие команды и опции, но мы перечислили самые распространенные операции. Весь список команд можно найти в оперативной справке Iptables, набрав man iptables в командной строке.

Роман Попов
Роман Попов

После прохождения курса Стандарты инфрмационной безопасности мне предложено получение Удостоверения о повышении квалификации от НИУ ВШЭ по программе Менеджмент информационной безопасности. Программа включает в себя ряд курсов которые я уже ранее проходил. Какой порядок действий в данном случае? Как прозводится перезачет результатов? И какие экщамены мне надо еще доздать чтобы получить удостоверение?

Александр Путятинский
Александр Путятинский

Добрый день по окончании данного курса выдается сертификат?

Гончик Цымжитов
Гончик Цымжитов
Россия, Санкт-Петербург
Александр Косенко
Александр Косенко
Украина, Днепропетровск