Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
||||||||||||||||||||||||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
|
Итак, mysql-server5.0 и клиент поставились, попробуем начать установку нетамса...чего ему не хватит...
Идем в
|
Ага, в портах версия 3.4.0rc2. Ну да Бог с ним. У мну то на самом деле еще моложе :)
|
Среди прочих присутствует опция
|
С ее помощью можно будет ограничивать скорость пользователям самим нетамсом. Раньше я ее использовал, потом отказался в сторону pipe в ipfw.
Далее, ставим по-умолчанию.
Что-то долго не мог найти пакет. Но в итоге нашел и все установил:
|
Ну что ж далее по-порядку.
|
Конфиг по-умолчанию такой:
!!! Строки взятые в квадратные скобки [...] - нужно писать в одну строку !!!
|
Я пока оставил его таким, ничего не меняя.
Далее делаем
|
стартуем и проверяем нетамс
|
и того у нас все гут.
Далее делаем все по документации. Мы видим, что нетамс у нас слушается на 20001-м порту.
В конфиге выше была строка:
|
из нее видно что админ нетамса у нас пользователь по имени admin, и пароль его aaa.
заходим телнетом на 20001-й порт
|
Далее как гласит дока, пробуем выполнить команды "html", "save", "show version", "show config".
|
если все так как у меня, то ура, мы установили нетамс :)
Далее я на всякий случай проверил, создал ли он базу.
|
все хорошо. ну что ж , тогда можно вернуться на реальный сервак и продолжить на нем.
Кроме mysql нам понадобится еще настроенный web-server, я использую apache.
С его помощью пользователи смогут смотреть статистику.
Теперь выкладываю свой конфиг и рассказываю что и зачем.
!!! Строки взятые в квадратные скобки [...] - нужно писать в одну строку !!!
|
Итак, по-порядку.
сперва меняем логин/пароль админа нетамса.
!!! Строки взятые в квадратные скобки [...] - нужно писать в одну строку !!!
|
пока он в открытом виде, после рестарта нетамса, но закриптуется.
Также oid можно не ставить, Нетамс его сам поставит.
Далее
|
Сильна расписывать не буду, т.к. все есть в доке. В кратце: нетамс слушает 20001-й порт,
висит на локалхосте и имеет максимальное число одновременно открытых подключений к процессу 6.
Дальше:
!!! Строки взятые в квадратные скобки [...] - нужно писать в одну строку !!!
|
Основное, это сервис policy, определяет правило, или политику, по которой для данного объекта (NetUnit) будет производиться фильтрация или подсчет трафика. Т.к. я описываю минимальную конфигурацию, то я использую policy ip, т.е. подсчет всего трафика, не разбивая его по протоколам и портам (нетас это умеет).
Строка restrict all drop local pass, говорит о том, что трафик с ИП-адресов не описанных в конфигурации нетамса пропускаться не будет. По-этому нужно включить и внешний ИП-самого сервера.
далее, я создал один unit, описывающий сеть, а также описал каждого пользователя.
Тут подсчет трафика идет по ip из сети 10.0.0.0/24. Опция description позволяет задать любое описание юнита, в моем случае, это ИП-машины пользователя (у меня пользователи имеют статический Ип из сети 192.168.10.0/24, а при подключении по впн им выдается ИП из диапазаона 10.0.0.0/24). Далее идет пароль доступа к страничке со статистикой, ну и указание каким policy мы ограничиваем пользователя, у меня всех ограничиваем полиси ip.
далее.
|
тут описывается собственно хранилище данных. Указываем, что мы используем базу данных mysql, что она находится на этом же хосте, что и нетамс (localhost), а так же указываем логин/пароль к базе нетамса (ведь от рута работать это не есть гут ;) )
Что бы установить логин/пароль для базы нетамса, заходим в mysql и даем команду:
|
дальше
|
описывается тип и источник данных. В нашем случает тип это ip-traffic, а источник, это divert 199. Т.е. что бы трафик попадал нетамсу, его нужно на него как-то завернуть, я использую правило divert в ipfw. Правила НАТа на НЕТАМС должны обязательно обрамлять правила, которым НАТится сеть в интернет.
|
далее
|
сервис monitor, тут я указал размещение файлика mon_netams.log, а так же для каких юнитов ведется сам монитор. Монитор - это лог кто куда ходил. Так же не забудьте описать ротирование этого файла, иначе он может занять все свободное пространство на разделе.
Сервис login и quota, я опишу в следующей статье.
И последний
|
Сервис html, описывает странички статистики. Здесь мы указываем путь, куда их генерить, переодичность и url к ним.
Так же описываем тип доступа, в данном случае, включен механизм htaccess, который позволяет разграничить доступ пользователям только к своим страницам статистики исходя из логина/пароля.
Теперь опишем секцию нетамса в апаче:
|
Тут так же с примером разграничения доступа к статистике по ИП-адресам.
Далее делаем stop/start нетамсу, рестартуем апач. И через некоторое время ждем появления статистики по указанному url (http://192.168.10.100/stat/). Тут спросит логин/пароль админа.
(если не хочется ждать, можно зайти телнетом и выполнить команду html).
Для доступа пользователей к своей страничке идем по адресу: http://192.168.10.100/stat/unit, (где unit - имя пользователя в нетамсе).
Так же есть хорошая примочка у разработчиков. Чтобы каждый раз не ходить телнетом, есть так называемый netamsctl.
netamsctl - примитивный telnet-клиент, позволяющий передать одну или несколько команд для работающего netams. Он работает через обычный TCP-сокет. Открывается соединение, отправляется команда, получается и выводится на экран ответ сервера.
Итак настроим его.
|
Замечательно, присутствует. В своем домашнем каталоге (пользователя, от которого будет выполняться) создаем файл .netamsctl.rc такого содержания:
|
ну и порт, если вы изменили дефолтовый.
Далее работать примерно так:
|
Так же возможно задать на исполнение сразу несколько команд, если разделить их комбинацией " && ". Это крайне полезно, если необходимо передать команду какому-нибудь сервису:
|
Разработчики рекомендуют все юниты заводить именно с помощью netamsctl, затем делать save. При этом нет необходимости рестартовать нетамс.
У меня исторически сложилось так, что я описываю все в конфиге ручками. а затем рестартую нетамс. Мне так удобнее, например для бекапирования, или просто посмотреть предыдущую запись...в общем имхо :)
размещено: 2008-03-04,
последнее обновление: 2008-03-04,
автор: schizoid
VIP-stranger, 2008-03-04 в 16:19:17
Ты заворачиваешь трафик с помощью ipfw, с этим все понятно,но вот не подскажешь как завернуть с помощью pf,как не пытался так ничего не вышло.
freeman_tnu, 2008-03-04 в 16:49:07
да, насчет pf тоже интересно очень даже, особенно когда ipfw это правила, а pf только чисто нат
schizoid, 2008-03-04 в 19:59:24
думаю стоит посмотреть в сторону netflow
VIP-stranger, 2008-03-05 в 8:52:55
Ну это и понятно,что через netflow,а можно поподробнее??
Как будет выглядеть вот это при использовании pf
service data-source 1
type ip-traffic
source divert 199
layer7-detect urls
и как завернуть с помощью pf завернуть трафик в neatms ведь в pf нет divert??
emptyman, 2008-03-05 в 11:23:14
VIP-stranger
поправьте меня, но ответ НИКАК... netams не работает с pf
а модуль netflow не корректно работает с версией больше 6.0 :(
schizoid, 2008-03-05 в 11:36:49
вот чего не знаю, того не знаю...
неужто тада делать костыль и заворачивать траф дивертом (ipfw), а фаерволить уже pf-ом?
grave, 2008-03-05 в 11:42:18
Уважаемые, давайте лучше обсудим ситуацию с настройкой схемы netams + transparent squid
schizoid, 2008-03-05 в 11:47:42
та не вопрос, только не здесь, а на форуме и будет как отдельная статься
nobody, 2008-03-05 в 13:47:22
хм, но можно заставить (по крайней мере для pf) :)
в сервисе processor у netams добавляем (например)
access-script "/root/bin/access.sh"
access.sh:
#!/bin/sh
case "$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
artem, 2008-03-11 в 13:04:30
## Configuring NeTAMS for build targets... ##
FreeBSD operating system...
With FreeBSD 5 and above will have netgraph module...
Will have MYSQL support
[ /usr/local/lib/mysql /usr/local/include/mysql ]
Will have BILLING service
Will have RADIUS support
Will have PAM support (experimental)
## Configuration file was built. ##
##########################################################
cd lib && make library
gcc -pipe -O2 -I../src -I./ -DHAVE_BW -DFAST_FW_CHECK -DLAYER7_FILTER -DFREEBSD -DUSE_MYSQL -I/usr/local/include/mysql -DHAVE_BILLING -DUSE_LIBRADIUS -DHAVE_PAM -I ../src -I./radlib -c radlib/radlib.c
ar rc libradius.a radlib.o
gcc -pipe -O2 -I../src -I./ -DHAVE_BW -DFAST_FW_CHECK -DLAYER7_FILTER -DFREEBSD -DUSE_MYSQL -I/usr/local/include/mysql -DHAVE_BILLING -DUSE_LIBRADIUS -DHAVE_PAM -Wno-format-zero-length -I./libcli -c libcli/libcli.c
ar rc libcli.a libcli.o
gcc -pipe -O2 -I../src -I./ -DHAVE_BW -DFAST_FW_CHECK -DLAYER7_FILTER -DFREEBSD -DUSE_MYSQL -I/usr/local/include/mysql -DHAVE_BILLING -DUSE_LIBRADIUS -DHAVE_PAM -c lib.c
ar rc libnetams.a lib.o
cd src && make all
touch opt_netgraph.h
make -f Makefile.kmod
Warning: Object directory not changed from original /usr/ports/net-mgmt/netams/work/netams-3.4.0rc2/src
@ -> /usr/src/sys
machine -> /usr/src/sys/i386/include
cc -O2 -fno-strict-aliasing -pipe -g -Werror -D_KERNEL -DKLD_MODULE -std=c99 -nostdinc -I/usr/ports/net-mgmt/netams/work/netams-3.4.0rc2/src -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c ng_netams.c
cc1: error: unrecognized command line option "-Wno-pointer-sign"
*** Error code 1
Stop in /usr/ports/net-mgmt/netams/work/netams-3.4.0rc2/src.
*** Error code 1
Stop in /usr/ports/net-mgmt/netams/work/netams-3.4.0rc2/src.
*** Error code 1
Stop in /usr/ports/net-mgmt/netams/work/netams-3.4.0rc2.
*** Error code 1
Stop in /usr/ports/net-mgmt/netams.
*** Error code 1
Stop in /usr/ports/net-mgmt/netams.
*** Error code 1
Stop in /usr/ports/net-mgmt/netams.
web00#
у меня не компилицца 6.3 в чем прикол?
artem, 2008-03-11 в 14:05:17
а кто юзал sams? он чем то хуже?
http://sams.irc.perm.ru/
поиск по портам сказал что такого не знает нашел ручками
/usr/ports/www/sams
artem, 2008-03-11 в 14:08:42
уппс не заметил что он типа sarga на базе squid
schizoid, 2008-03-11 в 15:34:22
2 artem, хз чегшо не ставится. я ставил на чистую ОС с обновленными портами и установленным mysql-server-5.0
Da1VeR, 2008-03-23 в 23:20:29
Хм.. вот интересно, как у тебя так автоматически создалась база в мускуле ? если нигде неуказано какой лог и пас для конекта ?
freeman_tnu, 2008-03-26 в 19:49:15
2Da1VeR Отредактируйте в конфиге нетамса
service storage 1
type mysql
host localhost
user LOGIN
password PASSWORD
accept all
рестартани демона и будет вам счастячко =)
torvik, 2008-04-10 в 16:39:23
http://netams.com/doc/index.html.- ссылка не работает из-за точки :-)
monstr-sheff, 2008-04-14 в 11:37:06
коменты ЭТО хорошо а сносочку на форум этой темы ни как???
Al, 2008-04-16 в 10:02:51
насчет pf..
не юзал,но должно помочь: dup-to – создает дубликат пакета.
дублируем весь трафик на еще одну карту сервера статистики. Эта карта нигде не должна использоваться и адрес на ней - левый. Я делал с циской, там зеркалишь весь трафик на определенный порт комутатора. В нетамсе
service data-source 1
type libpcap
source sk0
rule 11 "ip"
================
ifconfig sk0
sk0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_MTU>
inet 1.1.1.1 netmask 0xffffffff broadcast 1.1.1.1
Al, 2008-04-16 в 10:04:11
а если статистика собирается на шлюзе - sk0 -просто внешний интерфейс
Al, 2008-04-16 в 10:12:08
pass out on xl0 dup-to sk0:1.1.1.1 from any to any
как-то так..
ZVER, 2008-11-20 в 10:05:40
В случае с PF на FreeBSD можно использовать ng_netflow. именно ng_netflow и собирает данные по трафику, PF тут вообще не при делах.
BSD, 2009-08-21 в 7:04:37
Это выходит что если у тя netams отвалится по какой нить причине, пакеты уже проходить через NAT не будут?
#NeTAMS-NAT-NeTAMS-out
${fwcmd} 1000 add divert 199 ip from 10.0.0.0/24 to any out xmit ${oif}
${fwcmd} 1100 add divert 8668 ip from 10.0.0.0/24 to any out xmit ${oif}
#NeTAMS-NAT-NeTAMS-in
${fwcmd} 1195 add divert 8668 ip from any to me in recv ${oif}
${fwcmd} 1200 add divert 199 ip from any to 10.0.0.0/24 in recv ${oif}
Правильнее правила заворота на нетамс описать в конфиге самого нетамса, так как в том случае если он отвалится то правила из ipfw исключатся, если я не ошибаюсь.
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [22 шт.]