Мой сайт
Главная | Каталог статей | Регистрация | Вход
Среда
12.12.2018
11:29
Приветствую Вас Гость | RSS
Главная » Статьи » Linux и Unix

NetAMS Об окончательном решении
Документашка эта писалась для себя, чтобы не забыть, и друзьям, чтоб не отвечать на одни и те же вопросы тысячи раз. Она писалась в разное время и я не всегда помнил про что и как. Возможно, часть сведений уже устарела, но, по крайней мере, это будет точка отсчёта для того кто "читал официальный мануал и ничо нипонял". Надеюсь кому-нибудь поможет. Возможно(возможно) это безграмотный бред. Возможно(возможно) я всё делал неправильно. Но у меня работает-всё считается и всё такое. Если увидели косяки-пешите, я буду только рад исправить. Ну и крайнее. НЕТАМС-СИСТЕМА УЧЁТА. штатными средствами предоставлять кто и куда ходил-бессмысленно, а,зачастую, невозможно. Чтобы "кто куда ходил"-это другое.
итак, поехали.

Итак.
Сразу оговорюсь-до ума мне довести netams не дали. Тут не рассматриваются случаи привязки по мак и ограничение скорости, хотя примеры я приведу. Автосоздание юнитов я до конца не отработал, но поигрался с ним и особых подводных камней не увидел.
Нетамс можно поставить из портов-последнюю версию или скачиваем ту, которая нам нужна с сайта.

У меня возникли проблемы с 3.4.х - не отрабатывались правила fw-policy, поэтому для случая с блокировкой трафика лучше использовать netams-3.3.5, тем более что у меня с ним никаких косяков не возникало. Минусов только два - nawt.2.6 не подцепляется и идущие в комплекте с 3.4.1 cgi скрипты "оформлены" посимпатичнее. 
До установки нетамса стоит поставить mysql и apache. 
внимание! вышел 3.4.1rc2 в нём добавлено много фич. в том числе коuрректно работают fw-policy

Итак, нетамс поставлен. для упрощения будем считать что в ipfw записаны правила 

divert natd from any to any via interface 
allow all from any to any 
deny all from any to any.

Для простого подсчёта я использовал libcap - ставил из портов. К слову-прежде чем ставить netams стоит очень тщательно прочитать документацию на сайте netams.org
Итак, чтобы установить последнюю версию netams-3.4.1rc2 его нужно или скачать с сайта разрабочтиков:

http://www.netams.com/files/netams-3.4.1rc2.tar.gz


Или поставить из портов версию 3.4.1rc1

#cd /usr/ports/net-mgmt/netams
#make install clean

Перед началом установки будут предложены опции

[ ] DEBUG Build with debug symbols 
[ ] BW Build with bandwidth limitation functionality 


Для работы с libpcpap нужно дополнительно установить последнюю версию libpcap.

#cd /usr/ports/net/libpcap
#make install clean



САМОЕ ГЛАВНОЕ!
Часто забывают прописать в /etc/rc.conf
daemon_name_enable="YES"
в нашем случае это
netams_enable="YES"

Всё готово к работе.

language ru
user oid 030262 name admin real-name "Admin" crypted $1$$HpXmjtul/3i1.bf.B27bU. email root@localhost permit all

Пользователь с полномочиями админа. пароль не выдаётся в открытом виде благодаря crypted

#services configuration

service server 0
login local
listen 20000
max-conn 6

service processor
lookup-delay 5
flow-lifetime 2
policy oid 08D7E7 name ip target proto ip
restrict all drop local pass


еще раз читаем. Что значит этот кусок конфига. В секции service server мы устанавливаем количество телнет соединений к нетамсу, указываем, что подключаться можно только локально,порт, который надо слушать и максимальное количество соединений.
Можно оставить как есть (в этом случае порт по умолчанию изменён на 20000)

Что касается описания service processor. то исчерпывающе он описан на сайте, позволю себе процитировать:

lookup-delay XXXX

определяет периодичность, с которой сервис processor будет просматривать список своих NetUnit, чтобы проверить время существования потоков и сбросить их в базу данных. Чем меньше это время, тем точнее идет "квантование" временных периодов, но тем больше нагрузка на программу. На размер базы данных не влияет.
XXX - время в секундах, по умолчанию 30.

