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

Файлы с исходным кодом разработаннго ИПК прилагаются.

Серверный демон: файл webipt.py;

Веб-интерфейс:

  1. Основные скрипты:

  • index.php;

  • construct.php;

  • exec.php;

  • lib.php;

  • logon.php;

  • logout.php;

  • man.php;

  • mod.php;

  • saverestore.php.

  1. Библиотечные модули:

  • auth.php;

  • ajax.php;

  • sock.php.

  1. Cлужебные файлы:

  • ajax.js;

  • main.css;

  • header.php;

  • footer.php;

  • af.unix.

  1. Справочное руководство: директория /help.

  1. Приложение в. Возможности утилиты iptables

Netfilter — это межсетевой экран (брандмауэр), встроеный в ядро Linux версий 2.4 и 2.6. Netfilter состоит из двух больших групп компонентов, первая — компоненты включенные в состав ядра (и выполняющиеся в пространстве ядра), вторая — это команды и утилиты выполняющиеся в пространстве пользователя, сюда можно отнести команду iptables, ряд вспомогательных утилит, библиотеки, страницы справочного руководства и скрипты.

Iptables — название пользовательской утилиты (запускаемой из командной строки) предназначенной для управления системой netfilter. С её помощью системные администраторы создают и изменяют правила, управляющие фильтрацией и перенаправлением пакетов.

Некоторые авторы под словом netfilter имеют в виду только те элементы межсетевого экрана, которые непосредственно являются частью стека протоколов ядра, а всё прочее (систему таблиц и цепочек) называют iptables. Из‑за не совсем ясной терминологии, иногда весь проект (внутриядерный межсетевой экран вместе с пользовательской утилитой) просто именуется «netfilter/iptables».

До появления iptables, для обеспечения возможностей межсетевого экрана в Linux использовались проекты ipchains в Linux 2.2 и ipfwadm в Linux 2.0, в свою очередь основанный на ipfw из системы BSD. Проекты ipchains и ipfwadm изменяли работу стека протоколов ядра Linux, поскольку до появления netfilter в архитектуре ядра не существовало возможностей для подключения дополнительных модулей управления пакетами. iptables сохранил основную идею ipfwadm — список правил, состоящих из критериев и действия, которое выполняется если пакет соответствует критериям. В ipchains была представлена новая концепция — возможность создавать новые цепочки правил и переход пакетов между цепочками, а в iptables концепция была расширена до четырех таблиц, разграничивающих цепочки правил по задачам: фильтрация, NAT-трансляция, и модификация пакетов. Также iptables расширил возможности Linux в области определения состояний, позволяя создавать межсетевые экраны работающие на сеансовом уровне.

    1. В.1 Принцип работы шлюза

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

В Iptables используется три таблицы:

  1. Mangle — обычно эта таблица используется для внесения изменений в заголовок пакета: изменения битов TOS, TTLи установки меток.

  2. Nat — эта таблица используется для трансляции сетевых адресов получателя (DNAT, Destination Network Address Translation) и отправителя (SNAT, Source Network Address Translation). Любого рода фильтрация в этой таблице может производиться только в исключительных случаях.

  3. Filter — в этой таблице должны содержаться наборы правил для выполнения фильтрации пакетов. Пакеты могут пропускаться далее, либо отвергаться (действия ACCEPT и DROP соответственно), в зависимости от их содержимого.

В каждой таблице существует несколько встроенных цепочек:

  1. Input (таблицы mangle и filter) — эти цепочки проходят пакеты, входящие на брандмауэр и предназначенные для его процессов.

  2. Output(mangle,nat,filter) — эти цепочки проходятIP-пакеты исходящие от процессов самого брандмауэра.

  3. Forward(mangle,filter) — эти цепочки проходят транзитные пакеты, для которых брандмауэр является промежуточным узлом в сети. Решение о пересылке пакетов принимается в соответствии с правилами маршрутизации, которые не зависят от настроек шлюзаnetfilter.

  4. Prerouting(mangle,nat) — эти цепочки проходят все пакеты, входящие на интерфейсы брандмауэра, до маршрутизации: как входящие, так и транзитные.

  5. Postrouting(mangle,nat) — эти цепочки проходят все пакеты, исходящие с интерфейсов брандмауэра: как исходящие, так и транзитные.

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

Рисунок В.1 — Схема прохождения пакета по таблицам шлюза

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

Кроме того, можно анализировать пакет с помощью внешнего пользовательского приложения.