Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Безгодков_ВКР.doc
Скачиваний:
52
Добавлен:
26.03.2015
Размер:
21.47 Mб
Скачать
    1. В.2 Обрабатываемые параметры

При своей работе по анализу пакета в целях принятия решений шлюз может оперировать следующими параметрами [2]:

  • IP-адрес и порт отправителя

  • IP-адрес и порт получателя;

  • MAC-адрес отправителя;

  • Сетевой интерфейс, с которого пришёл пакет;

  • Сетевой интерфейс, на который направляется пакет;

  • Состояние пакета (NEW, ESTABLISHED, RELATED, INVALID);

  • Тип протокола (TCP,UDP,ICMP);

  • Признак фрагментации пакета (для всех фрагментов, кроме первого);

  • Флаги TCP (SYN, ACK, FIN, RST, URG, PSH);

  • Опции TCP (числовые значения);

  • Критерии ICMP(числовые значения);

  • Количество пакетов в единицу времени (ограничение);

  • Количество одновременных соединений (ограничение) [5];

  • Метки, установленные другими цепочками;

  • IDпользователя, группы, процесса или сеанса в системе брандмауэра для исходящих пакетов [3];

  • Ключи TOSиTTL;

  • Признак повреждения пакета (несоответствие контрольной суммы или повреждение заголовка);

  • Анализ содержимого пакета [4];

  • Момент времени прохождения пакета [4];

  • Элемент вероятности (генерация случайных событий) [4].

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

    1. В.3 Действия netfilter

В результате срабатывания того или иного правила шлюзом могут быть предприняты следующие действия:

  • Пропуск пакета (ACCEPT);

  • Отклонение пакета с закрытием сокетов (REJECT);

  • Немедленное уничтожение пакета (DROP);

  • Изменение адреса (DNAT,SNAT, MASQUERADE);

  • Изменение параметров заголовка пакета (TTL,TOS,MARK);

  • Перенаправление на другой порт (REDIRECT);

  • Ловушка для соединения (TARPIT)[4];

  • Журналирование (LOG, ULOG);

  • Отражение пакета (MIRROR);

  • Дополнительная обработка пользовательским пакетом, не входящим в состав шлюза (QUEUE);

  • Прохождение через дополнительную цепочку;

  • Возврат из дополнительной цепочки (RETURN).

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

Поле MARKсуществует вIP-пакете, но в действительности в самом пакете действиемMARKоно не изменяется. Вместо этого в области памяти ядра заводится структура, которая сопровождает конкретный пакет все время его прохождения через брандмауэр, так что другие правила и приложения на данном брандмауэре (и только на данном брандмауэре) могут использовать это поле в своих целях. Таким образом, исключается передача меток по сети.

Если необходимо как-то пометить пакеты, чтобы использовать маркировку на другой машине, то можно попробовать манипулировать битами поля TOS [2].

    1. В.4 Синтаксис команд iptables

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

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

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

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

  1. -A, --append — добавляет новое правило в конец заданной цепочки.

  2. -D, --delete — удаление правила из цепочки по критерию сравнения или номеру правила в цепочке.

  3. -R, --replace — заменяет одно правило другим.

  4. -I, --insert — вставляет новое правило в цепочку. Число, следующее за именем цепочки, указывает номер правила, перед которым нужно вставить новое правило, другими словами число задает номер для вставляемого правила.

  5. -L, --list — вывод списка правил в заданной цепочке.

  6. -F, --flush — сброс (удаление) всех правил из заданной цепочки (таблицы). Если имя цепочки и таблицы не указывается, то удаляются все правила, во всех цепочках таблицы filter.

  7. -Z, --zero — обнуление всех счетчиков пакетов, попавших под действие каждого правила в заданной цепочке.

  8. -N, --new-chain — создается новая цепочка с заданным именем в заданной таблице. Имя цепочки должно быть уникальным и не должно совпадать с зарезервированными именами цепочек и действий.

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

  10. -P, --policy — задает политику по-умолчанию для заданной цепочки. Политика по умолчанию определяет действие, применяемое к пакетам, не попавшим под действие ни одного из правил в цепочке. В качестве политики по умолчанию допускается использовать DROP и ACCEPT.

  11. -E, --rename-chain — переименование пользовательской цепочки.

Раздел match задает критерии проверки, по которым определяется, подпадает ли пакет под действие этого правила или нет.

И, наконец, target указывает, какое действие должно быть выполнено при условии выполнения критериев в правиле.[2]

Необходимо различать действие iptablesи действиеnetfilter.Iptablesможет изменять таблицы и цепочки правил, тогда какnetfilterоперирует пакетами, проходящими через брандмауэр.

Вот несколько примеров команд iptablesи их значений:

iptables -D INPUT --dport 80 -j DROP

Удалить правило фильтрации, указывающее отбрасывать все пакеты, входящие на 80 порт брандмауэра.

iptables -A FORWARD -o eth0 -j ACCEPT

Добавить правило фильтрации, позволяющее пересылать все пакеты, направляющиеся по правилам маршрутизации на сетевой интерфейс eth0.

iptables -t mangle -A INPUT -m mark --mark 1

Добавить правило, помечающее все входящие на брандмауэр пакеты.