Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Masquerade

SNAT

DNAT

MARK

TTL

TOS

Действие TOS выполняет установку битов поля Type of Service в пакете. Это поле используется для назначения сетевой политики обслуживания пакета, то есть задает желаемый вариант маршрутизации. Однако следует заметить, что данное свойство в действительности используется на незначительном количестве маршрутизаторов в Интернете. Другими словами, не следует изменять состояние этого поля для пакетов, уходящих в Интернет, потому что на маршрутизаторах, которые обслуживают это поле, может быть принято неправильное решение при выборе маршрута.

Действие TTL используется для установки значения поля TTL (Time To Live) пакета. Можно присваивать определенное значение этому полю, чтобы скрыть свой МСЭ от провайдеров (Internet Service Providers).

Действие MARK устанавливает специальную метку на пакет, которая затем может быть проверена другими правилами в iptables или другими программами. С помощью «меток» можно управлять маршрутизацией пакетов, ограничивать трафик и т.п.

Таблица Nat

Эта таблица используется для выполнения преобразований сетевых адресов NAT (Network Address Translation) Только первый пакет из потока проходит через цепочки этой таблицы, трансляция адресов или маскировка применяются ко всем последующим пакетам в потоке автоматически. Для этой таблицы характерны действия:

Действие DNAT (Destination Network Address Translation) производит преобразование адресов назначения в заголовках пакетов. Другими словами, этим действием производится перенаправление пакетов на другие адреса, отличные от указанных в заголовках пакетов.

SNAT (Source Network Address Translation) используется для изменения исходных адресов пакетов. С помощью этого действия можно скрыть структуру локальной сети, а заодно, и разделить единственный внешний IP адрес между компьютерами локальной сети для выхода в Интернет. В этом случае МСЭ, с помощью SNAT, автоматически производит прямое и обратное преобразование адресов, тем самым, давая возможность выполнять подключение к серверам в Интернете с компьютеров в локальной сети.

Маскировка (MASQUERADE) применяется в тех же целях, что и SNAT, но в отличие от последней, MASQUERADE дает более сильную нагрузку на систему. Происходит это потому, что каждый раз, когда требуется выполнение этого действия – производится запрос IP адреса для указанного в действии сетевого интерфейса, в то время как для SNAT, IP адрес указывается непосредственно. Однако, благодаря такому отличию, MASQUERADE может работать в случаях с динамическим IP адресом, когда подключение к сети осуществляется через PPP или SLIP.

Таблица Filter

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

Построение правил

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

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

iptables [-t table] command [match] [target/jump]

Нигде не утверждается, что описание действия (target/jump) должно стоять последним в строке, однако для удобства предлагается придерживаться именно такой нотации.

Если в правило не включается спецификатор [-t table], то по-умолчанию предполагается использование таблицы filter, если же предполагается использование другой таблицы, то это требуется указать явно. Спецификатор таблицы так же можно указывать в любом месте строки правила, но рекомендуется указывать в начале правила.

Непосредственно за именем таблицы должна стоять команда. Если спецификатора таблицы нет, то команда всегда должна стоять первой. Команда определяет действие iptables, например: вставить правило, добавить правило в конец цепочки, удалить правило и т.п.

Раздел match задает критерии проверки, по которым определяется, нужно применять действие к пакету или нет. Здесь можно указать самые разные критерии: IP-адрес источника пакета или сети, сетевой интерфейс и т.д. Существует множество критериев, которые будут рассмотрены далее.

Раздел target указывает, какое действие должно быть выполнено при условии выполнения критериев в правиле. Здесь можно указать ядру ОС МСВС передать пакет в другую цепочку правил, «уничтожить» пакет и забыть про него, выдать на источник сообщение об ошибке и т.п.

Таблицы

Опция -t указывает на используемую таблицу. По-умолчанию используется таблица filter.
С ключом -t применяются следующие опции. Список используемых таблиц представлен в
таблице 3.4.

Таблица 3.4. Таблицы iptables

