Збір статистики NetFlow в Linux за допомогою утиліт flow-tools
- 192.168.0.1 – сервер на базі ОС Linux OpenSUSE;
- 192.168.0.2 – маршрутизатор Cisco серії 3800;
- 192.168.0.9 - сервер з операційною системою CentOS на якому збиратиметься та аналізуватиметься статистика.
На сервері та маршрутизаторі буде налаштовано сенсор, який збиратиме статистику NetFlow і відправлятиме її на колектор.
Налаштування сенсора
Встановлення та налаштування сенсора в ОС Linux
У цьому прикладі використовується встановлення сенсора fprobe в операційній системі Linux OpenSUSE із вихідних кодів. За аналогією можна зробити установку fprobe в інших дистрибутивах, а за наявності даної програми в стандартному репозиторії, бажано робити установку з нього. Наприклад, у Linux Debian fprobe встановлюється зі стандартного репозиторію за допомогою команди aptitude install fprobe. Насамперед необхідно встановити утиліту checkinstall, яка допоможе зібрати rpm пакет fprobe з вихідних кодів, завантажити та розархівувати самі вихідні коди fprobe.
Переходимо до папки з розпакованими вихідними кодами і конфігуруємо утиліту.
Збираємо пакет, змінюючи, при необхідності, його опис у процесі збирання.
Після складання пакету checkinstall підкаже, куди був збережений готовий RPM-пакет.
Встановлюємо зібраний пакет.
Тепер даним програмним забезпеченням можна керувати за допомогою стандартного менеджера пакетів. Запускаємо збір та відсилання статистики NetWlow на колектор.
Для автоматичного запуску сенсора під час старту системи необхідно додати рядок із запуском нашої програми у файл /etc/init.d/after.local . Якщо цього файлу немає, його необхідно створити.
Налаштування сенсора на маршрутизаторі Cisco
Заходимо у режим конфігурації маршрутизатора
Включаємо збирання netflow на інтерфейсі GigabitEthernet 0/1
Включаємо експорт статистики з інтерфейсу GigabitEthernet 0/1
Встановлення колектора
Для збору та аналізу даних NetFlow були використані утиліти з пакету flow-tools. Колектор встановлювався на сервері з ОС Linux CentOS. У стандартному репозиторії flow-tools не було, проте в інтернеті було знайдено вже зібраний rpm пакет, який у подальшому було встановлено.
Встановлення та збирання власного пакета flow-tools з вихідних кодів можна зробити аналогічно сенсору, використовуючи утиліту checkinstall. Створюємо директорії у яких зберігатимуться дані, отримані з сервера 192.168.0.1 та роутера 192.168.0.2
Далі необхідно відредагувати файл /etc/sysconfig/flow-capture та записати в нього налаштування, з якими запускатиметься демон flow-capture. Налаштування для сервера 192.168.0.1 будуть виглядати так:
Стартові скрипти
Для зручності ми поміняємо стартовий скрипт на інший (взятий з Linux Debian і трохи відредагований), який дозволяє додавати опції для відразу кількох колекторів, що одночасно запускаються. Замінюємо /etc/init.d/flow-capture на наступний скрипт:
test -f $DAEMON exit 0 test -f $CONFIG exit 0
if ["$ pid"]; then echo "Sorry, flow-capture is already running." exit 0 fi
IFS=' ' lines=`grep -E " \t" /etc/sysconfig/flow-capture grep -v "^#"` echo -n "Starting $DESC: " for args in $lines; do IFS=' ' $DAEMON $ done echo "$NAME." ;; stop) echo -n "Stopping $DESC: " p > if ["$ pid"]; then kill -TERM $pid >/dev/null 2>&1 fi echo "$NAME." ;; restartforce-reload) $0 stop sleep 1 $0 start ;; *) N=/etc/init.d/$NAME echo "Usage: $N " >&2 exit 1 ;; esac
Файл /etc/sysconfig/flow-capture тепер можна записати в такий спосіб
Після чого при запуску демона flow-capture будуть запущені всі перелічені у файлі екземпляри колекторів. Окремо для сервера на базі ОС Linux на порту 9801 та окремо для маршрутизатора Cisco на порту 9802. Запускаємо демон flow-capture і, при необхідності додаємо його в автозапуск.
Аналіз трафіку за допомогою flow-tools
Після запуску колектора в директоріях /var/flow-tools/server та /var/flow-tools/router збиратиметься статистика для відповідного обладнання. Дані директорії матимуть структуру виду: рік/рік-місяць/рік-місяць-число/файли-статистики В утиліти flow-tools входять такі корисні утиліти для аналізу мережевого трафіку:
- flow-cat – конкатенація (склеювання) окремих файлів flow-tools;
- flow-filter – фільтрація NetFlow;
- flow-stat – створення звіту;
- flow-print - відображення статистики у зрозумілій людині формі.
Докладніше можна знайти в мануалі до flow-tools або окремої утиліти.
Приклади використання flow-tools
Виводимо всю статистику за 2011 рік.
Виводимо статистику з'єднань машини з адерсом 192.168.0.101 з інтернетом (порт 80).
Створюємо файл flow.acl з яким прописуються відповідні рядки.
Застосування flow-nfilter
Утиліта flow-nfilter дозволяє будувати складні та інформативні звіти з різних параметрів. Насамперед необхідно створити відповідний файл filter.cfg і відповідно до посібника з flow-nfilter описати необхідні фільтри. Наприклад, нам потрібно отримати статистику щодо певного користувача та його доступу до Інтернету. Для цього створюємо файл filter.cfg з таким вмістом: