"Документация NetAMS" - читать интересную книгу автора

[service processor]

Сервис processor описывает настройки ядра NeTAMS, которое и будет производить учет.

lookup–delay XXXX

определяет периодичность, с которой сервис processor будет просматривать список своих NetUnit, чтобы проверить время существования потоков и сбросить их в базу данных. Чем меньше это время, тем точнее идет «квантование» временных периодов, но тем больше нагрузка на программу. На размер базы данных не влияет.

XXX — время в секундах, по умолчанию 30.

flow–lifetime XXXX

определяет время жизни RAW потока. через указанное время поток обнуляется, а данные суммируются в статистику и записываются в базу. Чем меньше меньше это время, тем с большей точностью записаны данные в базу, но тем она и больше.

XXX — время в секундах, по умолчанию 300.

policy [oid OID] name NAME

[no] target TARGET

[bw { speed in speed out | speed } ]

определяет правило, или политику, по которой для данного объекта (NetUnit) будет производиться фильтрация или подсчет трафика.

oid OID — уникальный идентификатор политики, создается автоматически

name NAME — название политики виде строки (2–8 символов)

hidden — не отображать статистику для этой политики в выводе сервиса HTML (полезно для политики с target layer7–detect)

target TARGET — правило, по которому будет проводиться проверка соответствия политике.

Если перед target стоит флажок no, то указанный TARGET убирается из списка.

• bw { speed in speed out | speed } - позволяет ограничивать входящий и/или исходящий трафик для данной fw политики по отношению к юниту по скорости. Ограничение начинает работать, если по данной fw политике было принято решение DROP. В этом случае пакет НЕ БУДЕТ отброшен, а ВМЕСТО этого он будет пропущен и на него будет проверяться проверка по скорости.

• Параметр speed указывается в битах в секунду; можно применять множители K и M для указания килобит и мегабит. Если не указано направление in или out, подразумевается выставление одинакового лимита скорости на оба направления одновременно. Возможно также задать ограничение скорости напрямую для всего юнита, без политик (см. ниже). ВАЖНО! Чтобы ограничение скорости работало, необходимо пересобрать NeTAMS с включенной опцией HAVE_BW. Это делается так: make distclean amp;amp; FLAGS=-DHAVE_BW make

• Опишем подробнее правила формирования цели (target) политики. Сами политики жестко определены в исходном коде программы и вкомпилированы в обработчик политик трафика. Возможны любые комбинации следующих типов:

• proto XX — номер или имя протокола из файла /etc/protocols

• tos XX — проверка на совпадения с полем TOS IP пакета

• port [s|d|b]num [s|d|b]num … — описывает TCP или UDP трафик на указанные порты. список портов — числа или диапозоны, отделенные пробелом.

• если перед числом стоит буква s(ource) - совпадение происходит только если совпадает порт в поле SRC пакета, d(estination) - в DST пакета, отсутствие буквы или b(oth) - SRC или DST.

• Ограничение на число элементов (отдельных портов или диапозонов) в списке — 10. Диапозоны задаются с помощью двоеточия или тире.

• например: target proto tcp port 25 описывает весь SMTP (почтовый)трафик, target proto tcp port s80:82 s8080 примененная к клиентскому компьютеру (юниту), считает входящий веб–трафик.

• as [s|d|b]num [s|d|b]num … — описывает трафик по указанным AS. список AS — числа или диапозоны, отделенные пробелом.

• если перед числом стоит буква s(ource) - совпадение происходит только если совпадает AS источника пакета, d(estination) - с номером AS получателя пакета, отсутствие буквы или b(oth) - SRC AS или DST AS.

• Ограничение на число элементов AS в списке — 10, диапазоны задаются с помощью двоеточия или тире.

• (Начиная с версии 3.3.0(2266))

• vlan N1 [ N2 ] … совпадает, если пакеты были инкапсулированы с VLAN–тэгом N, применимо к data–source libpcap

• ds N1 [ N2 ] … совпадает, если пакеты пришли от data–source номер N

• units oid XXXX трафик, при том что другая сторона (по IP заголовку) является NetUnit с индексом XXXX

• file YYYY совпадает, если другая сторона (по IP заголовку) совпадает с адресом из файла таблицы префиксов YYYY

• Файл префиксов содержит записи в следующих форматах:

• A.B.C.D /N или A.B.C.D /MASK или A.B.C.D/N или A.B.C.D/MASK

• где:

• A.B.C.D — адрес сети, например 10.1.1.0

• MASK — маска (255.255.255.0)

• N — количество единичных бит в сетевой маске, например 24 (255.255.255.0). Смотрите также подробное описание.

• addr addr … — ip адреса участники соединения.

• ifindex [s|d|b]num [s|d|b]num … — номера (индексы) интерфейсов в таблице роутинга. В настоящее время актуально только для netflow данных.

• ingress|egress — способ сбора netflow информации на роутере. В настоящее время актуально только для netflow v9 данных.

