информация берется из файла .netamsctl.rc
Вызов netamsctl с нужной командой можно поместить, например, в cron, в вашу любимую самописную программу, в sudo–скрипт для исполнения секретаршей–блондинкой.
Как настроить?
После сборки, исполняемая программа netamsctl находится в netams/src, пример настроек .netamsctl.rc в netams/addon
make install копирует программу в /usr/local/sbin, однако .netamsctl.rc не трогается
Ваше дело — положить этот файл в один из каталогов:
• ~/.netamsctl.rc (домашний каталог пользователя, который будет запускать)
• .netamsctl.rc (там, где находится исполняемый файл)
• /usr/local/etc/.netamsctl.rc
• /etc/.netamsctl.rc
Отредактируйте этот файл, прописав там верные значения логина, пароля, хоста (по умолчанию — localhost) и TCP–порта (по умолчанию — 20001), словом то же самое, что вы используете для повседневного управления через Telnet
Не забудьте отнять права у этого файла на чтения «кому не надо»:
chmod 600 .netamsctl.rc
Проверяем:
src/netams–l
netamsctl «show version»
Не забывайте, что возможно задать на исполнение сразу несколько команд, если разделить их комбинацией '&&'. Это крайне полезно, если необходимо передать команду какому–нибудь сервису:
netamsctl «service processor && unit host name pupkin sys–deny && exit»
Часто задаваемые вопросы
• Какие пакеты мне нужно поставить, чтобы NeTAMS заработал?
• Все зависит от комбинации желаемых data–source и storage. В общем виде список пакетов для Linux приведен тут. Для FreeBSD ничего дополнительного помимо SQL и веб–сервера ставить не надо.
• Как мне создать базу и таблицы SQL?
• Специально создавать базу данных не нужно (MySQL). NeTAMS сам создаст ее при первом старте; таблицы с данными (raw и summary) будут создаваться, когда пойдет реальный трафик и начнется учет. Для Postgres вы можете создать таблицы вручную (они лежат в каталоге addon/), для Oracle вы ДОЛЖНЫ создать схему вручную (addon/oracle/).
• При компиляции не нашелся SQL. Как быть?
• Обычно, при сборке, скрипт configure.sh сканирует набор системных каталогов в поиске клиентских библиотек и заголовочных файлов. При этом на консоль выводится что–то вроде:
freebsd–vm:~/netams#make
/bin/sh configure.sh
##########################################################
## Configuring NeTAMS for build targets… ##
FreeBSD operating system…
With FreeBSD 5.XX, will have netgraph module…
Will have MYSQL support
[ /usr/local/lib/mysql /usr/local/include/mysql ]
Will have POSTGRESQL support
[ /usr/local/lib /usr/local/include ]
Will have BILLING service
Will have DEBUG flag set
Will have RADIUS support
Will have private portion of Makefile
## Configuration file was built. ##
##########################################################
К сожалению, стандартного места для таких библиотек нет, ваш конкретный дистрибутив может ставить программы куда угодно (особенно славится этим Linux), в связи с чем configure.sh может не найти библиотеки и при старте программа само–выключится с сообщением:
parse: registering storage: 1
parse: using storage:2 as source for READ and STAT requests
parse: creating service storage:1
parse: storage type is unknown
В таком случае вам необходимо вручную добавить соответствующие пути в верхние строки (начало) файла configure.sh, и пересобрать программу через:
make distclean && make
• Как мне блокировать трафик, если я использую libpcap?
• В общем случае — никак. Библиотека libpcap позволяет только слушать проходящий мимо интерфейса трафик. Все возможность блокировки через fw–policy или sys–policy работают ТОЛЬКО при наличии «перехватывающего» сервиса data–source, например IPFW или iptables/IPQ. Вы также можете написать свой скрипт (де)блокировки, который будет вызываться сервисом processor каждый раз, когда изменяется состояние системной политики юнита (см. документацию и пример).
• Почему бы не хранить конфигурацию в SQL?
• По историческим причинам NeTAMS держит ВСЮ свою конфигурацию в текстовом файле. Один и тот же код отвечает за разбор конфигурационного файла при старте, и настройку работающей программы через интерфейс командной строки. Хранение (части) конфига в SQL–базе, вообще–то очень полезная фича, потребует дублирования кода разбора конфига, дублирование кода записи конфига, и нетривиальных механизмов синхронизации SQL и внутренних структур данных работающей программы. К тому же, для управления SQL–конфигом придется писать отдельный веб–интерфейс. Эта задача (пробовали, не получилось) слишком трудоемка, чтобы браться ее реализовать в рамках бесплатного проекта и за разумное время.
• У меня чего–то не компилируется/не настроено/не работает, помогите!
• У вас есть две возможности. Можно обратиться к авторам программы за платной поддержкой по инсталляции и настройке (потребуется доступ по SSH, схема сети, описание задачи и в среднем $200). Можно обратиться за поддержкой в форум, где надо указать: версию ОС, netams, установленного софта; подробное описание проблемы; лог–и конфиг–файл (последний — сделанный через save); ключи запуска netams.
• Программа падает, что делать?
• См. предыдущий вопрос. Попробуйте по очереди отключать неиспользуемые опциональные сервисы (html, quota, ..), и пробовать снова. Для корректного разбирательства надо научиться пользоваться GDB. Получить вывод «gdb /usr/local/sbin/netams netams.core», в котором посмотреть «bt full».
• Делаю как написано в документации, команда не срабатывает.
• Документация относится к версии CURRENT. Возможно ваша (более старая) версия netams просто еще понимает ту команду, которую вы задаете.
• FreeBSD+NAT+SQUID. Конфигурация для подсчета трафика.
• При помощи divert или tee трафик, проходящий через NAT и SQUID, нужно завернуть для подсчета а нетамс.
• Для этого нужно добавить в файервол divert или tee на нетамс трафика по порту 3128(прокси)
• Допустим правило трансляции стоит под номером 800.