Документация по NetAms

Документация связанная с установкой, настройкой и работой пользовательского ПО
User avatar
Raven
Бородатый сис
Бородатый сис
Posts: 2794
Joined: 03 Mar 2010, 15:12
ОС: RHEL 8
Location: Из серверной

Документация по NetAms

Post by Raven » 13 May 2010, 12:30

Image

© 2010 ООО "Нетамс"

Введение

Программный комплекс NeTAMS предназначен для учета и управления трафиком в вашей IP-сети передачи данных. Он работает на сервере под управлением операционных систем Linux, FreeBSD или Solaris и занимается непрерывным сбором, анализом, фильтрацией и отображением статиски о передаваемой в вашей локальной сети информации. NeTAMS выполнен в виде монолитного процесса-демона и написан на языке C/C++ в виде многопоточного приложения. Он состоит из следующих компонентов (которые здесь будет принято называть сервисами):
  • * processor хранит в себе полные сведения обо всех объектах, подлежащих учету (IP-адреса, подсети), политиках учета, организует передачу сообщений между другими сервисами
    * data-source поставляет сервису processor данные о прошедшем трафике
    * storage хранит статистическую информацию, частично конфигурационную информацию
    * server обеспечивает интерактивное взаимодействие работающей программы с администратором и внешними скриптами через telnet-подобный API
    * scheduler, html, quota, billing и т.д. обеспечивают вторичные функции обработки статистики, такие как поддержка квот, профилей пользователей биллинга, статических HTML-страниц и прочее.
Поскольку первичным источником информации о трафике является IP-пакет, то основным объектом, статистика по которому учитывается, является IP-адрес. Совместно с адресом хранятся правила (политики) учета и фильтрации, ключ БД и другая информация, совместно образуя единую учетную единицу, или юнит (NetUnit). В настоящий момент поддерживаются следующие типы юнитов:
  • * host - характеризуется единственным IP-адресом
    * cluster - характеризуется набором (до 12) IP-адресов
    * net - характеризуется адресом подсети и сетевой маской
    * user - то же, что и тип host, однако может нести дополнительные параметры, например адрес электронной почты для уведомления или пароль
    * group - представляет собой логическую группу (объединение) любого количества юнитов любого типа, в том числе и других групп (могут быть вложенными)
Информация о прошедшем трафике может поставляться сервису data-source от операционной системы или от внешнего устройства/приложения. Операционная система может предоставлять механизм перехвата (divert, ipq) и/или копирования (tee, ulog) проходящих через ядро пакетов userland-приложению, каковым является NeTAMS, или отслеживать пакеты, проходящие "мимо" или "через" сетевой интерфейс при помощи библиотеки libpcap. С другой стороны, исходная информация о прошедшем трафике может быть сгенерирована в виде потока сообщений протокола Cisco NetFlow установленным в сети маршрутизатором Cisco или одной из множества свободно доступных программ, снимающих статистику и генерирующих потоки NetFlow. Среди них fprobe (http://www.fprobe.org), ng_netflow (только FreeBSD, /usr/ports/net/ng_netflow), ipfw2netflow и flowprobe (входят в комплект поставки NeTAMS).

Ниже приведен список доступных типов data-source в зависимости от используемой операционной системы
Image

Для обеспечения сохранности информации, выполнения поиска, отображения суммарная статистика попадает сервису storage, который сохраняет ее в базе данных. На текущий момент поддерживаются четыре типа хранилищ:
  • * unix hash (Berkley DB)
    * MySQL (версии 4.0.х и выше)
    * PostgresSQL
    * Oracle
Обычно unix hash уже присутствует в операционной системе (его, например, использует sendmail), что упрощает инсталляцию, однако скорость работы, надежность и функциональность оставляет желать лучшего. Рекомендуется использовать SQL-базу данных.

Один экземпляр NeTAMS может иметь несколько настроенных и одновременно работающих сервисов data-source и storage.
Я не злопамятный, я просто часто ковыряю логи
User avatar
Raven
Бородатый сис
Бородатый сис
Posts: 2794
Joined: 03 Mar 2010, 15:12
ОС: RHEL 8
Location: Из серверной

Документация по NetAms: Инсталляция

Post by Raven » 13 May 2010, 12:42

Инсталляция

В дистрибутиве есть файл INSTALL, в котором кратко описана процедура инсталляции. Детальное описание следует ниже.

Для ОС Линукс доступна также "сторонняя" инструкция по установке и настройке.

Для успешной работы вашей системы NeTAMS необходимо:
  1. Спланировать архитектуру сети
  • Установить и настроить операционную систему сервера
  • Установить и настроить дополнительные приложения
  • Скачать и установить NeTAMS
  • Подготовить правильный конфигурационный файл NeTAMS
Для начала, необходимо ответить себе на два вопроса:
а) вы будете использовать UNIX-маршрутизатор для передачи трафика, и NeTAMS будет установлен на этом же компьютере, или для передачи (роутинга) трафика у вас будет работать отдельный маршрутизатор (PC или Cisco).
б) вы хотите проводить только учет трафика, или необходимо ограничивать доступ для части клиентов (например, по превышении заданной квоты или исчерпанию баланса)

