Welcome to Энциклопедия сетевых протоколов Санкт-Петербург
ул. Седова, д. 80
тел. (812) 4490770
факс (812) 4490771
Поиск

Модули
· Титульная страница
· Мир протоколов
· Моя страница
· Основные темы
· Архив публикаций
· Парад популярности
· Поиск
· Приватная почта
· Каталог ссылок
· Написать нам
· Сообщить новость
· Рекомендовать сайт
· Участники
· Документы и программы

Выбор языка
Язык интерфейса:


Статистика
19760210
запросов с 22 сентября 2005

Внешняя статистика
Rambler's Top100

Реклама от Google
Google


  
Создание правил фильтрации пакетов
Опубликовано 21 Окт 2005 (Птн) в 18:24:49
Тема: Вопросы безопасности

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

iptables [-t <таблица>] -<команда> [<цепочка>] [<номер правила>] [<спецификация правила] -j операция [опции операции]

Для правил конкретного типа синтаксис может несколько отличаться от показанного выше и будет более подробно рассмотрен при описании каждой проверки, поддерживаемой программой iptables.





Опции команд iptables

Выбор таблицы (-t)

По умолчанию все команды iptables выполняются применительно к таблице filter. Для выбора другой таблицы1 служит команда

iptables -t <имя таблицы>

или

iptables --table <имя таблицы>

Если при компиляции ядра была выбрана опция автоматической загрузки модулей и требуемый модуль еще не загружен, будет предпринята попытка загрузить модуль. Для загрузки модулей вручную служит опция –modprobe или команда Linux modprobe <имя модуля>.

Выбор операции для правила (-j)

Большинство цепочек iptables заканчиваются указанием операции, которая должна быть применена по отношению к пакету, при выполнении условий, заданных спецификацией правила. Для указания операции служит опция -j. Обычно эта опция используется последней в строке задания правила и имеет формат

-j <имя операции>

или

-jump <имя операции>

Параметр <имя операции> может быть именем одной из встроенных операций iptables или пользовательской цепочки.

Объем выводимой информации (-v)

Опция -v (или --verbose) позволяет вывести с помощью команды -L дополнительную информацию, включающую опции правила, маски TOS, имена интерфейсов и значения счетчиков пакетов и байтов. По умолчанию значения счетчиков выводятся с округлением и суффиксами K (1 000), M (1 000 000) и G (1 000 000 000). Используя описанную ниже опцию -x, можно задать вывод полных (точных) значений счетчиков.

При использовании опции -v в командах добавления, вставки, замены и удаления правил в цепочках обеспечивается вывод детальной информации о соответствующих правилах.

Формат адресов при выводе (-n)

Опция -n (или –numeric) позволяет выбрать для вывода информации представление хостов с помощью адресов IP взамен используемых по умолчанию доменных имен. Использование этой опции значительно ускоряет вывод информации, поскольку не требуется делать многочисленных запросов DNS для преобразования IP-адресов в имена хостов.

Эта опция используется совместно с командой -L.

Формат представления значений счетчиков (-x)

Эта опция служит для управления форматом вывода значений счетчиков пакетов и байтов. По умолчанию значения счетчиков выводятся с округлением и суффиксами K (1 000), M (1 000 000) или G (1 000 000). Опция -x (--exact) позволяет выводить точные значения счетчиков без использования префиксов и округления.

Эта опция используется совместно с командой -L и опцией -v.

Инициализация счетчиков (-c)

Опция -c (--set-counters) позволяет задать стартовые значения для счетчиков пакетов и байтов при добавлении, вставке или замене правил в цепочках iptables. Опция может использоваться в формате

-c <значение счетчика пакетов> <значение счетчика байтов>

или

--set-counters <значение счетчика пакетов> <значение счетчика байтов>

Нумерация строк

Опция –line-numbers позволяет при выводе списков правил (команда -L) показывать в каждой строке номер правила в цепочке. Информация о номере правила может быть полезна при работе с командами добавления, вставки, замены и удаления правил в цепочках iptables.

Загрузка модулей

При использовании правил, компоненты (действия, соответствия и т. п.) опция

--modprobe=command

служит для загрузки модуля, указанного значением параметра command. Вы можете также загрузить модули заранее с помощью команды Linux

modprobe <имя модуля>

Команды iptables

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

-t <имя таблицы>

или

--table <имя таблицы>

Команды управления цепочками и таблицами в целом

Команды управления цепочками и таблицами в целом используют форма

iptables [-t имя таблицы] команда <имя цепочки>

Если в команде отсутствует имя таблицы, эта команда выполняется применительно к таблице filter.

