Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OTVETY_20-25.docx
Скачиваний:
11
Добавлен:
10.02.2015
Размер:
49.78 Кб
Скачать

Вопрос 21

IPTables — утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) NETFilter для ядер Linux, начиная с версии 2.4. Для использования утилиты IPTables требуются привилегии суперпользователя (root). Иногда под словом IPTables имеется в виду и сам межсетевой экран NETFilter.

Все пакеты приходящие на сетевую карту проходят все 5(7) уровней модели OSI, iptables начинает обработку пакетов с 3-го(сетевого) уровня, после того как пакет по кабелю попал на сетевую карту, он передается в ядро ОС, а именно в netfilter, далее пакет проходит ряд таблиц и только после этого попадает в приложение(или не попадает, если пакет шел транзитом), которому он был адресован. Именно таблицами и правилами netfilter`а управляет утилита iptables.

С точки зрения iptables трафик бывает 3х типов: Входящий, Транзитный, Исходящий.

Основные ключи iptables:

-t (--table) <таблица> - правило указывает таблицу, в которую будут вноситься изменения, без указания этого ключа используется таблица filter

-A (--append) <цепочка> - добавление новой записи в конец цепочки

-D (--delete) <цепочка> - удаление правила

-I (--insert) <цепочка> <номер> - вставляет правило над цепочкой с указанным номером

-R (--replace) <цепочка> <номер> - заменяет определенные критерии цепочки с номером <номер>

-L (--list) <цепочка> - листинг правил цепочки

-F (--flush) <цепочка> - удаление всех правил из цепочки

-P (--policy) <цепочка> - задать действие по умолчанию, действие будет выполняться на все пакеты, которые не подошли по каким-либо параметрам в другие правила.

Ключи классификации и выделения пакетов

-p (--protocol) - используется для указания конкретного протокола для обработки, список всех протоколов можно посмотреть в /etc/protocols/

-s(--src, --source) - адрес исходящих пакетов для фильтрации.

-d (--dst, --destination) - адрес назначения пакетов для фильтрации.

-i (--in-interface) - интерфейс с которого приходит пакет

-o (--out-interface) - интерфейс на который уходит пакет

--sport (--source-port) (может использоваться с ключами -p tcp и -p udp) - порт с которого был отправлен пакет

--dport (--destination-port) (может использоваться с ключами -p tcp и -p udp) - порт на который отправляется пакет

Так же есть ключ, который указывается, когда мы работаем с протоколом icmp (-p icmp):

--icmp-type <тип icmp пакета> - указывается над каким конкретно типом ICMP пакета проводить операцию. Типы ICMP описаны в RFC 792.

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

Команды:

В следующем примере предполагается, что диапазон IP-адресов 192.168.0.1 - 192.168.0.254 принадлежит вашей подсети ЛВС, к которой подключен интерфейс eth1, и что интерфейс eth0 является соединением с Интернетом или ГВС.

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

iptables -F FORWARD

Это стирает все правила цепочки FORWARD, являющейся основной "воронкой" для всех пакетов, пытающихся пройти черезмежсетевой экран.

  1. Очистите другие цепочки:

  2. iptables -F INPUT

iptables -F OUTPUT

Эти команды стирают все правила на пути пакетов, направленных в локальную машину, и в выходной цепочке.

  1. Поместите стандартную инструкцию "запретить все" в самое начало.

  2. iptables -P FORWARD DROP

iptables -A INPUT -i eth0 -j DROP

  1. Решение о допуске фрагментированных пакетов в Iptables необходимо оформить явным образом:

iptables -A FORWARD -f -j ACCEPT

Команда

-A--append

Описание

Добавляет новое правило в конец заданной цепочки.

Команда

-D--delete

Описание

Удаление правила из цепочки. Команда имеет два формата записи, первый -- когда задается критерий сравнения с опцией -D (см. первый пример), второй -- порядковый номер правила. Если задается критерий сравнения, то удаляется правило, которое имеет в себе этот критерий, если задается номер правила, то будет удалено правило с заданным номером. Счет правил в цепочках начинается с 1.

Команда

-R--replace

Описание

Эта команда заменяет одно правило другим. В основном она используется во время отладки новых правил.

Команда

-I--insert

Описание

Вставляет новое правило в цепочку. Число, следующее за именем цепочки указывает номер правила, перед которым нужно вставить новое правило, другими словами число задает номер для вставляемого правила. В примере выше, указывается, что данное правило должно быть 1-м в цепочке INPUT.

Команда

-L--list

Описание

Вывод списка правил в заданной цепочке, в данном примере предполагается вывод правил из цепочки INPUT. Если имя цепочки не указывается, то выводится список правил для всех цепочек. Формат вывода зависит от наличия дополнительных ключей в команде, например -n-v, и пр.

Команда

-F--flush

Описание

Сброс (удаление) всех правил из заданной цепочки (таблицы). Если имя цепочки и таблицы не указывается, то удаляются все правила, во всех цепочках. (Хочется от себя добавить, что если не указана таблица ключом -t (--table), то очистка цепочек производится только в таблице filter, прим. перев. )

Команда

-Z--zero

Описание

Обнуление всех счетчиков в заданной цепочке. Если имя цепочки не указывается, то подразумеваются все цепочки. При использовании ключа -v совместно с командой -L, на вывод будут поданы и состояния счетчиков пакетов, попавших под действие каждого правила. Допускается совместное использование команд -L и -Z. В этом случае будет выдан сначала список правил со счетчиками, а затем произойдет обнуление счетчиков.

Команда

-N--new-chain

Описание

Создается новая цепочка с заданным именем в заданной таблице В выше приведенном примере создается новая цепочка с именем allowed. Имя цепочки должно быть уникальным и не должно совпадать с зарезервированными именами цепочек и действий (такими как DROPREJECT и т.п.)

Команда

-X--delete-chain

Описание

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]