Глава 7
Рис. 7.13.
Мониторинг трафика с помощью darkstat
Но это еще не все. Нужно добавить в файл
rc.conf
следующую строку:
darkstat_flags="--import em0.db --export em0.db"
Флаги
--import
и
--export
при запуске/останове демона darkstat управляют загруз-
кой/сохранением статистики в файл и из файла
/var/run/darkstat/em0.db
.
Следует также создать сценарий ротации файла
em0.db
. Код этого файла (назовем
его
em.sh
) представлен в листинге 7.3.
Листинг 7.3. Файл em.sh
#!/bin/sh
DB="/var/run/darkstat/em0.db"
getpid() {
PIDFILE="/var/run/darkstat/darkstat.pid"
Мониторинг информационной системы
331
if [ -f $PIDFILE ]; then
pid=`cat $PIDFILE`
fi
kill -SIGUSR1 $pid
}
getpid
mv $DB /var/run/darkstat/"darkstat-`date +%Y-%m`"
touch $DB && chmod 666 $DB
getpid
Этот файл нужно поместить в каталог
/etc/periodic/monthly
для его запуска каждый
месяц (см. файл
/etc/crontab
) и сделать его исполняемым:
# chmod +x /etc/periodic/monthly/em0.sh
На этом все — ваш darkstat полностью готов к работе.
Система NeTAMS
NeTAMS (Network Traffic Accounting and Monitoring Software) — программа для
учета и мониторинга IP-трафика. Она поддерживает разные методы сбора стати-
стики, несколько баз данных для хранения информации о трафике (MySQL,
PostgreSQL, Oracle, BerkleyDB, Radius) и обладает режимом оповещений. Позволя-
ет производить блокировку на базе квот, авторизации, баланса (т. е., NeTAMS мож-
но использовать как билинговую систему), дает возможность управлять пропуск-
ной полосой, контролировать подмену MAC-адреса, создавать гибкие политики
учета и фильтрации трафика. Система весьма серьезная, особенно по сравнению
с darkstat, у которой всех этих функций нет.
Для работы с NeTAMS нам понадобятся Apache и MySQL-сервер версии 5.0.
Именно 5.0, а не 5.1 или 5.5, потому что с версиями 5.1 и 5.5 NeTAMS почему-то не
работает, почему — мы не проверяли, не возникло такое желание.
Итак, будем считать, что серверы Apache и MySQL уже установлены и запущены.
Для работы NeTAMS также необходима библиотека libpcap, установим ее:
# cd /usr/ports/net/libpcap
# make install clean
Теперь установим NeTAMS, но вместо порта, который входит в состав FreeBSD,
мы воспользуемся портом с сайта разработчиков:
# cd /usr/ports/net-mgmt
# fetch http://www.netams.com/files/netams-freebsd-port.tgz
# tar -zxvf netams-freebsd-port.tgz
В результате будет создан каталог
freebsd-port
, переименуем его в
netams
:
# mv freebsd-port netams
332
Глава 7
Настало время исправить ту самую ошибку с версиями MySQL, о которой говори-
лось ранее. Откройте файл
Makefile
:
# mcedit /usr/ports/net-mgmt/netams/Makefile
Найдите и удалите следующую строку:
mysqlclient.16:${PORTSDIR}/databases/mysql51-client \
Эта строка должна установить MySQL-клиент версии 5.1, но поскольку NeTAMS
не работает с MySQL 5.1, то эта строка лишняя. NeTAMS также ничего не подоз-
ревает об установленном уже MySQL версии 5.0. И если не удалить эту строку, то
для разрешения зависимости MySQL 5.0 будет удален, а вместо него установлена
версия 5.1, но с ней NeTAMS работать не будет. Вот такая ситуация...
Теперь можно собрать порт:
# make install clean
При сборке зависимого порта GD следует выбрать опцию
ICONV
. Хотя, скорее всего,
библиотека GD с этой опцией у вас уже установлена (она устанавливается при
установке PHP).
После сборки добавьте строку автоматического запуска системы в файл
/etc/rc.conf
:
netams_enable="YES"
Скопируйте пример файла конфигурации в конфигурационный каталог NeTAMS:
# cd /usr/local/etc/netams/
# cp netams.conf.sample netams.conf
Пример конфигурационного файла представлен в листинге 7.4. Отредактируйте его
по своему усмотрению. Значения, которые вам придется изменить (имена и
IP-адреса узлов, порты, пароли и т. д.), выделены полужирным шрифтом.
Листинг 7.4. Пример файла netams.conf
# Отключаем отладку
debug none
# Определяем имя пользователя (root) и пароль (1) для доступа к netams
# пользователю root разрешаются все операции (permit all).
# Укажите нормальный пароль! Пароль "1" здесь использован, чтобы текст
# поместился в одной строке
user name
root
real-name Admin password
1
email root@localhost permit all
# Настройка сервисов
service server 0
login local
listen 20001
max-conn 6
service processor 0
lookup-delay 60
flow-lifetime 180
Мониторинг информационной системы
333
# Определяем порты, эти порты будут отображены на графике
# Это весь IP-трафик
policy name ip target proto
# WWW
policy name www target proto tcp port 80 8080 3128 443
# FTP
policy name ftp target proto tcp port 20 21
# POP3
policy name pop3 target proto tcp port 110
# SMTP
policy name smtp target proto tcp port 25
# SSH
policy name ssh target proto tcp port 22
restrict all drop local pass
# Сортируем порты по группам
unit group name
admins
acct-policy ip www ftp pop3 smtp ssh
unit group name
other_users
acct-policy ip www ftp pop3 smtp
# Определяем объекты (юниты), за которыми будем наблюдать:
# тип host — узел
# тип net — сеть
# unit host name comp1 ip A.A.A.A acct-policy ip www ftp pop3 smtp ssh
unit net name
LAN
ip
192.168.1.0/24
acct-policy ip www ftp pop3 smtp ssh
# Определяем пользователей
unit user name
us1
ip
192.168.1.5
parent admin acct-policy ip www ftp pop3 smtp
ssh
unit user name
us2
ip
192.168.1.7
parent other-users acct-policy ip www ftp
pop3 smtp ssh
# Статистику будем хранить в MySQL, здесь же указываем имя пользователя
# и пароль для доступа к MySQL
service storage 0
type mysql
user
root
password
пароль_для_mysql
accept all
# Указываем источники данных: откуда будут поступать пакеты
# В нашем случае есть только два источника: интерфейсы em0 и em1
service data-source 1
type libpcap
source
em0
layer7-detect urls
334
Достарыңызбен бөлісу: |