Создание цепочки

Команда

iptables -N <имя цепочки>

или

iptables --new-chain <имя цепочки>

позволяет создать пользовательскую цепочку с указанным именем.

Удаление цепочки

Для удаления существующей пользовательской цепочки служит команда

iptables -X <имя цепочки>

или

iptables --delete-chain <имя цепочки>

Удаляемая цепочка не должна содержать правил3 и не должна использоваться в качестве операции (target) ни в одной из оставшихся цепочек. Если в команде не указано имя удаляемой цепочки, будет предпринята попытка удалить все пользовательские цепочки. При попытке удаления встроенной цепочки выдается сообщение об ошибке:

iptables: Can't delete built-in chain

Переименование цепочки

Для изменения имени пользовательской цепочки служит команда

iptables -E <старое имя цепочки> <новое имя цепочки>

или

iptables --rename-chain <старое имя цепочки> <новое имя цепочки>

Эта команда не оказывает реального влияния на работу цепочек и служит лишь для “косметических” целей.

Сброс цепочки

Для удаления из цепочки всех правил (сброса) можно использовать команду

iptables -F <имя цепочки>

или

iptables --flush <имя цепочки>

Если в команде не указано имя цепочки, будет предпринята попытка удаления всех правил из каждой цепочки.

Просмотр списка правил в цепочках

Команда

iptables -L <имя цепочки>

или

iptables --list <имя цепочки>

служит для просмотра всех правил в указанной цепочке. На рисунке показан пример вывода для встроенных и пользовательских цепочек.


Рисунок 5.1 Просмотр списка правил в цепочках

В первой строке вывода указывается имя цепочки и принятая для нее политика (встроенные цепочки) или количество правил, использующих данную цепочку в качестве действия (target). Нулевое значение счетчика использования цепочки говорит о возможности ее удаления.

Если команда не содержит имени цепочки, выводится список правил во всех цепочках (даже пустых).

Команда -L поддерживает три опции:

-n – при выводе списка правил используются IP-адреса вместо имен хостов;

-v – вывод дополнительной информации, включающей значения счетчиков пакетов и байтов, параметры TOS, имена интерфейсов;

-x – задает формат вывода значений счетчиков при использовании опции -v.

Сброс счетчиков

Для сброса счетчиков может использоваться команда

iptables -Z <имя цепочки>

или

iptables --zero <имя цепочки>

Эта команда может быть весьма полезна для установки нулевых значений счетчиков после просмотра их значений с помощью команды -L

iptables -L -Z FORWARD

Можно выполнить эту операцию с помощью 2 раздельных команд -L и -Z, но следует помнить, что за время последовательного выполнения команд значения счетчиков могут измениться.

Установка политики для цепочек

Команда

iptables -P <имя цепочки> <название политики>

или

iptables --policy <имя цепочки> <название политики>

позволяет выбрать для таблицы принятую по умолчанию политику для любой из встроенных цепочек INPUT, FORWARD и OUTPUT. В качестве политики могут использоваться стандартные операции iptables. Заданная политикой цепочки операция выполняется по отношению к пакетам, прошедшим через все правила данной цепочки4. Политика цепочки определяет судьбу пакета, не соответствующего ни одному из правил данной цепочки.

Политика не задается для пользовательских цепочек, поскольку после завершения проверки соответствия пакета всем заданным цепочкой правилам происходит возврат в точку вызова данной пользовательской цепочки. В качестве политики недопустимо использовать встроенные цепочки iptables.

Пример выбора для цепочки INPUT политики отбрасывания пакетов показан ниже

iptables -P INPUT DROP

Команды управления отдельными правилами в цепочках

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

iptables [-t имя таблицы] -[AIRD] <имя цепочки> <спецификация соответствия> <операция>

Параметр <операция> определяет действие, выполняемое по отношению к пакету при его соответствии заданным правилом условиям. В качестве операции могут использоваться стандартные операции iptables – target или пользовательские цепочки..

Каждое правило указывает имя таблицы (по умолчанию правила включаются в таблицу filter), команду (что делать с данным правилом), условия соответствия (что проверять для пакета) и операцию, выполняемую по отношению к пакету при его соответствии заданным условиям.

Добавление правила в цепочку

Для добавления правила в конец цепочки служит команда

iptables -A <имя цепочки> <спецификация соответствия> <операция>

или

iptables --append <имя цепочки> <спецификация соответствия> <операция>

При необходимости вставленное в цепочку правило можно заменить другим или удалить. Описание спецификаций соответствия приводится в отдельной статье.