В случае UNIX-маршрутизатора с возможностями ограничения трафика подойдут операционные системы Linux или FreeBSD. Для Linux потребуется модуль IPQ, который есть в большинстве поставок как компонента ядер 2.4.x и 2.6.x и системы iptables. Вы можете проверить его наличие в системе, посмотрев на наличие файла netfilter/ip_queue.o в системе.

Для FreeBSD придется работать через механизм IPFW/divert socket, для чего ядро должно быть скомпилировано с поддержкой "options IPFIREWALL" и "options IPDIVERT". Убедиться в наличии модулей можно, посмотрев в файл /var/log/dmesg.today и поискав там строки "ipfw initialized, divert enabled, ...". NeTAMS работает под управлением FreeBSD с версий 4.х вплоть до CURRENT.

Если коллектором трафика будет другое устройство (Cisco или PC-роутер), необходимо отдельно настроить этот коллектор (flowprobe, fprobe, ipfw2netflow под управлением Linux/FreeBSD/Solaris, возможно заработает под OpenBSD/NetBSD) и установить NeTAMS на выделенный сервер. В этом случае требования к производительности аппаратного обеспечения меньше.

На сервер с NeTAMS желательно установить сервер базы данных (MySQL или PostgresSQL) и веб-сервер Apache. Практика показывает, что для нормальной работы сети в 100 узлов потребуется около гигабайта дисковой памяти под базу данных, и порядка 200 мегабайт под статические HTML-страницы с отчетами.

Ниже приведен список пакетов, которые могут потребоваться для установки для ОС Linux (пример взят для системы ALTLinux Master 2.2):
  • * MySQL-client-4.0.16-alt1.i586.rpm
    * MySQL-server-4.0.16-alt1.i586.rpm
    * apache-1.3.27rusPL30.16-alt13.i586.rpm
    * apache-common-1.3.27rusPL30.16-alt13.i586.rpm
    * binutils-2.13.90.0.4-alt2.i586.rpm
    * cpp3.2-3.2.1-alt2.i586.rpm
    * gcc3.2-3.2.1-alt2.i586.rpm
    * gcc3.2-c++-3.2.1-alt2.i586.rpm
    * glibc-devel-2.2.6-alt0.6.i586.rpm
    * libMySQL-3.23.55-alt1.i586.rpm
    * libMySQL-devel-3.23.55-alt1.i586.rpm
    * libbfd-2.13.90.0.4-alt2.i586.rpm
    * libmm-1.2.2-alt1.i586.rpm
    * libpcap-0.7.1-alt3.i586.rpm
    * libpcap-devel-0.7.1-alt3.i586.rpm
    * libstdc++3.2-devel-3.2.1-alt2.i586.rpm
    * make-3.79.1-ipl6mdk.i586.rpm
Если вы хотите использовать сервис html, придется еще ставить
  • * apache-1.3.27rusPL30.16-alt13.i586.rpm
    * apache-common-1.3.27rusPL30.16-alt13.i586.rpm
Если вам надо не только считать трафик, но и фильтровать его (наверняка, в большинстве случаев), надо ставить девелоперский комплект для iptables:
  • * iptables-devel-1.2.7a-3.1asp.i386.rpm
    * kernel-headers-common-1.0-alt2.noarch.rpm
    * kernel24-headers-2.4.20-alt13.i586.rpm
В вашем конкретном случае версии пакетов и даже названия могут быть другими.

Для FreeBSD все что нужно (кроме Apache и MySQL) идет в стандартном дистрибутиве.

Вам не надо самостоятельно создавать базы данных и таблицы для NeTAMS - программа сделает это самостоятельно при первом старте.

Теперь необходимо скачать дистрибутив NeTAMS, распаковать, скомпилировать и установить его.
На текущий момент вы можете использовать версию NeTAMS-STABLE, доступную для скачивания тут: http://www.netams.com/download.html , а также NeTAMS-CURRENT (содержащую новые функции и возможно, неустойчиво работающую), которая доступна через anonymous CVS:

Code: Select all

cvs -d :pserver:netams@netams.netams.com:/netams/cvs checkout netams 
В большинстве случаев вам будет достаточно использовать NeTAMS-STABLE.

Дистрибутивный архив имеет имя вида:
netams-3.3.1.tar.gz
где 3 - номер версии, 3 - номер подверсии и 1 - номер билда.

