Подсчет трафика с помощью NeTAMS::Журнал СА 6.2004
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6143
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6856
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4139
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2978
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3781
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3789
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6282
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3134
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3433
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7246
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10616
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12336
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13968
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9099
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7052
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5361
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4593
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3400
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3127
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3378
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 2999
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Подсчет трафика с помощью NeTAMS

Архив номеров / 2004 / Выпуск №6 (19) / Подсчет трафика с помощью NeTAMS

Рубрика: Администрирование /  Продукты и решения

КИРИЛЛ ТИХОНОВ

Подсчет трафика с помощью NETAMS

Существует большое количество программ, предназначенных для подсчета трафика и сбора статистики. Сегодня мы рассмотрим одну из них, которая, на мой взгляд, будет одинаково интересна и новичкам, и специалистам.

NeTAMS – Network Traffic Accounting and Management System (www.netams.com) предназначена для контроля и учета сетевого трафика, проходящего через сервер. Работает под управлением операционных систем FreeBSD (4.3 и старше) и Linux (ядро 2.4 или выше и iptables).

Краткие характеристики:

  • Работа с БД MySQL, PostgreSQL, unix hash.
  • Контроль доступа, квот и прав пользования.
  • Вывод статистики прямым запросом или через веб-интерфейс.
  • Управление посредством соединения клиентом telnet на некий tcp-порт сервера.
  • Веб-интерфейс для отображения статистики.

Установку программы нельзя назвать тривиальной. В качестве сервера будем использовать Linux, поскольку с ним, в отличие от FreeBSD, возникает большинство проблем. Сервер является маршрутизатором с 2 сетевыми картами, одна смотрит в Интернет, другая – в локальную сеть.

Нам понадобится пакетный фильтр iptables и входящая в него библиотека libipq. Библиотека libipq добавляет цель QUEUE, т.е. очередь. Забегая вперед, скажу, что весь трафик заворачивается с помощью QUEUE в системную очередь, из которой пакеты берет NeTAMS, анализирует и отдает обратно.

Скачиваем пакетный фильтр с www.netfilter.org, распаковываем и компилируем (предполагается, что текущее ядро лежит в /usr/src/linux):

# tar xvfj iptables-1.2.9.tar.bz2

# cd iptables-1.2.9

# make KERNEL_DIR=/usr/src/linux

# make install

# make install-devel

Последняя строка позволяет установить библиотеку libipq.

Скачиваем NeTAMS с www.netams.org, последняя версия на момент написания статьи 3.1(1801), и распаковываем:

# tar xvfz netams-3.1.1801.tar.gz

# cd netams-3.1.1801

# vi Makefile

Скрипта configure здесь нет, поэтому редактируем Makefile. Он хорошо документирован, поэтому разобраться в опциях не составляет труда. Для начала комментируем все, относящееся к FreeBSD, а именно строки 13, 14, 17, 25, 26. После этого раскомментируем строки, относящиеся к Linux: строки 34 и 35. Далее выбираем тип БД: DB1 (unix hash), MySQL или PostgreSQL и раскомментируем относящиеся к ним строки. Само собой, используемая БД должна быть уже установлена и настроена. Мы выбираем MySQL. Поскольку мы используем iptables-1.2.9, то надо раскомментировать строку 50.

Далее правим пути к конфигурационному файлу и логам (строки 56, 57) и компилируем:

# make

Результатом компиляции будут 2 файла: netams – сама программа и netamsctl – утилита для автоматизации выполнения повседневных работ. Цели install в Makefile нет, поэтому устанавливаем вручную:

# cp src/netams /usr/local/bin

# cp src/netamsctl /usr/local/bin

Отлично, программа установлена. Но прежде чем мы начнем писать конфигурационный файл, настроим MySQL.

В принципе необходимости ручного создания БД нет. При первом запуске NeTAMS создаст ее сам. Однако сделать это возможно только под пользователем с правами администратора MySQL. Мы же заведем отдельного пользователя с именем netamsuser и паролем passwd и вручим ему права на доступ к БД.

Итак:

# mysql –u root –p

Enter password:

Создаем базу netams, в которую NeTAMS будет писать данные:

mysql> create database netams;

mysql> connect netams;

Вручаем права пользователю netams-user:

mysql> grant SELECT,INSERT,DELETE,UPDATE,CREATE on netams.* to netamsuser;

mysql> grant SELECT,INSERT,DELETE,UPDATE,CREATE on netams.* to netamsuser@localhost;

и задаем пароль пользователя netamsuser:

mysql> connect mysql;

mysql> set password for "netamsuser"@"localhost"=password("passwd");

mysql> set password for "netamsuser"@"%"=password("passwd");

Для того чтобы внесенные изменения вступили в силу, обновляем активные привилегии и выходим:

mysql> flush privileges;

mysql> exit

Все, БД готова к приему данных от NeTAMS. Начнем писать конфигурационный файл /etc/netams.cfg:

debug none

user name admin real-name Admin email root@localhost password 123 permit all

service server 0

login any

listen 20001

max-conn 6

При запуске программа с такой конфигурацией ничего считать не будет. К ней можно только подключиться с помощью telnet и просмотреть конфигурацию.

Разберем файл построчно. Строка debug none отключает вывод отладочной информации. Следующая строка определяет пользователя:

  • user name admin – логин;
  • real-name Admin – реальное имя;
  • email root@localhost – email;
  • password 123 – пароль (незашифрованный);
  • permit all – разрешено все.

Следующая строка начинает описание сервиса server. Этот сервис обеспечивает возможность подключения к работающей программе с помощью telnet:

  • service server 0 – начало описания сервиса. Каждый сервис должен иметь номер. Это нужно для того, чтобы можно было описать несколько одинаковых сервисов. Например, несколько сервисов storage, которые будут хранить разную информацию в разных БД.
  • login any – пустить всех.
  • listen 20001 – слушать tcp-порт 20001.
  • max-conn 6 – максимальное число одновременных подключений.

