Обсуждение статьи тематического каталога: Простая настройка NeTAMS во FreeBSD (isp billing traffic freebsd)Ссылка на текст статьи: http://www.opennet.me/base/net/netams_setup.txt.html
Прикольно. Автор молодец. Вот такой вопрос, можно ли сделать так, чтобы netams слал отчёт по трафику в определённый день за опрделённый период на мыло?
Нет, НеТАМС умеет только предупреждать о наступающей квоте. Другое дело, что так как любой отчетный период - это просто HTML-файл, к базе не привязаный, то есть практически плэйн-текст, его можно послать с помощью простого скрипта средствами FreeBSD. Мои знакомые админы так делают.
>Нет, НеТАМС умеет только предупреждать о наступающей квоте. Другое дело, что так
>как любой отчетный период - это просто HTML-файл, к базе не
>привязаный, то есть практически плэйн-текст, его можно послать с помощью простого
>скрипта средствами FreeBSD. Мои знакомые админы так делают.А можно ли тогда брать данные из самой базы скриптом на перле не пример? Не давно пытался разобраться где там чего лежит, нифига не догнал как эти данные получить. Может есть мысль?
>>Нет, НеТАМС умеет только предупреждать о наступающей квоте. Другое дело, что так
>>как любой отчетный период - это просто HTML-файл, к базе не
>>привязаный, то есть практически плэйн-текст, его можно послать с помощью простого
>>скрипта средствами FreeBSD. Мои знакомые админы так делают.
>
>А можно ли тогда брать данные из самой базы скриптом на перле
>не пример? Не давно пытался разобраться где там чего лежит, нифига
>не догнал как эти данные получить. Может есть мысль?Ну брать-то можно, но лично я в структуре базы нетамса толком нифига не понял :-)
там все просто, наиболее интересна таблица summary где хранится агрегированный трафик по часу, дню, недели, месяцу, юниту, политике
например есть юнит с oid'ом u1 и политика с oid'ом p1 тогда трафик по этой политике по часам
select to_timestamp(t_from), bytes_in, bytes_out from summary where unit_oid = u1 and policy_oid = p1 and prefix = 'H'PS. to_timestamp() - функция в postgresql
Да как раз таки основная проблема в том, что oid в таблице вообще какой-то рэндомный и не соответствует ни оиду прописанному в конфиге нетамса, ни каой-либо логике вообще.
>Да как раз таки основная проблема в том, что oid в таблице
>вообще какой-то рэндомный и не соответствует ни оиду прописанному в конфиге
>нетамса, ни каой-либо логике вообще.Это точно. Как оно вообще там создаётся никто не в курсе? Сам же нетамс как-то всё это понимает....
нету там ничего рандомного
в конфиге все оиды в hex, в базе в dec
есть косяк в том, что нетамс не валит удаленные оиды в конфиге из oids, т.е. там может находится куча "старых" оидовда, еще в базе не хранятся имена политик, т.е. чтобы узнать как называется политика с каким-либо оидом, нада глядеть в конфиг
ps. имхо с сылочной целостнотью в нетамс схеме не все в порядке...
ps. netams 3.3.2
>там все просто, наиболее интересна таблица summary где хранится агрегированный трафик по
>часу, дню, недели, месяцу, юниту, политике
>например есть юнит с oid'ом u1 и политика с oid'ом p1 тогда
>трафик по этой политике по часам
>
>
>select to_timestamp(t_from), bytes_in, bytes_out from summary where unit_oid = u1 and policy_oid
>= p1 and prefix = 'H'
>
>PS. to_timestamp() - функция в postgresqlЛюди а как to_timestamp() в мускуле сотворить?
select FROM_UNIXTIME(t_from) ...
?
>select FROM_UNIXTIME(t_from) ...
>?Спасибо. Разобрался.
В скриптах в /usr/local/etc/rc.d/ следует сделать обработку параметров start/stop, иначе, как описано в статье, netams будет запускаться два раз - при загрузке и при шатдауне.
Точнее только делать попытку и тут же завершаться - нетамс нельзя запустить дважды. Но чисто этически nuclight прав, в этих скриптах положено делать обработку параметров, чтобы не терять несколько секунду при выключении/перезагрузке или например чтобы иметь возможность легко перезапустить нетамс. Но всё будет работать и так в любом случае.
Было бы хорошо если бы Bachilo Dmitry описал бы процесс не только ipfw+natd, но и привёл бы способ настройки всего этого на IPF/PF
да я бы с радостью, вот только NeTAMS, на сколько я знаю, с ними не работает.
хм, но можно заставить (по крайней мере для pf) :)
в сервисе processor у netams добавляем (например)
access-script "/root/bin/access.sh"access.sh:
#!/bin/shcase "$1" in
DENY)
pfctl -q -t netams -T delete $3
pfctl -q -k $3
;;
ALLOW)
pfctl -q -t netams -T add $3
;;
esacв pf.conf
table <netams> persist file "/usr/local/etc/netams.hosts"
....
nat on $ext_if inet proto tcp from <netams> to ...
...
pass in on $int_if inet proto tcp from <netams> ...данные в нетамс брать, например, с ng_netflow
Ну то есть всё таки с нетфлоу, а не с ПиЭф.
Спасибо за полезное дополнение.
а пробовал кто-нибудь настройить входящий в состав netams admintool?
Лично у меня с этим возникли сложности, например по не понятным для меня причинам он не инсталируется сам, нужно его копировать в ручную, затем почему-то нигде не написано что необходимо создать дополнительную таблицу users и два объязательных поля в ней login и password . Но даже после создания этой таблицы не понятно в каком формате должен там находиться пароль и как кроме как в ручную, эту таблицу заполнять? Может кто-нибудь что-нибудь расскажет об этом? Буду примного благодарен.
Спасибо огромное за статью!
А как быть если используется связка ipfw+ipnat?
А возможно ли на NetAms сделать подобное:
Есть 2 машины, одна из которых фаервол,НАТ,Прокся,ВПН на ней нужно будет заупскать коллектор(и отсылать информацию на хост с ядром), а другая под ядро биллинга, там же будет лежать база, радиус итд, итп.
Возможно ли это реализовать с версией 3.3.5?Как будут создаваться правила фаервола при коннекте клиента или при оканчании денег на его счету?
Есть ли поддержка ldap?
___
Спасибо.
->А как быть если используется связка ipfw+ipnat?
сам копаю в эту сторону, нужно использовать нетграф! ИМХО использовать подсчёт по divert- непарвильно, а как тогда arp считать?
http://netams.com/doc/kb_netgraph.html#1
Цитата:
Обратите внимание NeTAMS окутывает диверт в natd своими правилами, но слушает внутренний интерфейс, а не внешний.
не верно в официальной доке написано что должно быть наоборот. Так как здесь написано работать не будет.
Мало того что оно работает на очень многих серверах в данный момент, так еще и ваш вариант просто нелогичен. Вы даже в ssh не попадете из вне в таком случае. Нетамс пропускает пакеты только от машин, прописаных для учета трафика, вы же не будете прописывать в него весь интернет? Должно быть именно на внутреннем интерфейсе.
Очень хорошая статья, все понятно...
не понятно как должно выглядить правило диверт.
ведь диверт порт перебрасывает, а мне нужно снимать весь трафик.
поясните новечку плизз :-)
Диверт заворачивает то, что скажете, в моем примере, весь трафик идущий по внутреннему интерфейсу считается нетамсом.
я у себя правило диверт вот такое сделал... Но что то ничего не работает :-(ipfw add 10000 divert natd all from any to any xl1
Что самое интерестное, роутинг работает, траффик идет, но при попытке обращения к
http://192.168.2.101/stat страница не открывается.
плизз помогите :-)
>я у себя правило диверт вот такое сделал... Но что то ничего
>не работает :-(
>
>ipfw add 10000 divert natd all from any to any xl1
>
>Что самое интерестное, роутинг работает, траффик идет, но при попытке обращения к
>
>http://192.168.2.101/stat страница не открывается.
>плизз помогите :-)
Создай юнит с внешним ip
Подскажите плз, как правильно прописать в файлике (допустим) target file /usr/netams/port_ip.txt
порты которые должны входить в это правило?Поидее будет вяглядеть примерно так:
172.22.0.0 /16
172.31.255.5 /255.255.255.255
*:3128
172.22.0.0:3128 /16
Почему тут удаляют посты без мата и тролинга и рекламы?
netams не разрабатывается дальше, комунити вялое (поглядите на форум), автор уже лет 5 как забил на проект. Проект негибкий и подходит только для небольшого офиса в 20-50 компов. Будущего заведомо нет.