• policy–or [!]{NAME|OID} … [!]{NAME|OID} - политика совпадет, если совпадет проверка ЛЮБОЙ из перечисленных политик. Флажок ! означает инвертирование проверки к которой он относится.

• policy–and [!]{NAME|OID} … [!]{NAME|OID} - политика совпадет, если совпадет проверка ВСЕХ из перечисленных политик. Флажок ! означает инвертирование проверки к которой он относится.

• time timespec — совпадает, если пакет пришел в указанный временной интервал timespec. Это строка, содержащая диапазон времени в часах:минутах (24–часовая схема), при этом нулевые минуты можно пропускать:

• target time 9–18

• target time 00:40–21:30

• day dayspec — совпадает, если пакет пришел в день недели, указанный в dayspec. Это строка, содержащая трехбуквенное название дня недели, или диапазон дней:

• target day Mon–Fri

• target day Sun

default { acct–policy | fw–policy } NAME|OID … NAME|OID

Задает политики подсчета|фильтрации по умолчанию для всех вновь создаваемых юнитов.

restrict all {drop|pass} local {drop|pass}

задает политику фильтрации трафика для случая, когда fw–policy для объекта не определен

all — для всех данных (всех ip–адресов src/dst)

local — для данных, предназначенных объектам, описанным в конфигурационном файле

drop — не пропускать пакеты данного класса

pass — пропускать пакеты

Значение по умолчанию restrict all drop local pass приводит к тому, что для трафика, пакеты которого в заголовке в полях src/dst оба IP–адреса не принадлежат ни одной из описанных в конфигурационном файле машин/кластеров/сетей, этот трафик блокируется. Фактически, это означает что программа будет пропускать только данные с/для зарегистрированных машин «за» маршрутизатор. В случае установления restrict local drop вы обязаны явно для каждого юнита прописать fw–policy. Если для юнита не прописаны никакие политики acct–policy или fw–policy, то это эквивалентно применению к этому юниту параметра no–local–pass, т.е. применение restrict all вместо restrict local.

auto–assign A.B.C.D E.F.G.H

Регистрирует диапазон адресов, начиная с A.B.C.D и заканчивая E.F.G.H в качестве пула для автоматического присваивания IP–адресов вновь создаваемым юнитам. При этом юнит создается при помощи команды:

unit {host|user} name XXX ip auto

В таком случае для всех зарегистрированных диапазонов auto–assign проверяются уже существующие юниты типа user или host, имеющие IP–адреса из заданного диапазона, и назначается следующий незанятый адрес (он выводится в ответ на команду создания). Таким образом, скрипт создания аккаунтов–юнитов может «создавать» новые юниты сам, а адреса присваиваются в автоматическом режиме.

Возможно создание нескольких пулов. В этом случае проверка и выделение IP происходит в порядке следования auto–assign.

auto–units N type {host|user} naming {by–dns| prefix1 PPP |prefix2 QQQ} [group GROUPNAME]

Позволяет автоматически создавать юниты при получении пакетов, принадлежащих некоторой сети, и отсутствии соответствующего юнита в конфигурационном файле. При этом имя юниту генерируется через DNS, или на базе IP–адреса.

• N — номер записи auto–units

• type host или type user — тип создаваемого юнита

• naming — как будет присваиваться имя:

• by–dns — имя будет определяться через DNS, который должен у вас быть уже настроен и обеспечивать обратное преобразование адресов

• Если имя не получено, то в качестве имени будет использоваться IP адрес.

• prefix1 PPP — будет взят последний октет адреса, и спереди перед ним поставлена строчка PPP

• prefix2 QQQ — будут взяты два последних октет адреса, и спереди перед ними поставлена строчка QQQ

• group GROUPNAME — в какую группу помещать созданный юнит (необязательно)(версии начиная с 17 марта 2004).

unit {host|group|cluster|net|user}

[oid OID]

name NAME

parameters

[parent GROUP]

[no–local–pass]

[email addr]

[password passwd]

[description «any describing words»]

[mac «XX:XX:XX:XX:XX:XX»]

[sys–XXXX]

[bw { speed in speed out | speed } ]

[nodefault] [ap–nodefault] [fp–nodefault]

[acct–policy [!][%]p_name [p_name] …]

[fw–policy [!][%]p_name [p_name] … ]

[ds–list 1,2,3…]

[auto–units X]

определение объекта (NetUnit) по которому будет проводиться контроль и учет.

• Тип:

• host — хост, только один IP адрес

• group — группа (возможно пустая)

• cluster — хост с несколькими ip–адресами (кластер)

• net — подсеть, которая определяется сетевым адресом и маской

• user — аналог типа хост, используется для динамического задания ip адресов и привязке к пользователям

• oid OID — уникальный идентификатор сетевой единицы, создается автоматически

• name NAME — название объекта в виде строки (2–8 символов)

• parameters — специфические для данного типа объекта параметры:

• для хоста: ip A.B.C.D — адрес этого хоста

• для группы: нет

