service data-source
type { ip-traffic | netflow | libpcap | netgraph }
Задает тип источника данных
- ip-traffic
данные берутся путем перехвата ip-пакетов из ядра через divert socket (FreeBSD) или netfilter (Linux 2.4.x)
- netflow
данные о прошедшем трафике приходят от маршрутизатора Cisco, отдающего поток информации в пакетах NetFlow, или от любого другого коллектора, поддерживающего NetFlow v.5 (ulog2netflow, ipfw2netfloe, flowprobe)
- libpcap
данные берутся путем перехвата пакетов с помощью библиотеки libpcap, которая копирует в программу проходящие через ядро системы определенные пакеты. так же работает, например, tcpdump. Смотри этот раздел.
- netgraph
данные передаются от установленного модуля ядра. Только для FreeBSD 5.xx. Смотри этот раздел.
source { tee XXX | divert XXX | ipq | ulog NL1 [NL2 ... NL32] |
A.B.C.D | ifname [promisc] | nodename [divert] }
Задает источник данных:
Для
FreeBSD
- tee XXX
пакеты будут копироваться в программу и параллельно обрабатываться системой, номер divert-порта XXX
- divert XXX
пакеты будут заворачиваться в программу и она может отдать или не отдать их системе обратно,
номер divert-порта XXX
- nodename [divert]
установится соединение с модулем NETGRAPH ядра nodename. Параметр divert указывает на необходимость проводить авторизацию потока перед его пропусканием. Смотри этот раздел.
Для
Linux
Необходимо наличие в системе netfilter.
Подробнее можно прочитать
man iptables и на сайте
www.netfilter.org
- ipq
пакеты будут заворачиваться в программу и она может отдать или не отдать их системе обратно.
Используется библиотека libipq.
Для работы должен быть загружен модуль ip_queue (modprobe ip_queue).
Чтобы активировать передачу пакетов из ядра, необходимо задать это в firewall, например командой:
iptables -A FORWARD -j QUEUE ...
- ulog NL1 [NL2 ... NL32]
пакеты будут копироваться в программу и параллельно обрабатываться системой,
NLx определяет номера мультикаст групп в которых программа будет слушать пакеты отправляемые через ULOG.
Чтобы активировать передачу пакетов из ядра, необходимо задать это в firewall, например командой:
iptables -A FORWARD -j ULOG --ulog-nlgroup NLx ...
nlgroup NLx должно быть в границах 1-32
Общие
- A.B.C.D
поток NetFlow будет идти с хоста (маршрутизатора) с IP-адресом источника A.B.C.D на локальный UDP-порт 20001 или тот, который будет указан в команде listen
- ifname [promisc]
имя локального сетевого интерфейса, на котором будут захватываться проходящие пакеты
Если указан флаг promisc, то интерфейс будет помещен в promisc mode. По умолчанию - не указан.
listen { 0 | ip } port_number
Задает IP адрес и UDP-порт, на который будут приниматься пакеты NetFlow от источника информации о трафике (коллектора).
clock { remote | local }
Указывает, какое значение текущего времени создания пакета использовать для занесения информации в базу - локальное или указанное в NetFlow-сообщении.
layer7-detect { none | urls }
Включает механизм определения ссылок (URL) в трафике, проходящем через этот сервис data-source. Допустимые значения "none" (выключено) или "urls". Во втором случае, первые несколько пакетов в потоке на порты назначения 80, 81, 8080, 8000, 3128 будут проанализированы на предмет поиска полей Host: и GET. Эта информация может быть учтена через сервис мониторинга (новое поле layer7 в таблице monitor).
rule ID rule_string
Задает системное правило, по которому данные будут попадать в программу:
- ID номер правила, для Linux не имеет смысла т.к. правила ставятся в конец цепочки
- rule_string правило в виде текстовой строки, которое будет передано системе (Linux или FreeBSD) для установки перехватчика пакетов.
no rule ID
Отменяет правило с номером ID.