Таблица Описание
Nat Таблица NAT используется, главным образом, для преобразования сетевых адресов (Network Address Translation). Через эту таблицу проходит только первый пакет из потока. Преобразования адресов автоматически применяется ко всем последующим пакетам. Это один из факторов, исходя из которых, не стоит осуществлять какую-либо фильтрацию в этой таблице. Цепочка PREROUTING используется для внесения изменений в пакеты на входе в МСЭ. Цепочка OUTPUT используется для преобразования пакетов, созданных приложениями внутри МСЭ перед принятием решения о маршрутизации. Цепочка POSTROUTING используется для преобразования пакетов перед выдачей их в ЛВС.
Mangle Эта таблица используется для внесения изменений в заголовки пакетов. Примером может служить изменение поля TTL, TOS или MARK. На практике поле MARK не изменяется, но в памяти ядра создаётся структура, которая сопровождает данный пакет все время его прохождения через машину, так что другие правила и приложения на данной машине (и только на данной машине) могут использовать это поле в своих целях. Таблица имеет пять цепочек PREROUTING,POSTROUTING,INPUT,OUTPUTиFORWARD.PREROUTING, используется для внесения изменений в пакеты на входе в МСЭ, перед первым принятием решения о маршрутизации. POSTROUTING используется для внесения изменений на выходе из МСЭ, после последнего принятия решения о маршрутизации. INPUT – для внесения изменений в пакеты перед тем, как они будут переданы локальному приложению внутри МСЭ. OUTPUT – для внесения изменений в пакеты, поступающие от приложений внутри МСЭ. FORWARD – для внесения изменений в транзитные пакеты после первого принятия решения о маршрутизации, но перед последним принятием решения о маршрутизации. Следует заметить, что таблица MANGLE ни в коем случае не должна использоваться для преобразования сетевых адресов или маскарадинга (Network Address Translation, Masquerading), поскольку для этих целей имеется таблица NAT.
Filter Таблица FILTER используется для фильтрации пакетов. Например, здесь выполняются действия DROP, LOG, ACCEPT или REJECT. Имеется три встроенных цепочки. Первая – FORWARD, используемая для фильтрации пакетов, идущих транзитом через МСЭ. Цепочку INPUT проходят пакеты, которые предназначены локальным приложениям (приложениям МСЭ). И цепочка OUTPUT – используется для фильтрации исходящих пакетов, сгенерированных приложениями самого МСЭ.

Выше были рассмотрены основные отличия трех имеющихся таблиц. Каждая из них должна использоваться только в своих целях. Не целевое использование таблиц может привести к ослаблению защиты МСЭ и сети, находящейся за ним.

Команды

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

Таблица 3.5. Основные команды iptables

Команда Пример использования Пояснения
-A, --append iptables -A INPUT... Добавляет новое правило в конец заданной цепочки.
-D, --delete iptables -D INPUT --dport 80 -j DROP, iptables -D INPUT 1 Удаление правила из цепочки. Команда имеет два формата записи, первый – когда задается критерий сравнения с опцией -D (см. первый пример), второй – порядковый номер правила. Если задается критерий сравнения, то удаляется правило, которое имеет в себе этот критерий, если задается номер правила, то будет удалено правило с заданным номером. Счет правил в цепочках начинается с 1.
-R, --replace iptables -R INPUT 1 -s 192.168.0.1 -j DROP Данная команда заменяет одно правило другим. В основном, она используется во время отладки новых правил.
-I, --insert iptables -I INPUT 1 --dport 80 -j ACCEPT Вставляет новое правило в цепочку. Число, следующее за именем цепочки, указывает номер правила, перед которым нужно вставить новое правило, т.е. число задает номер для вставляемого правила. В примере выше, указывается, что данное правило должно быть 1-м в цепочке INPUT.
-L, --list iptables -L INPUT Вывод списка правил в заданной цепочке, в данном примере предполагается вывод правил из цепочки INPUT. Если имя цепочки не указывается, то выводится список правил для всех цепочек. Формат вывода зависит от наличия дополнительных ключей в команде, например -n, -v, и пр.
-F, --flush iptables -F INPUT Сброс (удаление) всех правил из заданной цепочки (таблицы). Если имя цепочки и таблицы не указывается, то удаляются все правила, во всех цепочках.
-Z, --zero iptables -Z INPUT Обнуление всех счетчиков в заданной цепочке. Если имя цепочки не указывается, то подразумеваются все цепочки. При использовании ключа -v совместно с командой -L, на вывод будут поданы и состояния счетчиков пакетов, попавших под действие каждого правила. Допускается совместное использование команд -L и -Z. В этом случае будет выдан сначала список правил со счетчиками, а затем произойдет обнуление счетчиков.
-N, --new-chain iptables -N allowed Создается новая цепочка с заданным именем в заданной таблице. В выше приведенном примере создается новая цепочка с именем allowed. Имя цепочки должно быть уникальным и не должно совпадать с зарезервированными именами цепочек и действий (DROP, REJECT и т.п.)
-X, --delete-chain iptables -X allowed Удаление заданной цепочки из заданной таблицы. Удаляемая цепочка не должна иметь правил, и не должно быть ссылок из других цепочек на удаляемую цепочку. Если имя цепочки не указано, то будут удалены все цепочки, определенные командой -N в заданной таблице.
-P, --policy iptables -P INPUT DROP Определяет политику по-умолчанию для заданной цепочки. Политика по-умолчанию определяет действие, применяемое к пакетам, не попавшим под действие ни одного из правил в цепочке. В качестве политики по-умолчанию допускается использовать DROP, ACCEPT и REJECT.
-E, --rename-chain iptables -E allowed disallowed Команда -E выполняет переименование пользовательской цепочки. В примере цепочка allowed будет переименована в цепочку disallowed. Эти переименования не изменяют порядок работы, а носят только косметический характер.