На 86 юнитов и delay 5 всё ок.


flow-lifetime XXXX

определяет время жизни RAW потока. через указанное время поток обнуляется, а данные суммируются в статистику и записываются в базу. Чем меньше меньше это время, тем с большей точностью записаны данные в базу, но тем она и больше.
XXX - время в секундах, по умолчанию 300.
lookup-delay XXXX

определяет периодичность, с которой сервис processor будет просматривать список своих NetUnit, чтобы проверить время существования потоков и сбросить их в базу данных. Чем меньше это время, тем точнее идет "квантование" временных периодов, но тем больше нагрузка на программу. На размер базы данных не влияет.
XXX - время в секундах, по умолчанию 30.
Места у меня много, поэтому могу позволить выставить 2 секунды. если сервер это старый склеротичный десктоп надо быть осторожнее.


policy oid 08D7E7 name ip target proto ip

Это - политика, по которой считается наш трафик. OID можно выставить принудительно, но он вполне успешно выставляется и нетамсом, т.е. параметр необязательный. 

внимание! если oid не выставлены, то после запуска netams стоит сделать сохранение конфига, иначе статистика для юнитов будет потеряна.

В данном случае политика называется ip и к ней принадлежит вообще весь ip трафик.


restrict all {drop|pass} local {drop|pass}

задает политику фильтрации трафика для случая, когда fw-policy для объекта не определен
all - для всех данных (всех ip-адресов src/dst)
local - для данных, предназначенных объектам, описанным в конфигурационном файле
drop - не пропускать пакеты данного класса
pass - пропускать пакеты
Значение по умолчанию restrict all drop local pass приводит к тому, что для трафика, пакеты которого в заголовке в полях src/dst оба IP-адреса не принадлежат ни одной из описанных в конфигурационном файле машин/кластеров/сетей, этот трафик блокируется. Фактически, это означает что программа будет пропускать только данные с/для зарегистрированных машин "за" маршрутизатор. В случае установления restrict local drop вы обязаны явно для каждого юнита прописать fw-policy. Если для юнита не прописаны никакие политики acct-policy или fw-policy, то это эквивалентно применению к этому юниту параметра no-local-pass, т.е. применение restrict all вместо restrict local.



Далее начинается самое интересное. Программа ОЧЕНЬ гибкая, при этом логичная и внятная.

Итак, описываются юниты. Еще раз-мы не рассматриваем привязку по mac (хотя она делается по щелчку, не рассматриваем ограничение скорости и прочее, хотя всё это просто. Все навороты можно сделать после того как программа отлажена и считает как надо)


unit group oid 08EA6D name LAN
unit host oid 0AD6A9 name server ip 192.168.9.1 parent LAN acct-policy ip
unit user oid 04D535 name HOST1 ip 192.168.9.2 parent LAN acct-policy ip
unit user oid 0E8592 name HOST2 ip 192.168.9.5 parent LAN acct-policy ip
unit user oid 0C14C4 name HOST3 ip 192.168.9.7 parent LAN acct-policy ip
unit user oid 06941D name HOST4 ip 192.168.9.8 parent LAN acct-policy ip
unit user oid 0E9C62 name HOST5 ip 192.168.9.10 parent LAN acct-policy ip
unit user oid 0B915E name HOST6 ip 192.168.9.11 parent LAN acct-policy ip
unit user oid 0023E6 name HOST7 ip 192.168.9.12 parent LAN acct-policy ip
unit user oid 073899 name HOST8 ip 192.168.9.20 parent LAN acct-policy ip
unit user oid 083230 name HOST9 ip 192.168.9.32 parent LAN acct-policy ip

Собственно мы здесь описываем три типа юнитов - тип "user" , тип"хост" и тип "группа". Еще раз напоминаю-OID'ы — не обязательны, но если конфиг без OID, то каждый раз после перезапуска статистика будет обнуляться. Юниты типа хост и 
юзер в нашем случае идентичны по свойствам. далее указывается к какой группе принадлежит данный хост или юнит, в этом случае все хосты в группе LAN.
acct-policy ip задаётся политика учёта - что именно считается. Политик можно наплодить много. Чтобы не писать постоянно acct-policy ip, можно добавить
в конфиг default acct-policy ip(или любая другая политика, которая должна считаться для всех).


