Страница 1 из 2

NeTAMS часть 2

Добавлено: 2008-02-27 1:03:19
schizoid
Итак, продолжим про НеТАМС.
1. Ограничение скорости в НеТАМС.
При установки нетамса, появляется примерно такое окошко

Код: Выделить всё

#make install
                                                                      Options for netams 3.4.0.r2        
    
                                               [ ] DEBUG  Build with debug symbols                         
                                               [ ] BW     Build with bandwidth limitation functionality    
                                               [ ] HASH   Build with HASH support                          
Здесь ставим галочку на против строки BW Build with bandwidth limitation functionality .
Если честно, то я так не пробовал. Когда я ставил на сервак, этой опции еще не было, а пересборка производилась таким путем:

Код: Выделить всё

make distclean && FLAGS=-DHAVE_BW make
Но думаю, что с включенной опцией оно уже умеет делать правильно.
Итак нетамс собрался. (Более подробно по начальной настройке нетамса читайте в предыдущей статье).

Из всего конфига нас интересует сервис processor.

Код: Выделить всё

service processor
lookup-delay 30
flow-lifetime 180
policy oid 0B4940 name ip target proto ip
restrict all drop local pass
unit net oid 022222 name stah_all ip 10.0.0.0 mask 255.255.255.0 description "net 10.0.0.0" password 123 no-local-pass acct-policy ip
unit host oid 033333 name server ip 193.16.хх.хх
unit host oid 000001 name eugene ip 10.0.0.1 description "ip 192.168.10.20" email eugene@my.domen.ru password 123 bw 256.000K acct-policy ip
unit host oid 000002 name agent ip 10.0.0.2 description "ip 192.168.10.141" password 123 bw 256.000K  acct-policy ip
unit host oid 000003 name chetkiller ip 10.0.0.3 description "ip 192.168.10.21" password 123 bw 256.000K  acct-policy ip
unit host oid 000004 name sirius ip 10.0.0.4 description "ip 192.168.10.2" password 123 bw 256.000K  acct-policy ip
unit host oid 000005 name TEAC ip 10.0.0.5 description "ip 192.168.10.18" password 123 bw 256.000K  acct-policy ip
Как видим, ограничение скорости включается весьма просто, простым добавлением bw 256.000K. Так же есть возможность организации асинхронного канала ([bw { speed in speed out | speed } ]). Например:

Код: Выделить всё

unit host oid 000001 name eugene ip 10.0.0.1 description "ip 192.168.10.20" email eugene@my.domen.ru password 123 bw 256.000K in 128.000K out acct-policy ip
Вот собственно и все.

2. Сервис квота в НеТАМС.
Основные свойства:
1. Хранение информации о квотах клиентов в базе SQL. В настоящий момент поддерживается MySQL и Postgres.
2. Возможность задания политики учета (контроля), параметров оповещения по умолчанию.
3. Возможность задания всех параметров квот по трафику индивидуально для каждого юнита. Это величины входящего, выходящего и суммарного трафика начиная с момента начала часа, дня, недели и месяца.
4. Возможность задания порога "мягкого срабатывания" в процентах от "жесткой" квоты индивидуально для каждого юнита.
5. Возможность гибкого управления параметрами оповещения при срабатывании и возвращении квоты.
Сервис квота в конфиге включается строчками:

Код: Выделить всё

service quota
policy ip
notify soft {owner} 
notify hard {owner} username
notify return {owner}
Опишем опции.
policy ip - Задает политику учета (acct-policy), которая будет использоваться при проверке квот. Это политика по умолчанию для всех, существует возможность переопределить ее для конкретного юнита. Если не указано, используется первая политика из определенных policy XXX сервиса processor.
Секции notify задают кому будет слаться оповещение о превышении квоты (soft - мягкая квота, hard - жестакая квота,return - восстановление работы, когда период действия квоты закончился). Нужно что бы в описании юнита присутствовал его e-mail (опция email eugene@my.domen.ru). Здесь {owner} - владелец юнита, username - имя или OID пользователя (администратора).
Далее, задаем квоту:

Код: Выделить всё

netamsctl "service quota && set name eugene policy ip  day 5M sum && exit"
Здесь мы задали юниту eugene суммарную дневную квоту в 5Мб при полиси ip.
Здесь я не все опции показал, многие из них установлены по-умолчанию:

Код: Выделить всё

