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

Маршрутизация IP в ОС Linux

< Лекция 18 || Лекция 19: 123456

Применение утилиты ipchains

В ядре ОС Linux версии 2.1 таблица NAT была расширена и наделена дополнительными функциями. Так как в ней обеспечена обратная совместимость, то для внесения изменений в таблицу NAT вы можете использовать программу ipfwadm. Однако для работы с новыми функциями, доступными в этой версии ядра, была разработана другая программа. Для работы с таблицей NAT в ядрах ОС Linux была создана программа ipchains. Программа была написана Расти Расселом (Rusty Russel) и поддерживается им и сегодня. Основной Web-сервер по поддержке программы ipchains находится по адресу:

http://www.rustcorp.com/linux/ipchains

Замечание

В состав большинства дистрибутивов ОС Linux, в которых используется ядро версии 2.2 и выше, входит бинарный пакет с программой ipchains. Во время написания книги его текущая версия была 1.3.9. Этот пакет можно получить по FTP с сервера:

ftp://ftp.rustcorp.com/ipchains/ipchains-1.3.9.tar.bz2

Полученный через Internet файл нужно распаковать и скомпилировать в выполняемый файл ipchains.

С целью облегчения администрирования совместно с программой ipchains можно использовать три сценария: ipchains-save, ipchains-restore и ipchains-wrapper. Сценарий ipchains-wrapper может использоваться, если в системе уже задействован сценарий ipfwadm и вы хотите, модернизировав ядро ОС Linux, перейти к работе с ipchains. Если же вы настраиваете преобразование адресов и брандмауэр впервые, то вам этот сценарий не понадобится.

Замечание

Все эти сценарии можно получить по FTP с сервера:

ftp://ftp.rustcorp.com/ipchains/ipchains-scripts-1.1.2.tar.gz

Работу сценариев мы обсудим позже в разделе "Сохранение конфигурации NAT".

Программа ipchains, как и ipfwadm, манипулирует в таблице NAT правилами четырех категорий. Эти категории:

  • входящая цепочка IP;
  • исходящая цепочка IP;
  • цепочка для пересылки пакетов IP;
  • цепочки, определяемые пользователем.

В программе ipchains используется принцип формирования цепочек правил, которые совместно регулируют процесс фильтрации пакетов по мере их прохождения через сервер на базе ОС Linux. Помните о том, что правила создаются для облегчения системному администратору управления таблицей NAT. На рис.19.3 представлена графическая схема цепочки правил. Все правила хранятся в виде пар IP-адресов в таблице NAT.

Работа правил в программе ipchains

увеличить изображение
Рис. 19.3. Работа правил в программе ipchains

Рис.19.3 демонстрирует процессы обработки пакетов на сервере под управлением ОС Linux. В табл.19.5 дается подробное описание этих процессов.

Таблица 19.5. Фильтрация пакетов программой ipchains
Процесс Описание
chesksum Выявляет искаженные пакеты
sanity1 Выявляет неправильно сформированные пакеты
input chain Проверяет входную цепочку правил брандмауэра
demasquerade Для ответа на пакет с преобразованным адресом адрес должен быть сконвертирован в исходный адрес пакета
routing Удаленный хост проверяет, является ли пакет локальным или требуется пересылка на другой хост
sanity2 Выявляет неправильно сформированные пакеты
forward chain Проверяет пересылаемую цепочку брандмауэра
sanity3 Выявляет неправильно сформированные пакеты
output chain Проверяет выходную цепочку брандмауэра

Прежде чем пакет будет принят и обработан на локальном хосте либо переслан на другой хост, он должен пройти все необходимые стадии обработки, представленные в табл.19.5.

С помощью программы ipchains для входных, выходных цепочек и цепочек пересылки используются правила, устанавливаемые в таблице NAT. Формат команды ipchains варьируется в зависимости от используемой категории. Ниже приведены несколько наиболее распространенных форматов ipchains:

ipchains -[ADC] chain rule-specification [options]
ipchains -[RI] chain rulenum rule-specification [options]
ipchains -D chain rulenum [options]
ipchains -[LFZNX] [chain] [options]
ipchains -P chain target [options]
ipchains -M [-L | -S ] [options]

Первый параметр в команде задает функции, выполняемые ipchains. В табл.19.6 представлены команды для управления работой ipchains.

Таблица 19.6. Команды ipchains
Команда Описание
-A Добавить одно или несколько правил
-D Удалить одно или несколько правил
-C Проверить пакет вне заданной цепочки
-R Заменить правило для заданной цепочки
-I Вставить одно или несколько правил с заданным номером
-L Вывести список правил для выбранной цепочки
-F Очистить выбранную цепочку
-Z Обнулить счетчики для всех цепочек
-N Создать новую цепочку с параметрами, определенными пользователем
-X Удалить выбранную цепочку с параметрами, определенными пользователем
-P Установить набор правил для цепочки
-M Просмотреть текущие соединения с преобразованием адресов

Далее следует имя цепочки. Это может быть либо одна из системных цепочек (входная, выходная или цепочка пересылки), либо имя цепочки, заданное пользователем с помощью команды -N. Цепочки, определяемые пользователем, часто применяются для упрощения сложных правил.

< Лекция 18 || Лекция 19: 123456
Valentin Diduk
Valentin Diduk
Украина, одесса, кпи, 2010
Евгений Олабин
Евгений Олабин
Беларусь, Гродно