• для кластера: ip A.B.C.D [ip A.B.C.E [..]] - список адресов

• для подсети: ip A.B.C.D mask E.F.G.H — сетевой адрес и маска

• для пользователя: ip A.B.C.D — адрес с которого работает пользователь

• parent GROUP [GROUP1 [..]] - название родительских для данного объекта групп

• no–local–pass — при указании этого флага ip–пакет, совпавший с этим юнитом, не будет считаться локальным, к нему применится политика фильтрации restrict all, а не restrict local (полезно для подсетей)

• email addr — адрес электронной почты ответственного за этот юнит человека

• password passwd — пароль для данного юнита. Может использоваться как для авторизации (unit user), так и для просмотра статистики, если включен htaccess yes в сервисе html.

• description «any describing words» — описание юнита, может содержать пробелы и русские буквы (в кавычках).

• mac «XX:XX:XX:XX:XX:XX» — задает аппаратный Ethernet–адрес (MAC–адрес) юнита типа USER или HOST. Используется для проверки соответствия (mac–control …) и RADIUS–авторизации.

• sys-{allow|deny}-XXX — т.н. «системная политика», возможные значения:

• sys–allow — разрешить все, те снять все запреты

• sys–deny — запретить все, остальные запреты тоже остаются

• sys-{deny|allow}-ACTION — запретить|разрешить действие ACTION(auth, block, login, money, quota, mac)

• возможна комбинация нескольких подобных политик.

• sys–deny–OID — запретить работу с юнитом OID вне зависимости от других ограничений

• sys–allow–OID — разрешить работу с юнитом OID вне зависимости от других ограничений

• bw { speed in speed out | speed } - позволяет ограничивать входящий и/или исходящий трафик для данного юнита по скорости. Параметр speed указывается в битах в секунду; можно применять множители K и M для указания килобит и мегабит. Если не указано направление in или out, подразумевается выставление одинакового лимита скорости на оба направления одновременно. Возможно также задать fw–политику ограничения скорости (см. выше). ВАЖНО! Чтобы ограничение скорости работало, необходимо пересобрать NeTAMS с включенной опцией HAVE_BW. Это делается так: make distclen amp;amp; FLAGS=-DHAVE_BW make

• nodefault, ap–nodefault, fp–nodefault — отменяет, для данного юнита, политики по умолчанию (все, acct–policy или fw–policy, соответственно)

• acct–policy [!][%]p_name — разделенный пробелами список политик учета трафика для данного объекта

! — Если вы ставите восклицательный знак перед именем политики (без пробела), например !all–icmp, то совпадение/несовпадение данной политики применительно к пакету будет ИНВЕРТИРОВАНО, т.е. в данном случае будет учитываться ВЕСЬ НЕ–ICMP трафик.

• % - Если вы ставите знак процента при указании политики acct–policy, это значит, что при совпадении данной политики для пакета, дальнейший просмотр списка политик прекращается и подсчет заканчивается.

• fw–policy [!][%]p_name — разделенный пробелами список политик фильтрации трафика для данного объекта

• Для версий netams 3.1.xx, 3.2.xx и 3.3.xx до build 2117:

• ! — Если вы ставите восклицательный знак перед именем политики (без пробела), например !all–icmp, то совпадение/несовпадение данной политики применительно к пакету будет ИНВЕРТИРОВАНО, т.е. в данном случае будет пропускаться ВЕСЬ НЕ–ICMP трафик.

• % - Если вы ставите знак процента при указании политики fw–policy, это значит что при совпадении данной политики для пакета дальнейший просмотр списка политик прекращается, и вердикт пропускать/не пропускать пакет будет сделан сразу же.

• Для версий netams 3.3.xx после build 2117, в частности 3.3.0–release и далее:

• Перечисляются политики, трафик которых нужно пропускать. Все остальное будет заблокировано. Можно также указать политику ограничения скорости (которая имеет target… bw XX). Флаги [!][%] сохраняют свое действие, но их применение не имеет особого смысла.

• Подробнее про «направление действия» смотрите этот документ.

• ds–list no,[no,no,…] - список источников данных, которые будут связаны с этим сетевым объектом

• auto–units X — номер записи auto–units в сервисе processor, согласно которой будут автоматически создаваться учетные записи для новых хостов в сети. Этот параметр применяется только к юниту типа net. Подробнее об этой функции можно прочитать здесь.

access–script path

устанавливает имя скрипта, который будет использоваться для блокировки трафика. полезно для систем, использующих не data–source ip–filter, а другие механизмы.

path — полный путь до скрипта

например:

access–script "/usr/home/anton/script.pl»

при этом скрипт имеет вид:

#!/usr/bin/perl–w

print shift, " ", shift, " ", shift, " ", shift, "\n»;

При наступлении события отключения–включения сервис processor вызывает его с параметрами:

Действие(DENY|ALLOW)

Идентификатор_юнита(OID)

IP(IP)

Причина(QUOTA|LOGIN|…)