Запустим программу:

# netams –ld

К ней можно подключиться, набрав:

telnet netams_host 20001

Далее надо ввести логин и пароль – в нашем случае admin и 123. Введя «?», можно получить справку по командам.

Теперь займемся подсчетом трафика.

В уже созданный файл допишем еще несколько сервисов, после чего он примет вид:

debug none

user name admin real-name Admin email root@localhost password 123 permit all

service server 0

login any

listen 20001

max-conn 6

service processor 0

lookup-delay 10

policy acct name all-ip target ip

restrict all pass local pass

unit host name linux-gw ip 195.x.x.x acct-policy all-ip

storage 1 all

service storage 1

type mysql

user netamsuser

password passwd

service data-source 1

type ip-traffic

service html 1

path /var/www/localhost/netams

run 1min

client-pages all

Разберем написанное. Обращаю внимание, что в пределах одного сервиса пустые строки недопустимы. Дело в том, что с точки зрения NeTAMS после пустой строки должно идти начало нового сервиса, и в случае обнаружения пустой строки, за которой не идет определение сервиса, NeTAMS будет аварийно завершать работу.

  • service processor 0 – ядро системы, в нем определяются объекты, по которым будет идти учет.
  • policy acct name all-ip target ip – определяет политику, по которой будет производиться подсчет трафика, в данном случае политика с именем all-ip (параметр name) будет считать весь IP-трафик. Параметр target может принимать следующие значения:
    • ip – весь IP-трафик;
    • icmp – весь icmp-трафик;
    • tcp – весь tcp-трафик;
    • udp – весь udp-трафик;
    • tcp-http – весь tcp-трафик, входящий или исходящий, порты которого 80, 808, 8080, 3128, 442;
    • tcp-ports – весь tcp-трафик на указанные порты;
    • udp-ports весь udp-трафик на указанные порты.
  • unit host name linux-gw ip 195.x.x.x acct-policy all-ip – определяет объект, для которого будет производиться подсчет трафика. В данном случае объект host с именем linux-gw, IP-адресом 195.x.x.x (внешний адрес маршрутизатора) и определенной выше политикой all-ip. Таким образом, с помощью этого правила мы считаем весь IP-трафик, поступающий из Интернета на наш маршрутизатор.
  • storage 1 all – передает все данные сервису storage 1.
  • service storage 1 – сервис, определяющий тип и параметры доступа к БД, в которой будет сохраняться статистика.
  • service data-source 1 – обеспечивает поступление данных о трафике внутрь программы. В данном случае определен источник данных ip-traffic. Этот источник работает с системной очередью, в которую с помощью iptables попадают пакеты.
  • service html 1 – организует автоматическое периодическое создание статических html-страниц, содержащих информацию о прошедшем трафике. Периодичность создания задается параметром run, в данном случае она равна 1 минуте.

Теперь запускаем программу в режиме демона:

# netams

и определим правила iptables, с помощью которых данные будут поступать в программу:

$IPTABLES -t mangle -A POSTROUTING -p all -j QUEUE

$IPTABLES -t mangle -A PREROUTING -p all -j QUEUE

Здесь есть один очень важный момент. Дело в том, что с помощью приведенных выше правил iptables все входящие и исходящие пакеты поступают в системную очередь, откуда их будет брать NeTAMS. Однако если в момент активизации iptables NeTAMS не будет запущен, пакеты будут поступать в системную очередь и пропадать там, т.к. не будет программы, которая отправит их обратно. В результате пропадает коннект до сервера. Поэтому в процессе отладки надо либо сидеть за консолью сервера, либо в случае удаленного администрирования тренироваться на icmp-трафике (в сервисе processor 0 поменять значение параметра policy target ip на target icmp, и в правилах iptables аналогично заменить –p all на –p icmp). А порядок запуска такой: сначала запускаем NeTAMS, потом iptables. Соответственно порядок остановки обратный – сначала останавливаем iptables, потом NeTAMS.

Каждый объект имеет свой уникальный шестнадцатеричный идентификатор (OID), который является ключом в базе данных. Он генерируется автоматически после первого запуска, поэтому чтобы статистика не пропала, после запуска программы надо подключиться к ней с помощью telnet и выполнить команду save. Она перезапишет netams.cfg, добавив в него сгенерированные OID. Таким образом, наш файл будет выглядеть так:

#NeTAMS version 3.1(1801.7) compiled by root@localhost

#configuration built Thu Apr  1 09:25:23 2004

#begin

#global variables configuration

debug none

user oid 01327B name admin real-name "Admin" crypted $1$$GmbL3iXOMZR57QuGDLv.L1

schedule oid 08FFFF time 1min- action "html"

#services configuration

service server 0

login any

listen 20001

max-conn 6

service processor 0

lookup-delay 10

policy acct oid 036633 name all-ip target ip

restrict all pass local pass

unit host 022EB1 name linux-gw ip 195.x.x.x acct-policy all-ip

storage 1 all

service storage 1

type mysql

user netamsuser

password passwd

service data-source 1

type ip-traffic

service html 1

path /var/www/localhost/netams

run 1min

client-pages all

Мы рассмотрели простейший случай подсчета трафика от провайдера до шлюза. В документации, поставляемой с программой, настройка описана более детально. Например, для каждого пользователя в локальной сети можно настроить квоту, при превышении которой NeTAMS автоматически отключит доступ в Интернет. К тому же на сайте www.netams.com есть русскоязычный форум, в котором можно найти ответы на любой возникший вопрос.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru