From: Сгибнев Михаил <http://dreamcatcher.ru>
Date: Mon, 20 Oct 2005 14:31:37 +0000 (UTC)
Subject: Визуализация сетевого трафика с помощью NetFlow и FlowScan
Michael W. Lucas 09/15/2005
Перевод: Сгибнев Михаил
В прошлой моей статье мы рассмотрели как собирать данные о сетевом
трафике с помощью протокола NetFlow. В этой мы рассмотрим как
преобразовать полученные данные в красивые цветные картинки. Я
рекомендую вам обратиться к предыдущей статье, так как буду считать
что flowscan уже настроен, а если вы не используете softflowd и
flow-tools и не имеете установленного Cflow.pm, то реализация
описанного здесь может потерпеть неудачу.
FlowScan является скриптом, написанным на Perl и, анализируя записи
NetFlow, сохраняет их в базе данных RRD. RRD используют довольно много
средств визуального отображения информации, эта база позволяет хранить
большое количество информации не требуя много дискового пространства.
FlowScan позволяет сторонним модулям использовать свои процессы, для
генерирования собственных отчетов и мы рассмотрим сейчас один из этих
модулей -- CUFlow.
Установка FlowScan
Установку flowscan мы будем делать из системы портов, каталог
программы находится в /usr/ports/net-mgmt/flowscan. Таже будут
установлениы несколько модулей Perl в качестве зависимостей. Весть
инструментарий FlowScan будет по умолчанию установлен в
/usr/local/var/db/flows/bin. Учтите, что сразу после установки
FlowScan не работоспособен!
Сначала, нам необходимо обновить модуль FlowScan, так как официальный
дистрибутив долгое время не обновлялся и не способен обрабатывать
записи потока. Автор написал обновленный модуль flowscan.pm, но не
включил его в состав дистрибутива. Получите [6]FlowScan.pm version 1.6
и скопируйте ее в каталог /usr/local/var/db/flows/bin, перезаписав
модуль версии 1.5.
В Этом же самом каталоге находится образцовый файл конфигурации
FlowScan flowscan.cf.sample. В первую очередь необходимо указать
FlowScan, где искать файлы потока. FlowScan будет пытаться обработать
каждый файл в каталоге, если вы не укажите регулярное выражение,
описывающее необходимые файлы, включая временные файли и вложенные
каталоги. В следующем примере мы обрабатываем только завершенные файлы
потока, хранящиеся в каталоге /var/log/netflows:
FlowFileGlob /var/log/netflows/ft-v*[0-9]
В ReportClasses перечисляются все используемые для вывода отчетов
модули. FlowScan поставляется с двумя модулями: CampusIO и SubNetIO.
Возможно, они окажутся кому-то полезными, но мне удобнее использовать
CUFlow.
ReportClasses CUFlow Параметр
WaitSeconds задает интервал ожидания между попытками FlowScan
проверить каталог. Довольно много инструментальных средств используют
пятиминутный интервал и могут некорректно работать с меньшим
значением.
WaitSeconds 300
В заключение, включим отладку для проверки правильности установки:
Verbose 1
Конфигурирование FlowScan закончено, но нам все еще необходимо
настроить модуль отчетов для правильного отображения информации.
Конфигурирование CUFlow
Скачайте [7]CUFlow, распакуйте и скопируйте CUFlow.pm и CUFlow.cf в
/usr/local/var/db/flows/bin. Сам модуль можно оставить без изменений,
но необходимо отредактировать cuflow.cf, чтобы он соответствовал вашим
настройкам Perl.
Инструкция Subnet указывает принадлежащие вам сети. На основании этих
данных CUFlow будет различать входящий и исходящий трафик.
Subnet 192.168.2/23
Инструкция Network описывает сети, которые вы хотите обрабатывать
отдельно друг от друга. Каждая инструкция будет отображаться как
вариант в CGI скрипте. Как вы видите в этом примере, диапазоны могут
перекрываться:
Директивой OutputDir указывается, где сохранять отчеты. Не храните их
в доступном по сети месте или в каталоге flow-capture.
OutputDir /var/log/cuflow
CUFlow также вычисляет самые активные сайты и строит "хит-парад" IP
адресов, передавших большее количество трафика в течении 5 минут. За
этот параметр отвечает опция Scoreboard. Эта опция использует три
аргумента: число IP в "хит-параде", имя каталога для хранения старых
списков и имя файла текущего списка. В следующем примере указывается
вести "Top 10" IP адресов, сохранять отчеты в
/usr/local/www/data/scoreboard и текущим считать файл
/usr/local/www/data/scoreboard/topten.html:
В то время как список самых больших потребителей/генераторов трафика в
данный пятиминутный период полезен для предотвращения проблем, так же
был бы полезен список самых активных хостов. Опция AggregateScore
позволяет вам сделать это:
Если у вас довольно сложная сеть, то может возникнуть необходимость в
нескольких сенсорах Netflow. CUFlow может отделять данные от разных
сенсоров, при этом различные маршрутизаторы буду доступны в CUFlow CGI.
Router 192.168.2.1 fred
Router 192.168.3.1 barney
Директива Services предназначена для указания TCP/IP портов, которые
вы хотите отслеживать отдельно. Эта директива позволяет вам делать
такие выводы как "80% нашего трафика приходится на HTTP" и тому
подобное. Учтите, что это повышает нагрузку на сервер, поэтому не
стоит здесь указывать весь /etc/services. Не стоит указывать сервисы,
которые заблокированы, например Gnutella, Edonkey и т.д:
Service 20-21/tcp ftp
Service 22/tcp ssh
Service 23/tcp telnet
Директива Protocol очень похожа на Services, только вместо Layer 4
используется Layer 4 модели OSI. Я рекомендую указывать Protocol 1
(ICMP), Protocol 6 (UDP) и Protocol 17 (TCP) в качестве базового
минимума. Если есть много пользователей VPN то стоит отслеживать IPSec
и GRE.
Protocol 1 icmp
Protocol 6 tcp
Protocol 17 udp
Так как Netflow был разработан в Cisco, то неудивительно, что много
Netflow датчиков включают информацию BGP. CUFlow может отображать
информацию о трафике к/от различных AS, используя для этого номер AS
(опция ASNumber), softflowd не предосталяет информацию о номере
автономной системы. В случае использования softflowd закомментируйте
опцию ASNumber.
Сохранение записей Netflow из FlowScan
По умолчанию, FlowScan удаляет записи после обработки. Я предлагаю вам
сохранять эти записи в течении нескольких месяцев или пока позволяет
дисковое пространство. Создайте подкаталог saved в директории Netflow
и тогда FlowScan автоматически будет сохранять там обработанные файлы.
Даже если вы не планируете хранение старых файлов потока, я рекомендую
делать это хотябы первое время, пока вы не убедитесь, что FlowScan
работает правильно. В случае, если что-то пойдет не так, наличие этих
данны облехчит поиск и устранение неисправности.
Запуск FlowScan
Теоретически у нас все готово к запуску:
# /usr/local/var/db/flows/bin/flowscan
FlowScan должен запуститься, выводя подобные сообщения:
FlowScan анализирует все старые файлы потока, при этом процесс можеть
занять довольно продолжительное время, все зависит от того, сколько
файлов накопилось в системе. Достойной упоминания вещью здесь является
"flow hit ratio", котороя указывает на количество файлов, не
соответствующих формату FlowScan и это очень хороший показатель. Если
этот параметр равен 0, то скорее всего вы неправильно указали параметр
Subnet.
Если FlowScan выдает ошибку "Invalid index in cflowd flow file", то
скорее всего, вы не установили новую версию модуля Flowscan.pm .
После обработки всех файлов FlowScan выведет сообщение "sleep 300...",
в течении этого времени вы можете проверить появление новых файлов
потока. Вы можете нажать Ctrl-C для выхода из FlowScan.
Вероятно вы захотите запускать FlowScan на этапе начальной загрузки.
Для этого перейдите в каталог /usr/local/etc/rc.d и скопируйте туда
образцово-показательный скрипт flowscan.sh. Для его работы вовсе
необязательно его редактировать, но можно изменить параметр logfile в
случае, если вы используете другой каталог.
Построение графиков
К счастью, построение графиков из RRD файлов является довольно
тривиальной задачей. В состав CUFlow входит CGI скрипт, CUGrapher.pl.
Скопируйте его в каталог cgi-bin вашего web-сервера. Необходимо
установить две переменные: $rrddir и $organization.
Параметр $rrddir указывает на каталог, где CUFlow хранит файлы RRD.
my $rrddir = "/var/log/cuflow";
Для вывода имени организации вверху страницы используется переменная
$organization:
my $organization = "LogicaCMG US IDT development area";
Теперь перейдем на URL и выберем, для примера, сеть. Вы должны будете
увидеть массив раскрывающихся меню. Выберете любой и нажмите "Generate
graph".
Поздравляем, у вас есть графики значительно более информативные, чем
MRTG.
Одним большим недостатком CUFlow является недостаточная детализация.
Для устранения этой проблемы необходимо использовать дополнительные
модули. О них реч пойдет в следующей статье.
1299 Прочтений • [Визуализация сетевого трафика с помощью NetFlow и FlowScan (netflow cisco traffic graph statistic)] [08.05.2012] [Комментариев: 0]