soft_treshold 80 - порог мягкой квоты
delay 10 - Интервал времени между периодическими проверками всех юнитов на наступление момента срабатывания квоты. Задается в секундах.
notify_soft 1 - сообщение шлется владельцу юнита
notify_hard 1 - сообщение шлется владельцу юнита
notify_return 1 - сообщение шлется владельцу юнита
Также можно указать и другие временные интервалы ([hour ... ], [day ...], [week ...], [month ...]), amount - значение квоты (в байтах, но можно использовать модификаторы K, M, G), {in|out} - направление квотируемого трафика, {sum} - суммарный трафик (в обоих направлениях).

Просмотреть установленную квоту можно либо на страничке статистики (только для админа), либо командой netamsctl "show quota".

Отменить установленную квоту можно так:

Код: Выделить всё

netamsctl "service quota && set name eugene polily ip day 0 sum && exit"
Вот и все.

3. Сервис login.
В кратце - это веб-морда для пользователя, с помощью которой он может заблокировать/разблокировать свой аккаунт.
Настраивается так:

Код: Выделить всё

service login
storage 1
set no name eugene password 123456 inact 3000 abs 0
relogin yes
При рестарте нетамса, создастся еще одна таблица в базе netams.
Здесь опции:
unit_oid - Идентификатор (OID) юнита, является уникальным ключом к базе данных
password - Пароль пользователя. Никогда не пытайтесь поменять его извне программы путем прямой записи в SQL.
inact - Величина таймаута неактивности для данного пользователя
abs - Величина абсолютного таймаута для данного пользователя
last_changed - Время (в формате UNIXTIME) последнего изменения записи
last_opened_time - Время (в формате UNIXTIME), когда был в последний раз предоставлен доступ юниту
last_opened_ip - IP-адрес, с которого был предоставлен доступ юниту
last_opened_mac - MAC-адрес, с которого был предоставлен доступ юниту
def_state - Режим доступа этого юнита по умолчанию (например, сразу после старта программы). 0 означает отсутствие доступа, 1 означает разрешения доступа.
curr_state - Текущий режим доступа этого юнита. 0 означает отсутствие доступа, 1 означает разрешения доступа. К сожалению, по наступлении таймаута не сбрасывается (баг).
Теперь настраиваем апач для понимания cgi скриптов:

Код: Выделить всё

LoadModule cgi_module libexec/apache2/mod_cgi.so
...
ScriptAlias /cgi-bin/ "/usr/local/www/cgi-bin/"
<Directory "/usr/local/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
...
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
Перегружаем апач.
Далее идем в /usr/ports/net-mgmt/netams/work/netams-х.х.х/cgi-bin (правда если не делали clean при установке, иначе нуно будет залезть внуть пакета). Тут нам понадобятся 3 файла:

Код: Выделить всё

-rwxr-xr-x  1 root  wheel   479 16 фев 02:13 config.cgi
-rwxr-xr-x  1 root  wheel  3707 16 фев 02:30 login.cgi
-rwxr-xr-x  1 root  wheel  3267 21 июн  2005 netams_api.pl
Копируем все это счастье в /usr/local/www/cgi-bin-dist, и подправляем под свою конфигурацию. А именно:

Код: Выделить всё

#
#-----------------------------------------------------------------------------
# $Id: config.cgi,v 1.5 2005/04/06 16:21:49 anton Exp $

# Data required to do a script login, change this
# login to netams
$sc_host="localhost"; $sc_port=20001; $sc_user="LOGIN"; $sc_passwd="PASSWORD";

#login to database
$mysql_host="localhost"; $mysql_login="netams"; $mysql_password="PASSWORD"; $mysql_dbname="netams";

#log events
$log_to_events="yes";

#URL to statistic
$statistic_url="/stat";
Ну в прнципе и все. Еще в login.cgi есть описание картинки, которая отображается в веб-морде. Там можно изменить путь к любой своей картинке, подходящей по размеру ;). Я заменил на свою:

Код: Выделить всё

<tr align=center><td width=100%><img src="/stat/images/logo_sm.jpg" width="376" height="60" alt="" border="0" align=left>
Ну вот вроде и все, пробуем заходить по адресу http://my.domen.ru/cgi-bin/login.cgi с логином/паролем, что указаны в set no name eugene password 123456 inact 3000 abs 0. Т.е. логин admin, пароль 123456.

Должно все получиться, иначе смотрим логи апача :)

P.s.: есть мысль сделать доступ к веб-морде по протоколу https, но пока не доходят руки. Когда дойдут - опишу ;)

Re: NeTAMS часть 2

Добавлено: 2008-02-27 1:09:01
Alex Keda
это всё одна статья будет?

Re: NeTAMS часть 2

Добавлено: 2008-02-27 1:13:11
schizoid
думаю две, а то такое полотно некрасиво будет выглядеть.
Я просто позже еще 1 часть опишу.

Re: NeTAMS часть 2

Добавлено: 2008-02-27 1:16:01
serge
имхо, лучше б на сайт сразу постить. В форуме потеряться может.

Re: NeTAMS часть 2

Добавлено: 2008-02-27 1:19:18
schizoid
так сырая еще. нехай пару дней повисит, если никто ниче плохого не скажет - поцепим на сайт.

Re: NeTAMS часть 2

Добавлено: 2008-02-27 1:20:57
serge
я, например, пишу на сайт сразу и параллельно сабж на форуме создаю. в конце статьи ссылка на форум. все поправки, по мере их поступления, вношу в статью.

Re: NeTAMS часть 2

Добавлено: 2008-02-27 1:24:18
schizoid
ясна, ог, появится 3-я часть, выложу фсе сразу на сайт.

Re: NeTAMS часть 2

Добавлено: 2008-03-01 0:20:38
schizoid

Re: NeTAMS часть 2

Добавлено: 2008-03-01 0:30:49
Alex Keda
schizoid писал(а):http://www.lissyara.su/?id=1609
замечания аналогичны первой части

Re: NeTAMS часть 2

Добавлено: 2008-03-01 10:11:09
schizoid
прикол в том, что в опере и в експлорере по-разному отображается...
ог. все поправлю.

Re: NeTAMS часть 2

Добавлено: 2008-03-01 11:01:23
schizoid
поправил, так нормально? а то у мну разрешение выскокое, все влазит и так...

Re: NeTAMS часть 2

Добавлено: 2008-03-01 11:17:54
Alex Keda
ага.
публикуем?

Re: NeTAMS часть 2

Добавлено: 2008-03-01 11:19:24
Alex Keda

Код: Выделить всё

unit host oid 000005 name TEAC ip 10.0.0.5 description "ip 192.168.10.40" 
password 123 acct-policy ip  
у меня вопрос.
ты линные строки как-то пометил, что переносил - или ему до лампочки на переносы?

Re: NeTAMS часть 2

Добавлено: 2008-03-01 11:41:54
schizoid
от блин, фигня, не понимает перенесенные строки...ща поправлю

Re: NeTAMS часть 2

Добавлено: 2008-03-01 11:49:00
schizoid
блин, а как пометить перенос строки?

Re: NeTAMS часть 2

Добавлено: 2008-03-01 13:37:58
Alex Keda
schizoid писал(а):блин, а как пометить перенос строки?
а как бы ты в конфиге сделал?
в шелл-скриптах можно юзать

Re: NeTAMS часть 2

Добавлено: 2008-03-01 21:29:56
schizoid
та вот не хавает оно это , пробовал :(
лана, завтра на работе че-нить придумаю

Re: NeTAMS часть 2

Добавлено: 2008-03-01 21:36:42
Alex Keda
конфиг вообще переносов не понимает?
тогда тока подписывать - следующие две строки - это одна, и обозначать отступом вторую...

Re: NeTAMS часть 2

Добавлено: 2008-03-01 22:59:41
alex3
спс за статью... жалко ранее не сказал, что выложишь... я почти вкурил доки на оффсайте.

Re: NeTAMS часть 2

Добавлено: 2008-03-01 23:22:17
schizoid
ну я по всякому попробовал, не видит переноса строки. как-нить опишу. завтра буду на работе, есл ибудет время опишу... потом фпечать

Re: NeTAMS часть 2

Добавлено: 2008-03-02 10:16:39
schizoid
все, поправил, и вроде даже читабельно осталось...

Re: NeTAMS часть 2

Добавлено: 2008-03-02 10:38:41
Alex Keda

Код: Выделить всё

!!! Строки взятые в квадратные скобки [...]  - нужно писать в одну строку !!!
добавь
и без '[' и ']' =))

Re: NeTAMS часть 2

Добавлено: 2008-03-02 10:40:53
Alex Keda
таки что - публикуем?
по поводу второй части - может переименовать в netams2 типа того - в меню как-то не смотриться =)

Re: NeTAMS часть 2

Добавлено: 2008-03-02 10:45:36
schizoid
ага, вижу. переименую...

Re: NeTAMS часть 2

Добавлено: 2008-03-04 13:26:54
schizoid
публиковал?