Распаковываем:

Code: Select all

tar zxvf netams-3.3.XXXX.tar.gz
cd netams-3.3.XXXX
Запускаем сборку.

Code: Select all

make
Сначала работает конфигурационный скрипт configure.sh. Он создает для вас специальный Makefile, в котором указаны найденные для вашей операционной системы SQL-сервера, пути до конфигурационного и лог-файла по умолчанию, системные библиотеки и прочее. Вы также можете отредактировать этот получившийся файл и изменить некоторые настройки.
Зачастую ошибки компиляции возникают от того, что для каждой версии Линукса пути до заголовочных файлов и библиотек разные. Предлагается дописать необходимые пути в начало скрипта configure.sh и повторить сборку через make distclean && make.

В конечном итоге в каталоге src/ вы должны получить исполняемые файлы netams, netamsctl, flowprobe, ulog2netflow и ipfw2netflow. Запускаем их установку на место:

Code: Select all

make install
Вот ключи командной строки для запуска netams:
-l создавать и дописывать сообщения о работе в лог-файл (по умолчанию это /var/log/netams.log)
-d не отцепляться от терминала и не уходить в background; лог пишется в терминал
-q не выводить вообще ничего при старте (по умолчанию пишется слово NeTAMS)
-f filename путь до конфигурационного файла, по умолчанию это /etc/netams.cfg для Linux и Solaris и /usr/local/etc/netams.cfg для FreeBSD.
Я не злопамятный, я просто часто ковыряю логи
User avatar
Raven
Бородатый сис
Бородатый сис
Posts: 2794
Joined: 03 Mar 2010, 15:12
ОС: RHEL 8
Location: Из серверной

Документация по NetAms: Первый запуск

Post by Raven » 13 May 2010, 12:46

Первоначальная настройка

Скопируйте примерный конфигурационный файл из addon/netams.conf в место, указанное в переменной PATH_TO_CONFIG вашего Makefile, использовавшегося при компиляции. Если вы ставили прогрумму через make install, то файл начальной конфигурации уже на месте. Отредактируйте его.

Для минимального запуска конфигурационный файл должен содержать что-то вроде :

Code: Select all

debug none
user name admin real-name Admin password aaa email root permit all

service server 0
login local
listen 20001
max-conn 6

service processor 0
lookup-delay 60
flow-lifetime 300
policy oid 14643C name ip target proto ip 
restrict all pass local pass
unit group name ALL 
unit user name server ip 192.168.0.1 acct-policy ip

service storage 1
type mysql

service data-source 1
type libpcap
source eth0 # поставьте тут имя вашего сетевого интерфейса!
rule 11 "ip"

service alerter 0
report oid 06100 name rep1 type traffic period day detail simple
smtp-server localhost

service html 0
path /var/html
run hourly
Для FreeBSD добавьте netams_enable="YES" в /etc/rc.conf

Для Linux убедитесь, что в /etc/rc5.d/ есть правильная ссылка на /etc/ini.d/netams.init.d (хотя во всех линуксах все по-разному)

Запускаем программу:

Code: Select all

/usr/local/etc/rc.d/netams-startup.sh start
При удачном запуске вы увидите процесс netams в списке выполняющихся процессов в системе. Можно попробовать присоединиться к программе:

Code: Select all

telnet localhost 20001
(укажите логин, "admin")
(укажите пароль, "aaa")
в случае успеха вы увидите приглашение к набору команд:

Code: Select all

#
Попробуйте выполнить команды "html", "save", "show version", "show config".

Первая команда, html, создаст в каталоге /var/html (указанный в команде path сервиса html) файлы с текущей статистикой и параметрами системы.

Вы должны будете настроить свой веб-сервер, чтобы он отображал эти страницы.

Вторая команда, save, вызывает сохранение текущего выполняемого конфигурационного файла обратно в файл. Это необходимо для сохранения значений ключей БД, присваиваемых объектам автоматически.

Если все четыре команды отработали успешно и вы увидели изменения в конфигурационном файле, вам доступны HTML-страницы и информация о версии показывает пару десятков строк - поздравляем, вы успешно установили NeTAMS.

Внимание!
Начиная я версии 3.4 NETAMS в режиме управления через командную строку работает иначе, чем в версиях 3.3.х. Это связано с переходом на LIBCLI, библиотеку работы с командной строкой. Она позволяет делать такие приятные вещи, как история введенных команд, "стрелочки", редактирование строк и прочее. Более того, интерфейс стал еще ближе к интерфейсу устройств Cisco. Существуют следующие режимы работы:
  • непривилегированный
    привилегированный
    привилегированный конфигурационный
В непривилегированном режиме сделать особо ничего нельзя. Он характеризуется приглашением ">" командной строки. Туда можно попасть командой disable из привилегированного режима по умолчанию; это поведение может быть изменено при перекомпиляции (ройтесь в сорцах).