Команда должна быть указана всегда. Список доступных команд можно просмотреть с помощью команды iptables -h или iptables --help. Некоторые команды могут использоваться совместно с дополнительными ключами. Ниже (таблице 3.6) приводится список дополнительных ключей и описывается результат их действия. Следует заметить, что здесь не приводится дополнительных ключей, которые используются при построении критериев (matches) или действий (targets). Эти опции рассмотрим далее.

Таблица 3.6. Список дополнительных ключей

Ключ Команды, с которыми используется Описание
-v, --verbose --list, --append, --insert, --delete, --replace Данный ключ используется для повышения информативности вывода и, как правило, используется совместно с командой --list. В случае использования с командой --list, в вывод этой команды включаются так же имя интерфейса, счетчики пакетов и байт для каждого правила. Формат вывода счетчиков предполагает вывод кроме цифр числа еще и символьные множители K (x1000), M (x1,000,000) и G (x1,000,000,000). Для того, чтобы заставить команду --list выводить полное число (без употребления множителей) требуется применять ключ -x, который описан ниже. Если ключ -v, --verbose используется с командами --append, --insert, --delete или --replace, то то на вывод будет выдан подробный отчет о произведенной операции.
-x, --exact --list Для всех чисел в выходных данных выводятся их точные значения без округления и без применения множителей K, M, G. Важно то, что данный ключ используется только с командой --list и не применяется с другими командами.
-n, --numeric --list Заставляет iptables выводить IP-адреса и номера портов в числовом виде, предотвращая попытки преобразовать их в символические имена. Данный ключ используется только с командой --list.
--line-numbers --list Ключ --line-numbers включает режим вывода номеров строк при отображении списка правил командой --list. Номер строки соответствует позиции правила в цепочке. Этот ключ используется только с командой --list.
-c, --set-counters --insert, --append, --replace Этот ключ используется при создании нового правила для установки счетчиков пакетов и байт в заданное значение. Например, ключ --set-counters 20 4000 установит счетчик пакетов = 20, а счетчик байт = 4000.
--modprobe все Ключ --modprobe определяет команду загрузки модуля ядра. Данный ключ используется в случае, если ваша команда modprobe находится вне пути поиска (searchpath). Этот ключ может использоваться с любой командой.

Критерии

Здесь будут подробно рассмотрены критерии выделения пакетов. Все критерии разбиты на пять групп. Первая – общие критерии, которые могут использоваться в любых правилах. ВтораяTCP критерии, которые применяются только к TCP пакетам. Третья – UDP критерии, которые применяются только к UDP пакетам. Четвертая – ICMP критерии для работы с ICMP пакетами. Пятая – специальные критерии, такие как state, owner, limit и пр.

<== предыдущая лекция | следующая лекция ==>
Работа NAT в МСВС | Общие критерии
Поделиться с друзьями:


Дата добавления: 2014-01-15; Просмотров: 605; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.018 сек.