Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  trafd & MySQL
  WEB-морда к траффику
  SNMP
  ipacctd
  pfctl
  ntop 4.10
  NeTAMS
  NeTAMS 2
  SQUID+SAMS +Rejik-(NCSA)
  ng_ipacct + squid
  SQUID+SAMS +Rejik-(NTLM)
  SQUID+SAMS +Rejik-(ADLDAP)
  mpd5 + radius + ng_car + Abills
  darkstat
  Netams 3.4.5
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> подсчёт трафика —> NeTAMS 2

NeTAMS - продолжение (login, bandwith, quota)

Автор: 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 poliсy 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, но пока не доходят руки. Когда дойдут - опишу ;)

P.p.s: выяснилось, что веб-мордие от версии 3.4.0 не работоспособно, берите или от версии 3.3.5 или 3.4.1.
P.p.p.s: Синтаксис выше приведенных команд касается NeTAMS версии 3.3.5. Для 3.4.х он немного отличается.



размещено: 2008-03-04,
последнее обновление: 2008-05-07,
автор: schizoid

оценить статью:

NarkomanLove, 2008-03-05 в 20:10:46

Статья бес спорно хорошая и очень полезнаю. Уже давно пользуюсь netams. А последнее пару недель усиленно в него углубился. И собственно по netams: мне так и не удалось завести правило restrict all drop local pass, при таком раскладе все равно все лезут в инет, даже если они не прописаны в netams.cfg. Еще одна проблема столкнулся сегодня: после добавления 30 пользователей с квотами, и работы в течении пару суток, netams начал тупить. Удаленная консоль просто зависает при команде show config.. Через стандартный скрипт netams не отключаеться. Попробую в ближайщую неделю перенести шлюз с netams на другой сервер и там посмотреть его работу.

schizoid, 2008-03-05 в 20:28:47

про restrict all drop local pass у тя в фаере divert или tee ?

NarkomanLove, 2008-03-05 в 22:25:24

00052  18151  2506399 divert 199 ip from any to any in via fxp0
00053  17833 12533397 divert 199 ip from any to any out via fxp0

тему про это дело поднимал здесь:
http://www.netams.com/ubb/cgi-bin/ultimatebb.cgi?ubb=get_topic&f=2&t=003284

schizoid, 2008-03-06 в 23:09:42

а НАТа у тебя нет вообще?

NarkomanLove, 2008-03-08 в 16:01:25

Есть идет правилами ниже.
А что?
ipfw add divert natd all from any to any via rl0
rl0 -на прова.
Пробывал и на VmWare без ната.
один чорт не хочет работать.
А у тебя работает?

schizoid, 2008-03-08 в 16:10:47

у меня работает. посмотри внимательнее как у меня стоят правила на нетамс и нат.

MAPTbIH, 2008-03-28 в 11:39:45

если у кого нибудь возникнут траблы при авторизации через login.cgi читаем тут, сам замучился.
http://www.netams.com/ubb/cgi-bin/ultimatebb.cgi?ubb=get_topic&f=2&t=003012

CoSS, 2008-03-31 в 23:55:02

Вот это не пройдёть
netamsctl "service quota && set name eugene polily ip day 0 sum && exit"

В 3.4 изменена работа с консолью, поэтому все или все-частично по другому, в частности для того что бы зайти в service quota нужно

   telnet localhost 20001
   login
   pass
   >enable
   #con term
   (config)#service quota
   (config-quota:0#)#


    Что бы вы не делали - в начале нужно набрать enable после чего можно просмотреть список команд shift+?. Для внесения изменений набрать con term это сокращенно от configure terminal, затем вновь можно набрать shift + ? выбрать сервис и вносить изменения, после внесения изменений не забывать save

schizoid, 2008-04-01 в 18:21:07

ну прям цисочники :)

а ведь верно. скоро буду ставить новій НеТАМС, поправлю статью, когда все попробую руцями

m1h, 2008-04-02 в 15:17:39

Странно... но у меня почему-то bw не заработал...
изначально ставил порт с Build with bandwidth limitation functionality... потом пересобрал с -DHAVE_BW
Пакеты идут через divert...
Трафик считает, но почему-то не режет.
Можт кто сталкивался?

Grishin_U_S, 2008-04-20 в 19:48:22

В статье ошибка :
netamsctl "service quota && set name eugene polily ip day 0 sum && exit"

BuZZ, 2008-10-23 в 22:44:00

cmd: service quota && set name shoten policy ip day 5M sum && exit
Invalid command "service"

>Invalid command "set"

В чем грабли =(

BuZZ, 2008-10-23 в 22:46:41

Sorry =) Ответ выше =)

godlike, 2009-05-31 в 23:19:03

Аналогично не заработал bw.
Порт - самый новый с сайта netams - 3.4.2c
Конфиг - копия статьи.
Не режет.
Кому удалось выяснить причину?

schizoid, 2009-06-01 в 0:31:46

конфиг с порта 3.3.5
в новом возможно именился синтаксис. лучше на счет этого глянуть на оф сайте

godlike, 2009-06-01 в 1:18:49

Спасибо большое!
Благодаря этой наводке, я посмотрел, что синтаксис не изменился, и от отчаянья придумал, как шейпить по другому=)

schizoid, 2009-06-01 в 8:52:32

ну я сам тоже давно уже режу скорость фаерволом


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 18 чел.
За последние 30 мин было: 70 человек
За сегодня было
14594 показов,
956 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0431 секунд
Из них PHP: 34%; SQL: 66%; Число SQL-запросов: 77 шт.
Исходный размер: 109331; Сжатая: 21570