В привилегированный режим вы попадаете после логина в программу. Он характеризуется приглашением "#" командной строки. В этом режиме можно исполнять все команды show, debug и т.д., но нельзя менять поведение (настройку) сервисов и того, что с ними связано. Из непривилегированного режима сюда можно попасть командой enable.

В привилегированный конфигурационный режим можно попасть с помощью команды conf t (сокращенно от configure terminal). Он характеризуется приглашением "(config)#" командной строки.Здесь вы можете запускать и останавливать сервисы, а также настраивать их содержимое. Выход из режима - команда exit.
Я не злопамятный, я просто часто ковыряю логи
User avatar
Raven
Бородатый сис
Бородатый сис
Posts: 2794
Joined: 03 Mar 2010, 15:12
ОС: RHEL 8
Location: Из серверной

Документация по NetAms: Эксплуатация

Post by Raven » 13 May 2010, 12:47

Эксплуатация

Для успешной, точной и безошибочной работы вашей системы учета трафика вам необходимо будет:
  • Разобраться с принципами функционирования NeTAMS
    Изучить все сервисы и их команды
    Изучить некоторые специальные моменты и особенности
    Спланировать "как следует" свою концепцию сбора, хранения и отображения информации, список необходимых сервисов
    Составить "полный" конфигурационный файл, донастроить SQL, Apache, почтовую систему, firewall, ...
    Научиться вносить изменения в работающую конфигурацию
    Научить пользователей смотреть свою статистику
А вообще, учите матчасть. Читайте документацию по сервисам. Читайте форум. Задавайте там свои вопросы (но сначала попробуйте поискать - может кто-то уже ответил на ваш вопрос). Вы не представляете, как раздражают горе-"администраторы", которые кричат "помогите", не потрудившись открыть и подредактировать Makefile.
Я не злопамятный, я просто часто ковыряю логи
User avatar
Raven
Бородатый сис
Бородатый сис
Posts: 2794
Joined: 03 Mar 2010, 15:12
ОС: RHEL 8
Location: Из серверной

Документация по NetAms: Принципы работы

Post by Raven » 13 May 2010, 12:49

Принципы работы

Основная программа комплекса NeTAMS состоит из следующих частей, работающих параллельно и одновременно, и называемых сервисами:
Image

Сервис main представляет собой главный поток, с исполнения которого начинает работу программа. Он определяет основные свойства системы, считывает и разбирает конфигурационный файл, запуская другие сервисы, и впадает в сон до завершения работы NeTAMS. При подаче команд kill, shutdown, reload, возникновении критического сбоя или получении сигнала SIGQUIT сервис main просыпается и пытается остановить все другие сервисы, чтобы корректно закрыть базы данных и убрать перехватчики пакетов.

Сервис processor является ядром NeTAMS, так как именно в нем определяется список объектов, по которым будет произведен учет, и самих правил учета. Все компоненты системы обмениваются между собой сообщениями, например запросами к БД или данными о трафике за некий промежуток времени. Processor обеспечивает диспетчеризацию сообщений. Возможен только один экземпляр сервиса processor программу.

Сервис server обеспечивает возможность присоединяться к работающей программе через tcp-сокет; с помощью команд возможно управление программой и съём статистики.

Сервис data-source обеспечивает поступление данных о трафике вовнутрь программы. В качестве источников данных об IP-трафике могут выступать средства перехвата пакетов систем FreeBSD (divert socket) Linux (модуль ip_queue системы iptables), прослушивания сетевого интерфейса (libpcap), статистика NetFlow версии 5, приходящая от маршрутизаторов Cisco или от любого другого коллектора.

Сервис storage определяет Базу Данных, в которой будет сохраняться статистика и часть конфигурации системы. Это может быть стандартный Berkley DB UNIX hash, который есть в любой системе, или SQL база данных, расположенная на локальной или на соседней машине.

Сервис alerter позволяет администратору организовывать отправку себе или пользователям отчета о прошедшем и учтенном трафике, информации о деятельности системы и пр.

Сервис scheduler обеспечивает выполнение заданных команд в запланированное время. Это "виртуальный" сервис, т.к. запускается всегда автоматически и не требует конфигурирования.

Сервис html организует автоматическое периодическое создание статических html-страниц, содержащих информацию о прошедшем трафике, о работе системы, состоянии подсистем квот, биллинга, логинов, текущий конфигурационный файл и прочее. Необходимо настроить локальный веб-сервер, чтобы он безопасно показывал эти страницы администратору и пользователям.

Сервис monitor организует детальный мониторинг трафика заданных юнитов для последующего "разбора".

