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
Если честно, то я так не пробовал. Когда я ставил на сервак, этой опции еще не было, а пересборка производилась таким путем:
Код: Выделить всё
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
Код: Выделить всё
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"
Здесь я не все опции показал, многие из них установлены по-умолчанию:
Код: Выделить всё
soft_treshold 80 - порог мягкой квоты
delay 10 - Интервал времени между периодическими проверками всех юнитов на наступление момента срабатывания квоты. Задается в секундах.
notify_soft 1 - сообщение шлется владельцу юнита
notify_hard 1 - сообщение шлется владельцу юнита
notify_return 1 - сообщение шлется владельцу юнита
Просмотреть установленную квоту можно либо на страничке статистики (только для админа), либо командой 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
Здесь опции:
Теперь настраиваем апач для понимания cgi скриптов: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 означает разрешения доступа. К сожалению, по наступлении таймаута не сбрасывается (баг).
Код: Выделить всё
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
Код: Выделить всё
#
#-----------------------------------------------------------------------------
# $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";
Код: Выделить всё
<tr align=center><td width=100%><img src="/stat/images/logo_sm.jpg" width="376" height="60" alt="" border="0" align=left>
Должно все получиться, иначе смотрим логи апача
P.s.: есть мысль сделать доступ к веб-морде по протоколу https, но пока не доходят руки. Когда дойдут - опишу