В данной статье рассмотрена установка и использование анализатора Nfsen, который переставляет из себя web-интерфейс к nfdump - утилитам по сбору и анализу NetFlow статистики. Установка и настройка соответствующих утилит производится в ОС Linux CentOS. Установка и настройка в других дистрибутивах может незначительно отличаться. Первым делом необходимо произвести установку и настройку сенсора. Подробная процедура установки сенсора на Linux и оборудовании Cisco находятся в статье Сбор статистики NetFlow в Linux при помощи утилит flow-tools. В данной статье были использованы утилиты flow-tools для сбора и анализа статистики NetFlow в ОС Linux. Основным недостатком такого подхода является отсутствие более-менее понятного графического интерфейса для построения отчетов. Запускаем сбор и отсылку статистики на коллектор и выбранный порт. В данном примере 9796.
Установка nfdump
Скачиваем последнюю версию nfdump и распаковываем ее.
wget http://sourceforge.net/projects/nfdump/files/stable/nfdump-1.6.3/nfdump-1.6.3.tgz/download
tar -xvzf nfdump-1.6.3.tgz
cd nfdump-1.6.3
Для нормальной работы nfdump и nfsen необходимо установить пакет rrdtool-devel, flex и byacc
yum install rrdtool-devel
yum install flex byacc
Конфигурируем nfdump для работы с nfsen и rrdtool.
./configure --enable-nfprofile --with-rrdpath=/usr/bin
Устанавливаем утилиту checkinstall для сборки пакета. Собираем RPM-пакет для последующей установки nfdump.
checkinstall -R
Устанавливаем собранный RPM из указанного в конце сборки места.
rpm -ivh /usr/src/redhat/RPMS/i386/nfdump-1.6.3-1.i386.rpm
Так же можно произвести установку из исходных кодов, без создания RPM-пакета.
Установка Nfsen
Скачиваем и распаковываем последнюю версию.
wget http://sourceforge.net/projects/nfsen/files/stable/nfsen-1.3.5/nfsen-1.3.5.tar.gz/download
tar -xvzf nfsen-1.3.5.tar.gz
cd nfsen-1.3.5
Устанавливаем необходимые модули perl.
cpan Mail::Header
cpan Mail::Internet
Копируем шаблон конфигурационного файла и изменяем настройки в nfsen.conf на необходимые нам.
cp etc/nfsen-dist.conf etc/nfsen.conf
$BASEDIR = "/usr/local/nfsen";
# Пользователь от чьего имени будет запускаться nfsen. В данном случае запуск производится от имени пользователя демона httpd.
$USER = "www-data";
$WWWUSER = "www-data";
$WWWGROUP = "www-data";
# Порт на который будет приниматься статистика для данного устройства и цвет графика.
%sources = ( 'router' => { 'port' => '9796', 'col' => '#abcdef', 'type' => 'netflow' }, );
Устанавливаем Nfsen с измененными настройками и запускаем его.
./install.pl etc/nfsen.conf
/usr/local/nfsen/bin/nfsen start
Даем доступ к Nfsen из бразуера, добавив нужную запись в конфигурацию веб-сервера Apache.
echo "Alias /nfsen /var/www/nfsen" >> /etc/httpd/conf.d/nfsen.conf
/etc/init.d/httpd reload
Для автозапуска Nfsen при загрузке системы добавляем строчку в файл /etc/rc.d/rc.local
echo "/usr/local/nfsen/bin/nfsen start" >> /etc/rc.d/rc.local
Использование Nfsen
После установки и запуска сбора статистики необходимо зайти в web-интерфейс Nfsen по соответствующему адерсу. В нашем примере мы настроили адрес вида http://адрес_сервера/nfsen/nfsen.php
Применение фильтров nfdump
В данный момент собирается полная статистика для устройста router, отсылаемая на порт 9796. Для детального анализа статистики необходимо перейти во вкладку Detail, выбрать необходимый интервал времени для анализа, и в поле Filter задать соответствующий фильтр nfdump, после чего нажать process. Так же в разделе Options можно задавать соответствующие опции группировки и отображения.
К примеру, мы хотим посмотреть всю статистику по использованию протокола ssh. Он настроен на стандартном порту 22. Таким образом необходимо задать следующий фильтр:
src or dst port 22
Фильтры и параметры можно комбинировать разными способами. Куда ходила машина с адресом 10.96.0.120 по протоколам HTTP и HTTPS?
ip 10.96.0.120 and (port 80 or port 443)
- port 80 - стандартный порт HTTP;
- or port 443 - или стандартный порт HTTPS.
Кто из нашей подсети использует удаленное подключение не только к терминальному серверу?
dst port 3389 and net 10.96.0.0/24 and not ip 10.96.0.2
- 3389 - стандартный порт RDP;
- net 10.96.0.0/24 - подсеть класса C;
- not ip 10.96.0.2 - исключаем IP-адрес терминального сервера.
Подробную информацию по фильтрам смотрите в руководстве к nfdump.
man nfdump
Построение графиков и настройка профилей
Nfsen предоставляет возможность построения графиков из RRD базы данных по соответствующим фильтрам. Изначально существует только один профиль под названием Live. В этот профиль записываются данные с источников, указанных в файле конфигурации nfsen.conf, для построения различных графиков, необходимо создать соответсвующие профили. Выбираем в web-интерфейсе Live -> New Profile
и создаем необходимый профиль. При необходимости построить графики с определенного времени, задаем дату начала построения. Иначе данные будут записываться в RRD базу данных с текущего момента.
Тип профиля | Описание | Достоинства | Недостатки |
---|---|---|---|
1:1 channels from profile live | Один или несколько каналов соответсвуют профилю Live | - | Устаревший вариант, присутствует с целью совместимости с Nfsen 1.2.x |
individual channels | Индивидуально настраиваемый профиль | Наиболее гибкая система (рекомендуется) | - |
Real Profile | Сохраняет данные NetFlow, удовлетворяющие фильтрам профиля в отдельные файлы | Ускоряет выборку данных при анализе | Занимает лишнее место на диске |
Shadow Profile | Берет данные из профиля Live | Не дублирует данные на диске | Более медленная выборка данных при анализе |
Добавляем каналы с необходимыми нам фильтрами и параметрами отображения нажав плюс (+) в поле Channel list нашего профиля. Мы создали фильтры для просмотра активности по удаленным подключениям ssh и rdp. После всего подтверждаем добавление новых каналов нажав галочку (commit new profile) напротив Status: new.
После построения графиков (если было задано время начала построения в прошлом, иначе данные начнут строиться с текущего момента времени), данный профиль можно использовать аналогично профилю Live, производя выборки по необходимым параметрам.
Как перестроить график после добавления новых фильтров?
При добавлении новых фильтров графики по ним начинают строиться с текущего момента времени. При необходимости перестроить все графики и данные в RRD базе данных с начала действия данного канала необходимо проделать следующее:
- Отредактировать файл настроек соответствующего профиля
profiles-stat/test/profile.dat
- Заменить
status = OK
наstatus = new
- В web-интерфейсе соответствующего профиля во вкладке Stat нажать галочку (commit new profile) напротив Status: new.
Читайте так же статью Сбор статистики NetFlow в Linux при помощи утилит flow-tools