Каждый объект в системе (политика, юнит и пр.) имеет свой уникальный номер, так называемый OID, object identificator, который является ключом в базе данных. Он генерируется автоматически случайным образом при создании объекта, так что не забывайте сохранять конфигурационный файл после изменений командой save. Идентификатор представляется в виде шестнадцатеричного числа, записанного шестью символами. Например, запись для юнита типа user выглядит примерно вот так:

Code: Select all

unit user oid 02628C name r556-2 ip 10.208.209.40 
   email anton@localhost parent LAN1 acct-policy ip www rus
Каждый юнит помимо идентификатора OID, и имени, имеет сведения о принадлежности какой-либо группе (он также может не принадлежать никакой группе), о своих параметрах (IP-адрес или, например, маска сети), список политик учета и фильтрации трафика, системную политику, принадлежность к определенному data-source и проч.

В то время как предшественник NeTAMS (aaa+fw) учитывал только ip-only трафик, сейчас есть возможность делить данные по другим признакам. Они определяются при задании политики, policy. Политика может определять правила фильтрации и учета. В любом случае помимо имени и OID, указывается тип политики и target, т.е. принцип по которому будет проведен учет. Например:

Code: Select all

policy oid 146633 name all-icmp target proto icmp
policy oid 1574B0 name web target proto tcp ports 80 81 3128
policy oid 153333 name server target units oid 0346E8
При обработке пакета системой происходит следующая последовательность событий:
Если сервис data-source настроен так, что данный пакет "заворачивается" в программу, то анализируется заголовок пакета
Проверяется, какому юниту из конфигурации соответствует пакет, путем сопоставления всей таблицы с полями ip_src и ip_dst заголовка пакета. Один и тот же пакет может соответствовать нескольким учетным единицам, и относиться к нескольким вложенным группам.
Для каждого юнита проверяется значение установленной системной политики
Для каждого юнита последовательно перебирается цепочка установленных политик на фильтрацию трафика, проверяется соответствует ли пакет установленной политике. Если после последовательного перебора всего списка пакет "пропущен", аналогично перебирается цепочка установленных правил учета (acct-policy), и если пакет попадает под соответствующее правило, для данного юнита происходит увеличение соответствующего данной политики счетчика, т.е. bytes in/out. Пакет возвращается ядру ОС (data-source ip-traffic) или уничтожается (data-source libpcap или netflow).
Если пакет не пропущен правилом fw-policy или sys-policy, он молча отбрасывается и учет трафика по нему не ведется..
Данные о трафике накапливаются в виде "потоков" (flows), которые периодически (за это отвечает параметр flow-lifetime сервиса processor) сбрасываются в базу данных (таблица raw), дополнительно в системе поддерживаются значения счетчиков о прошедшем трафике с начала текущего часа, дня, недели и месяца для каждой комбинации юнит + политика учета. По истечении соответствующего временного интервала данные о трафике за прошедший интервал все равно остаются в базе (таблица summary), обеспечивая надежность и целостность данных на время случайный или запланированных перезагрузок системы.

Информацию о текущем и прошедшем трафике можно получить, подсоединившись к программе через telnet и набрав команды:

Code: Select all

show list full 
send report to {user_name} on {unit_name} (при настроенном сервисе alerter) 
html (при настроенном сервисе html - и это наилучший вариант)
Я не злопамятный, я просто часто ковыряю логи
User avatar
Raven
Бородатый сис
Бородатый сис
Posts: 2794
Joined: 03 Mar 2010, 15:12
ОС: RHEL 8
Location: Из серверной

Документация по NetAms: Сервисы и команды

Post by Raven » 13 May 2010, 12:51

Сервисы и команды

Информация о командах их параметрах сгруппирована по сервисам. Все команды, описанные в этом разделе, могут использоваться для подготовки конфигурационного файла перед запуском программы. В то же время большинство из них может быть указано при подключении к работающей программе через telnet и вводе соответствующих директив. Некоторые команды требуют рестарта демона (например, изменение пути, где сервис storage хранит свои базы данных). Вы всегда можете получить справку о доступных командах набрав "?" ; для справки о параметрах наберите "имя_команды ?".

Порядок описания сервисов в конфигурационном файле:
  • Сервисы main и scheduler (команды debug, user, schedule)
    Сервис processor (таймауты, restrict, policies, units, список БД)
    Сервисы storage (их может быть несколько)
    Сервисы data-source (их может быть несколько)
    Сервис alerter
    Сервис html
    Сервис monitor (их может быть несколько)
    Сервис quota
    Сервис login
    Сервис billing
Каждый сервис стартует командой

Code: Select all

    service XXX N 
где N - номер экземпляра сервиса. Сервисы main и scheduler явно указывать не надо - команды настройки этих сервисов идут в самом начале конфигурационного файла ДО описания остальных сервисов.
В случае, если какой-то параметр совпадает с значением "по умолчанию" в конфигурации он может не показываться.
Сервисы, которые возможны только в единственном варианте, не показывают свой номер.
Для того чтобы отменить введенную команду или удалить объект, необходимо повторить команду и в начале поставить ключевое слово no
Если хочется исполнить последовательность команд, например для настройки каких-нибудь параметров сервиса, команды можно разделять символами " && " (перед и после - пробелы), например так:

Code: Select all

schedule time at-23:30 action "service processor && unit host name pupkin sys-deny && exit"
или так:

Code: Select all

send report to admin on LAN+ && html && show perf
Я не злопамятный, я просто часто ковыряю логи
User avatar
Raven
Бородатый сис
Бородатый сис
Posts: 2794
Joined: 03 Mar 2010, 15:12
ОС: RHEL 8
Location: Из серверной

Документация по NetAms: Список всех команд

Post by Raven » 13 May 2010, 12:55

Список всех команд

Информация о командах их параметрах сгруппирована по сервисам.

main
show version
show config [unsecure] [oids]
show connections
show users
show schedule
show units [ syspolicy [whereset] |
email | hash | name XXX |
mac [whereset] | unit_type ]
show processor
show ds
show alerter
show monitor
show list [full] [name XXX | OID YY]
show policy
show quota [oid ID | name XXX | list]
show login
show perf filename [header]
show health

user { oid OID | name user_name }
[real-name user_human_name]
[email email_addr]
[password pass]
[crypted crypted_pass]
[permit permit_state]
no user { oid OID | name user_name }

language { ru | en }

debug deb_str [deb_str] ...
no debug deb_str [deb_str] ...

radius auth { nas | web }
login login_str
[password pass_str]
nas-id nas_name
callback-id callback_name

mac { control [alert]
} | { fixate }
html
save
enable
configure { terminal | ... }

rotate log
rotate monitor N

scheduler
schedule [oid OID ]
time time_period
action requested_action
no schedule oid OID

show schedule

server
listen XXXX
max-conn XXXX
login { any | localhost }

processor
lookup-delay XXXX
flow-lifetime XXXX
policy [oid OID] name NAME
[no] target TARGET
[bw { speed in speed out | speed } ]
TARGET=
proto XX
tos XX
port [s|d|b]num [s|d|b]num ...
as [s|d|b]num [s|d|b]num ...
vlan N1 [ N2 ] ...
ds N1 [ N2 ] ...
file YYYY
addr addr ...
ifindex [s|d|b]num [s|d|b]num ...
ingress|egress
policy-or [!]{NAME|OID} ... [!]{NAME|OID}
policy-and [!]{NAME|OID} ... [!]{NAME|OID}
time timespec
day dayspec

default{ acct-policy | fw-policy } NAME|OID ... NAME|OID
restrict all {drop|pass} local {drop|pass}
auto-assign A.B.C.D E.F.G.H
auto-units N
type {host|user}
naming {by-dns| prefix1 PPP |prefix2 QQQ}
[group GROUPNAME]

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 } ]
[acct-policy [!][%]p_name [p_name] ...]
[fw-policy [!][%]p_name [p_name] ... ]
[ds-list 1,2,3...]
[auto-units X]

access-script path

storage
type { hash | mysql | postgres | oracle | radius}
path XXX
user username
password password
host hostname
dbname database_name
socket sock_name
port XXX
retry XXX
timeout XXX
nas-ip A.B.C.D
accept { all | type ... } [except type ...]

data-source
type { ip-traffic | netflow | libpcap | netgraph }
source { tee XXX | divert XXX | ipq | ulog NL1 [NL2 ... NL32] |
A.B.C.D | ifname [promisc] | nodename [divert] }
listen { 0 | ip } port_number
clock { remote | local }
layer7-detect { none | urls }
rule ID rule_string
no rule ID

alerter
report [oid 06100] name rep1 type traffic period day detail simple
smtp-server smtp_server_name


html
run time_interval
path /path/to/html/root
url url_string
servlet-url url_string
htaccess { yes | no }
client-pages { all | groups | none | group GG1 GG2 ... }
account-pages { all | none }
display-top N
display-health { yes | no }

monitor
monitor to { storage N | file XXXX | netflow IP PORT}
no monitor to ...
monitor unit { N | XXXX }
no monitor unit { N | XXXX }
show monitor

quota
policy XXX
block-policy XXX
soft-treshold N
set {name XXX | oid YYY}
[policy XXX]
[block-policy XXX]
[soft-treshold N]
[active|inactive]
[notify [{soft|hard|return} {"{none}"|["{owner}"] [YYY]}]]
[hour ... ]
[day ...]
[week ...]
[month ...]

billing
subplan N
fee NNN
spread { monthly | daily | hourly }
included
{ XXX | unlimited } sum |
[ { XXX | unlimited } in ]
[ { XXX | unlimited } out ]
policy MMM
overdraft [ AA in ] [ BB out ] [ CC sum ]
adjust-included {yes|no}
adjust-fee {yes|no}

plan N
name AAA
description BBB
[no] subplan N1 N2 N3 ...
account NNN
name AAA
[description BBB]
password CCC
plan MM1
nextplan MM2
[beblock | block | unblock]
balance {add|remove|set} ZZ
[credit-limit ZZ]
unit {name AAA | oid NN} {add | delete }

default-credit-limit XX
show plan [ N [ account|list] ]
show account { XXX [full] [bdata] |list}

login
default-inact N
default-abs N
max_inact N
min_inact N
max_abs N
min_abs N
min_passwd_length N
relogin {yes|no}
set-user-ip
set {name AAA | oid BBBB}
[password CCCC]
[inact DDDD]
[abs EEEE]
[mac 0a:0b:0c:0d:0e:0f]
[strict|nostrict]

login {name AAA | oid BBBB}
password CCCC
[ip A.B.C.D]
[mac JJ:JJ:JJ:JJ:JJ:JJ]

logout {name AAA | oid BBBB}
password CCCC
[ip A.B.C.D]
[mac JJ:JJ:JJ:JJ:JJ:JJ]

acl-server
hostname AAAA [NN]
direction { src|dst }
dynamic-name AAAA
acl-number NNN [cisco]
delay NNN
set-uptime NNN
debug aclserver
Я не злопамятный, я просто часто ковыряю логи
User avatar
Raven
Бородатый сис
Бородатый сис
Posts: 2794
Joined: 03 Mar 2010, 15:12
ОС: RHEL 8
Location: Из серверной

Документация по NetAms: [service main]

Post by Raven » 13 May 2010, 13:00

[service main]

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

Code: Select all

user { oid OID | name user_name }
	[real-name user_human_name] 
	[email email_addr] 
	[password pass] 
	[crypted crypted_pass] 
	[permit permit_state]
Команда, которая задает пользователя системы и его параметры. Только присутствующий в списке user пользователь имеет право управлять программой через TCP-порт, т.е. интерактивно или через API. Таким образом, вы должны создать столько пользователей user, сколько администраторов в вашей сети + отдельный аккаунт, от имени которого будут выполняться веб-скрипты, использующие NeTAMS API.

oid OID
уникальный идентификатор пользователя, создается автоматически если не указан
name user_name
логин пользователя программы.
real-name user_human_name
его человеческое имя, может быть в кавычках и содержать пробелы, используется например при отправке уведомлений по почте
email email_addr
адрес почты для отправки уведомлений администратору
password pass
пароль на вход, не зашифрованный
crypted crypted_pass
пароль на вход, зашифрованный. Если в конфигурационном файле был введен не зашифрованный пароль, то он тут же автоматически шифруется, и при выводе show config или save выдается именно шифрованная версия. Команда show config unsecure, которая используется сервисом html для генерации статической страницы с конфигурационным файлом, выводит вместо всех паролей звездочки.
permit permit_state
права пользователя в системе, от none до all. Подробнее можно посмотреть в src/security.c

no user { oid OID | name user_name }
Удаляет указанного по имени или OID пользователя из программы.

language { ru | en }
Выбор языка, на котором формируются отчеты сервисами HTML и alerter. Пока действуют только английский и русский.

debug deb_str [deb_str] ...
Команда, которая задает тип выводимой в ходе работы отладочной информации о деятельности сервисов.

deb_str - идентификатор типа отладки:
none - отсутствие всех видов отладки
command - введенные пользователем/файлом конфигурации команды
parse - разбор введенных команд
sleep - работа механизма синхронизации сервисов
server - работа сервиса server
proc_mux - мультиплексор сообщений сервиса processor
ds_ip - данные ip сервиса data-source
storage - работа сервиса storage
alert - работа сервиса alerter
scheduler - работа сервиса scheduler
html - работа сервиса html и генерация статических страниц
monitor - данные по пакетам для указанных units
login - работа сервиса логинов
quota - работа сервиса контроля квот quota
iptree - работа механизма хранения объектов iptree
flow - работа механизма потоков трафика
ds_mux - мультиплексор сообщений сервисов data-source
memory - работа менеджера памяти
policy - работа по проверке политик для аккаунтов (биллинг)
billing - работа сервиса биллинга
aclserver - работа сервиса контроля списков доступа ACL
bw - работа механизма ограничения скорости передачи данных юнитом
all - наличие всех видов отладки (включайте осторожно, иначе на экран могут полезть сотни строк в секунду).