service storage 1
type mysql
user netams
password ***
dbname netams
accept all

Эта секция отвечает за подключения к БД. указан тип, пользователь, пароль. Пароль можно задать открытым или зашифрованным accept all обозначает что нетамс будет писать в БД всё. Этот параметр можно гибко настраивать.


service data-source 1
type libpcap
source fxp0 

Откуда мы получаем статистику.FXP0 в этом примере-ВНУТРЕННИЙ интерфейс. В данном случае это libpcap и слушает он всё что идёт через внутренний интерфейс. В случае с libcpap ограничивать трафик мы не можем-только слушать. в том случае, если нужно не только считать, но и ограничивать нужно пользоваться дивертом. 


service data-source 1
type ip-traffic
source divert 199
rule 9000 "ip from 192.168.0.0/24 to any out xmit fxp0"
rule 11000 "ip from any to 192.168.0.0/24 in via fxp0"


В данном случае правило вида divert natd from any to any via interface должно находится между 9000 и 11000
Диверт порт 199 взят с потолка, ни к чему не привязан. FXP0 в данном случае ВНЕШНИЙ.



Если нам надо знать кто куда ходил - самое простое решение это секция monitor.
Можно забивать все юниты ручками, а можно воспользоваться консолью. Необходимо обратить внимание, что есть сильная разница между консолью в 3.4.x и 3.3.5
в случае 3.4.х

enable
configure terminal
service monitor
monitor unit oid/name



service html
path /usr/local/www/stat
run 10sec
url http://192.168.9.1/stat
client-pages all
account-pages none

service scheduler
oid 08FFFF time 10sec action "html"



теперь о блокировке. в нашем случае изначально пользователи могут ходить везде.чтобы в случае превышения квоты у них оставались только аська и почта - достаточно добавить одну политику и настроить сервис quota. Делать это надо при _не запущенном_ нетамсе.
policy oid 013ECF name msgs target proto tcp port 25 110 5190

Service quota 0
storage 1
policy ip
block-policy msgs^M
notify soft owner
notify hard owner
notify return owner
соответсвенно мы говорим нетамсу, чтобы сервис квот работал с БД, описанной в секции Service Storage

что делает политика объяснять вроде не надо. OID'ы, как и в предыдущих случаях можно выставлять принудительно или не выставлять вовсе. 

Чтобы сделать квоту для пользователя активной можно использовать нетамсовый Admintool, но он глючный. лучше воспользоваться консолью:

telnet localhost 21000 (порт можно менять в конфигурационном файле)
enable
configure terminal
service quota
set OID/NAME active

далее 
set OID/NAME block-policy [имя fw-policy, которая будет выставляться при наступлении квоты] day [в день] in/out/both week [в неделю] in/out/both month [в месяц] in/out/both




Что происходит-квота становится активной для юнита HOST/OID, политика, по которой считается квота - ip, fw-policy, которая будет применена к юниту при привышении msgs. набежать по политике ip должно соот-но 300 мегабайт в меся входящего трафика. можно использовать модификаторы K M и G.
Что происходит при срабатывании квоты: к юниту,указанному при настройке добавляется fw-policy msgs, т.е. разрешать ТОЛЬКО трафик по портам 110 25 и 5190.


после того как всё настроено стоит запустить нетамс и посмотреть, что он понял из того что мы написали. для этого нужно зайти в консоль и набрать show config (независимо от версии). В результате будет виден "рабочий конфиг", т.е. то что нетамс сумел разобрать и понять. если где-то несостыковки типа строк

policy oid #### name NAME

без всего, значит в правиле что-то не так.
В результате всех этих манипуляций получается считалка, которая считает трафик и регулярно скидывает в /usr/local/www/stat (у 3.4.1 по умолчанию /usr/local/www/netams)

