[Назад] [Содержание] [Вперёд]

# 3. Настройка

## 3.1. Файл конфигурации

По умолчанию, конфигурация читается из файла <директория tv3>\tv3.cfg. Другой файл конфигурации можно указать при запуске с ключём -c<файл>. Пустые строки и строки начинающиеся с символа ";" при обработке пропускаются. Формат опций:

ключевое_слово <пробел|табуляция> значение [<пробел|табуляция>значение][...]

Опции:

log – файл, в который будет выводиться информация о ходе работы.
По умолчанию: выводится на экран.

charset – название кодировки символов, которая будет использоваться для обмена информацией. Рекомендуется использовать utf-8. Весь WEB-интерфейс tv3 построен с использованием utf-8.
По умолчанию: utf-8

storage – файл, который будет использоваться для хранения фильтра и статистик. Этот файл записывается во время работы tv3 и считывается при запуске.
По умолчанию: filter.xml

flush – интервалы времени в минутах, через которые информация в файле заданном опцией storage будет обновляться.
По умолчанию: запись производится только во время завершения работы.

cache_len – количество записей в кэше, хранящем информацию о пакетах и соответствующих им правилах для быстрой обработки идентичных пакетов. Слишком маленький кэш приводит к частой обработке правил через фильтр и повышенной загрузке процессора, но не следует задавать слишком большой кэш, обработка самого кэша может занять много времени. Оптимальный размер зависит от количества различных соединений и подбирается в случае появления большого числа «потерянных» пакетов (см. статистику состояния tv3).
По умолчанию: 40

listen – IP-адрес (в числовом формате xxx.xxx.xxx.xxx) и порт на котором будет принимать соединения WEB-сервис. Возможно указание только номера порта, в этом случае соединения будут приниматься на всех интерфейсах.
По умолчанию: сетевой интерфейс не используется.

doc_path – путь к файлам WEB-интерфейса
По умолчанию: doc

free_access – регулирует свободный (значение YES) либо ограниченный (значение NO) доступ на чтение информации через WEB-интерфейс. При ограниченном доступе только зарегистрированные пользователи могут читать статистику. Java-клиент работает только при включённом свободном доступе.
По умолчанию: yes

tracer/source – источники данных, см. раздел 3.2.

observer_keep_alive – время в секундах до автоматического выключения режима «прослушки» с момента последнего обращения.
По умолчанию: 900

## 3.2. Источники данных