no debug deb_str [deb_str] ...
Отключает отладку указанного типа. Команда debug none эквивалентна no debug all.


radius auth {nas|web}
login login_str
[password pass_str]
nas-id nas_name
callback-id callback_name

Обеспечивает авторизацию внешнего радиус-сервера (через модуль rlm_netams) согласно внутренней базе паролей netams. См. подробное описание.


mac {control [ alert ] [ block ]} | {fixate}
control выполняет проверку соответствия MAC- и IP-адресов, используя системную таблицу ARP. Проверке будут подвергаться только юниты типа HOST и USER, для которых задан параметр "mac ...".
НЕ рекомендуется делать ее очень часто - оптимальным можно считать 1 раз в 5 минут. Задавать такую проверку рекомендуется через service scheduler. Агрументы block и alert задают, что делать при появлении MAC-адреса, отличного от указанного в настройках: отключать юнит через sys-deny-mac и/или отправлять всем администраторам (user XXX ... permit all) почтовое сообщение. При "возврате" MAC-адреса обратно заблокированный юнит вновь включается.
fixate производит "дозапись" параметра MAC всем определенным в конфигурационном файле юнитам, которые в данный момент присутствуют в системной таблице ARP. Рекомендуется применять эту команду для создания привязки MAC-IP для работающей системы NeTAMS с уже определенным набором юнитов: через сервис scheduler запланируйте исполнение этой команды раз в 15 минут, а через пару дней отключите задачу и создайте задачу контроля (mac control ...)


html
Вызывает создание HTML-страницы сервисом html (если он работает). В большинстве случаев эта команда должна выполняться не вручную, а сервисом scheduler (параметр run XXX сервиса html приводит к созданию соответствующей записи планировшика автоматически)
Я не злопамятный, я просто часто ковыряю логи
User avatar
Raven
Бородатый сис
Бородатый сис
Posts: 2794
Joined: 03 Mar 2010, 15:12
ОС: RHEL 8
Location: Из серверной

Документация по NetAms: [service scheduler]

Post by Raven » 13 May 2010, 13:02

[service scheduler]

В явном виде описывать этот сервис не нужно: подразумевается, что конфигурационный файл начинается с описания main, после чего идут команды сервиса scheduler.


schedule [oid OID ]
time time_period
action requested_action

Задает расписание, по которому будет исполняться заданная команда.

oid OID
уникальный идентификатор пользователя, создается автоматически если не указан
time time_period
время или интервал, когда будет выполнена команда:
<число><указатель_времени>, например schedule time 1min action "show version"
возможные указатели: sec, min, hour, day, week, month. указанная команда исполнится через соответствующий промежуток времени и будет после исполнения запланирована снова.
{hourly|daily|weekly|monthly}
команда будет исполнена в первую секунду начала каждого периода, независимо от времени ее задания. например schedule time weekly action save будет автоматически сохранять конфиг в первую секунду понедельника, т.е. начала недели.
at-XX:XX
команда запланируется на заданное время и будет выполняться ежедневно. например schedule time at-22:00 action save
Если после <time_period> поставить знак '+', то выполнение команды запланируется на 10 секунд позже, чем указано, если знак '-', то на 10 секунд раньше.
action requested_action
запланированная команда - любая допустимая. Если в ней несколько слов, заключите ее полностью в кавычки, а если в самой команде нужны кавычки, то используйте апострофы. Если хочется исполнить последовательность команд, например для настройки каких-нибудь параметров сервиса, команды можно разделять символами " && " (перед и после - пробелы), например так:

Code: Select all

schedule time at-23:30 action "service processor && unit host name pupkin sys-deny && exit" 
no schedule oid OID
Отменяет запланированную задачу.

show schedule
Отображает список текущих задач планировщика
Я не злопамятный, я просто часто ковыряю логи
User avatar
Raven
Бородатый сис
Бородатый сис
Posts: 2794
Joined: 03 Mar 2010, 15:12
ОС: RHEL 8
Location: Из серверной

Документация по NetAms: service server

Post by Raven » 13 May 2010, 13:06

service server

listen XXXX
определяет tcp-порт, на котором программа будет ожидать входящих соединений для управления своей работой или сбора статистики. Не поддерживает динамическое изменение!
XXXX - номер порта TCP (1...65535), по умолчанию 20001

max-conn XXXX
устанавливает максимальное число одновременно открытых подключений к процессу.
XXXX - количество одновременных соединений, по умолчанию 6

login { any | localhost }
определяет возможность подключения с любого адреса или непосредственно с самого сервера, с точки зрения безопасности лучше выбрать последнее.
any
соединение возможно с любого хоста
localhost
соединение возможно только с этой машины (127.0.0.1)
Я не злопамятный, я просто часто ковыряю логи
Post Reply

Return to “Документация *nix”