Если требуется(а зачастую требуется) детальный анализ логов кто куда ходил, то нужно включить механизм layer7. На сайте написано, что изначально сборка идёт с ключём -DLAYER7-FILTER. если в результате всех манипуляций не работает-можно попробовать пересобрать, принудительно выставив ключ.
в секции Data Source дописать

layer7-detect urls

создать еще одну политику подсчёта трафика

policy hidden name urls target layer7-detect

hidden означает, что данные по этой статике не будут выводится сервисом html
и добавить всем юнитам acct-policy urls
или, если default acct-policy не задана, default acct-policy urls.

ВНИМАНИЕ! нетамс всё же не предназначен для выяснения кто куда ходил, статистика по url похожа на среднюю температуру по больнице. если нужна статистика кто куда ходил лучше использовать proxy.


вменяемый, в плане получения детальной статистики, скрипт можно скачать здесь : 

http://www.controlstyle.ru/products/web/text/namonitor/
Есть еще nawt 2.6.0 (для 3.4.х) и 2.5.0 для 3.3.5
на сайте netams.com в архиве лежат различные скрипты на php для управления нетамсом и обработки полученных данных.
nawt-2.5.0 (для версии 3.3.5) http://netamsadmin.sourceforge.net/...t-2.0.5b.tar.gz
nawt-2.6.0 (для версии 3.4.0) http://netamsadmin.sourceforge.net/...wt-2.0.6.tar.gz
отличный интерфейс http://www.it2k.ru/projects/netams-front/


На текущий момент у меня стата собирается через libpcap, netflow и divert. Если понаделал ошибок-пишите, я буду рад помочь. 

Что еще...да, netams и transparent proxy. вопрос частый. у меня решен так:

01300 divert 199 ip from not 192.168.0.0/24 to any via em0
09000 divert 199 ip from 192.168.0.0/24 to any out xmit fxp0
09100 divert 199 ip from 192.168.254.0/24 to any out xmit fxp0
09500 fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to not 192.168.0.254 dst-port 80,3128,8080,8101,8108 via fxp0
09600 fwd 127.0.0.1,3128 tcp from 192.168.0.0/21 to not 192.168.0.254 dst-port 80,3128,8080,8101,8108 via fxp0
10000 divert 8668 ip from any to any via fxp0
11000 divert 199 ip from any to 192.168.0.0/24 in via fxp0



upd:ссылка на netams-front поменяна на правильную
сквид в режиме прозрачной прокси, работает уже года два. всё хорошо.Делал замеры Tmetrом-точность до 2 знака после запятой.
распространение приветствую, сам в своё время намучался без толковой инфы.


Источник: http://www.liveinternet.ru/users/889466/
Категория: Linux и Unix | Добавил: SAM (12.10.2010)
Просмотров: 4498 | Комментарии: 4 | Рейтинг: 0.0/0
Всего комментариев: 4
4 Addiliaintamp  
o35z http://sildenafilph24h.net/#iv55 sildenafil online http://sildenafilph24h.net/#so06 - sildenafil online pfizer viagra buy

3 Tradystaria  
jt69 http://kamagrapharm.co.uk/#bh45 kamagra jelly for sale http://kamagrapharm.co.uk/#xp58 - kamagra online kamagra jelly cheap

2 aeoeqiw  
When you're really going hard in the winter, you want a jacket that will keep you cool even though the temperature is low. http://www.cheapmonclerjacketsx.com/#28827 - moncler jackets for kids - http://www.cheapmonclerjacketsx.com/#19972 - moncler coats for toddlers , http://www.cheapmonclerjacketsx.com/#66843

1 apesplomemy  
wu49 http://paperhelporg.net/#fsrg buy essay http://paperhelporg.net/#ak50 - buy essay online custom essay

Имя *:
Email *:
Код *:
Форма входа
Категории раздела
Мои статьи [1]
Linux и Unix [47]
Все про Linux и Unix
Windows [3]
Все про Windows
Администрирование [5]
Все для Системного администратора
Cisco [2]
Мой опыт работы с кисками
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Copyright MyCorp © 2018
    Бесплатный конструктор сайтов - uCoz