В данной реализации tv3 имеется три способа отслеживания проходящих сетевых пакетов: с помощью библиотеки ipspy (Edgar Buerkle) через механизм tracer, с помощью plugin-модуля для SafeFire Firewall (http://www.lgs.kiev.ua/) через механизм source и основной способ - получение информации от собственного NDIS-драйвера через механизм tracer. Эти способы могут применяться одновременно для различных сетевых интерфейсов. Т.е. в конфигурации tv3 возможно указание нескольких tracer и source.

### IPSpy

Библиотека ipspy написана довольно давно и автором не поддерживается. Последняя версия 1.40 от 31го мая 1998 года. Главным плюсом этого способа отслеживания проходящих пакетов в tv3 является то, что нет необходимости в дополнительной настройке самого пакета ipspy и перезагрузке компьютера во время настройки источника данных в случае если не требуется режим «прослушки». Ipspy поддерживает режим «прослушки» сети, когда принимаются пакеты не предназначенные для интерфейсов данной станции (promiscous mode). Однако, у этой библиотеки есть недостатки: во-первых, при серьёзных нагрузках трассировка пакетов просто останавливается без каких-либо сообщений, во-вторых во время работы ipspy неоправданно увеличивается нагрузка на центральный процессор. Кроме того, приложение. использующее эту библиотеку при завершении работы вызывает системное сообщение об ошибке, на основную работу tv3 это не влияет.

Библиотека ipspy.dll включена в пакет tv3, но для использования режима «прослушки» необходимо загрузить файл ipspy140.zip с файлового архива http://hobbes.nmsu.edu и установить согласно инструкции.

Для трассировки пакетов данным способом, в файл tv3.cfg необходимо добавить строку(ки) следующего вида:

tracer tv3ipspy lanN flags queue_len

где:

tracer – ключевое слово, указывающее подключение plugin-модуля

tv3ipspy – имя plugin-модуля находящегося в <tv3root>\plugins

lanN – имя сетевого интерфейса, на котором будут прослушиваться пакеты

flags – 16ти-ричное или 10ти-чное значение, являющееся суммой флагов режимов:

> DIRECTED 0x0001
> BROADCAST 0x0002
> PROMISCUOUS 0x0004
> SOURCE ROUTING 0x0008

queue_len – длина очереди полученных пакетов, ожидающих обработки через фильтр. Если tv3 сообщает о большом количестве неучтённых (пропущенных) пакетов (см. http://localhost:5462/status поле "lost packets") и это значение постоянно увеличивается, то имеет смысл увеличить длину очереди.

Пример:

> tracer tv3ipspy lan0 0x000B 500
> tracer tv3ipspy lan3 0x0003 150

### SafeFire Firewall

Более надёжным способом отслеживания потоков IP-пакетов является использование в качестве источника данных SafeFire Firewall. Недостатком является то, что таким образом можно отслеживать пакеты только на одном сетевом интерфейсе. Для этого необходимо иметь установленный SafeFire Firewall с plugin-модулем tv3sf из пакета tv3. В конфигурационном файле файрвола должен быть указан модуль tv3sf, например, следующим образом:

> [filter]
> enable=yes
> rule=1 permit all from any to any skipto 2
> rule=1 plugin 1
> rule=2 –ваши правила фильтра sfire–
> ...
> [plugins]
> plugin=1 <путь к директории tv3>\tv3sf.dll
> extvar=1:name redEye
> extvar=1:len 300

Здесь "redEye" – символическое имя очереди, через которые данные от SafeFire Firewall через модуль tv3sf будут передаваться в tv3. В конфигурационном файле tv3.cfg для прослушивания потока "redEye" должна быть прописана строка вида:

source redEye

Если имя не задано - используется значение "sfire". Параметр "len" задаёт длину очереди, по-умолчанию используется значение 500.

После указания настроек можно запустить sfire.exe, затем tv3.exe

### NDIS-драйвер tv3cap

Данный способ является наиболее предпочтительным. Сведения о проходящих пакетах снимаются на уровне драйверов сетевых интерфейсов-протоколов и передаются для анализа. Драйвер позволяет получать информацию со всех имеющихся в системе сетевых интерфейсов, либо выбрать только интересующие. Tv3cap работает как прозрачная «прокладка» между драйверами сетевых карт и протоколом tcpip, пропускающая через себя все данные и передающая информацию в tv3.

Автоматическую установку драйвера на все имеющиеся в системе интерфейсы выполняет скрипт install.cmd с ключём /I. Удалить драйвер можно выполнив install.cmd с ключём /U. Если служба MPTS установлена на диск отличный от загрузочного, необходимо дополнительно указать ключ /D:d, где d – буква диска на который установлена служба MPTS. При установке/удалении драйвера будут сохранены оригинальные копии файлов config.sys и protocol.ini. После выполнения install.cmd необходимо перезагрузить компьютер.

Для трассировки пакетов данным способом, в файл tv3.cfg необходимо добавить строку(ки) следующего вида:

tracer tv3cap tv3N$ flags queue_len

В параметр flags может принимать два значения: 0x01 - принимать широковещательные (broadcast) пакеты, 0x00 - не принимать широковещательные пакеты. N задаёт номер драйвера.

Пример для системы с 3мя интерфейсами:

> tracer tv3cap tv31$ 0x00 600
> tracer tv3cap tv32$ 0x00 600
> tracer tv3cap tv33$ 0x00 600

## 3.3. Текущее состояние

Информация о текущем состоянии tv3 позволяет оценить правильность работы самой системы и её связей с источниками данных. По адресу http://localhost:5462/status отображается информация в виде двух разделов:

- Packets - полученные для подсчёта пакеты: Total Packets - количество пакетов доставленных в фильтр, Cache Hits - количество пакетов найденных в кэше и не тестировавшихся непосредственно через фильтр.
- Interfaces - список использующихся источников данных (обоих типов tracer/source). По каждому источнику ведётся учёт общего количества полученных из источника пакетов (поля packets) и количество потерянных пакетов (поля lost packets).

Пакет считается потерянным, если на момент его получения очередь источника была переполнена, т.е. данные читались фильтром медленней чем поступали из источника. Если количество потерянных пакетов постоянно увеличивается, необходимо увеличить длину очереди интерфейса и произвести более точный подбор размера кэша. Значение Total Packets может быть значительно меньше суммарного количества пакетов прошедших через все источники (т.е. суммы значений packets источников). Это результат работы механизма оптимизации данных: если поступает пакет идентичный последнему записанному в очередь, но ещё не прочитанному фильтром, то информация о новом пакете в очередь не записывается, но у последнего пакета в очереди увеличиваются поля, описывающие размеры данных (количество байт данных с учётом и без учёта заголовка протокола). Идентичными считаются пакеты с одинаковыми адресами источника/приёмника, протоколами, данными протоколов (типы, порты).

## 3.4. Пользователи

Информация о зарегистрированных пользователях читается из файла <директория tv3>\users.lst . Пустые строки и строки начинающиеся с символа ";" при обработке пропускаются. В строке записывается информация о пользователе:

имя <пробел|табуляция> пароль <пробел|табуляция> привилегии

Привилегии: ADMIN – администратор, USER – пользователь. Администраторы имеют право устанавливать фильтры, «прослушку» правил. Пользователям с привилегиями USER будет разрешено читать статистики если в конфигурации запрещён свободный доступ на чтение.

Если файл users.lst изменялся, он будет загружен при следующем входе пользователя. Перезапуск tv3 не требуется.

[Назад] [Содержание] [Вперёд]