Вставка правила в указанную позицию

Если вам нужно поместить новое правило в определенную строку цепочки, можно воспользоваться командой

iptables -I <имя цепочки> <номер правила> <спецификация соответствия> <операция>

или

iptables --insert <имя цепочки> <номер правила> <спецификация соответствия> <операция>

Нумерация правил в цепочке начинается с 1. Посмотреть нумерацию имеющихся в таблице правил можно определить с помощью команды типа

iptables -L INPUT –line-numbers

После вставки правила в цепочку номера строк для последующих правил автоматически увеличиваются на 1 – об этом следует помнить при выполнении других операций. Команда -I достаточно редко используется в сценариях загрузки правил, но может быть полезна для вставки в цепочку временных правил.

При необходимости вставленное в цепочку правило можно заменить другим или удалить. Описание спецификаций соответствия приводится в отдельной статье.

Замена правила в указанной позиции

Команда

iptables -R <имя цепочки> <номер правила> <спецификация соответствия> <операция>

или

iptables --replace <имя цепочки> <номер правила> <спецификация соответствия> <операция>

позволяет заменить правило в строке <номер правила> на новое, спецификация которого задается данной командой. Номер правила можно определить с помощью команды типа

iptables -L INPUT –line-numbers

Команда -R предназначена в основном для экспериментов с цепочками iptables – обычно не возникает необходимости использовать ее в рабочих цепочках5.

Удаление правила

Для удаления правила из цепочки служит команда -D (--delete). Команда может использоваться в двух вариантах – для удаления правила в заданной строке или для удаления правила, полностью совпадающего с указанной спецификацией.

Удаление по номеру

Для удаления правила в указанной номером строке цепочки служит команда

iptables -D <имя цепочки> <номер правила>

или

iptables --delete <имя цепочки> <номер правила>

Номер правила можно определить с помощью команды типа

iptables -L INPUT –line-numbers

При удалении правил из таблицы не забывайте об автоматическом уменьшении на 1 номеров строк для всех последующих правил данной цепочки.

Удаление по спецификации

Для удаления правила из цепочки можно воспользоваться командой, содержащей полную спецификацию удаляемого правила

iptables -D <имя цепочки> <спецификация соответствия> <операция>

или

iptables --delete <имя цепочки> <спецификация соответствия> <операция>

При использовании данного варианта команды заданная в строке спецификация должна в точности соответствовать имеющемуся в цепочке правилу, которое вы хотите удалить.

1raw, nat или mangle.

3для удаления правил служат команды -d и -F.

4Т. е., не соответствующих ни одному из заданных в правилах цепочки условий.

5Команда может быть также полезна для внесения временных изменений, если вы используете множество правил и не хотите перезапускать все таблицы целиком.



Примечание:

 
Вход
Регистрационное имя

Пароль

[Восстановить пароль]

Если у Вас еще нет учетной записи, Вы можете зарегистрироваться.


Связанные ссылки
· Поиск в разделе Вопросы безопасности
· Статьи пользователя Администратор сайта


Самая популярная статья раздела Вопросы безопасности:
Соответствия для правил iptables (часть 3)


Оценка статьи
Средняя оценка: 5
голос.: 1


Оцените эту публикацию:

Отлично
Очень хорошо
Хорошо
Приемлемо
Плохо


Параметры

 Вариант для печати Вариант для печати


Связанные темы

Контроль сетевого трафикаНастройка параметров оборудованияНастройка сетевых параметров хостовВопросы маршрутизации

"Вход" | Вход/регистрация | 1 комментарий | Поиск в дискуссии
Комментарии выражают мнение их авторов. Администрация сайта не несет никакой ответственности за достоверность представленных в комментариях посетителей сведений, а также за содержание таких комментариев.

Для публикации своих комментариев Вам нужно зарегистрироваться..

Re: Создание правил фильтрации пакетов (Оценка: 1)
Автор: alexvedrov
17 Мар 2012 (Сбт) в 04:49:06
(Сведения об авторе | Отправить сообщение)
http://ubuntu-news.ru
Только у меня в статье рисунки не отображаются?


Copyright © BiLiM Systems
Все права на опубликованные на сайте материалы принадлежат компании BiLiM Systems, если в опубликованном на сайте документе явно не указано иное.
Не разрешается воспроизведение опубликованных на сайте документов без согласия BiLiM Systems.

Copyright © 2005 by Nikolai Malykh
Based on PHP-Nuke by Francisco Burzi. This is free software, and you may redistribute it under the GPL. Author comes with absolutely no warranty.
Время генерации страницы: 0.48 сек.