Збираємо статистику за допомогою NetFlow

збираємо

Декілька слів про NetFlow

Мережевий протоколNetFlow спочатку розроблявся Cisco (goo.gl/vM2l7) для технології комутації пакетів у пристроях цієї компанії, але зараз використовується, в основному, для обліку трафіку. Його специфікації відкриті, тому з часом NetFlow став зразком і застосовується не тільки в Cisco, а й рішеннях інших компаній (на зразок Juniper і Enterasys) та ОС. На сьогодні зрозуміло кілька версій. Протокол NetFlow v1, зроблений на Одна тисяча дев'ятсот дев'яносто року, використовувався в маршрутизаторах для комутації пакетів, коли перший пакет потоку створював запис у таблиці маршрутизації (насправді кеш), яка потім застосовувалася до всього згустку.

На базі v9 з декількома розширеннями було створено протокол IPFIX (IP Flow Information Export, RFC 3917), який у кулуарах називають NetFlow v10. При цьому v2-4 є внутрішньою реалізацією Cisco, що не набула великого поширення.

Тому після першої версії відразу з'явилася популярніша v5, можливостей якої достатньо більшості завдань в IPv4 мережах. Мережевий трафік аналізується лише на рівні сеансів, запис (flow record ) створюється кожної транзакції TCP/IP.

Наприклад, у Cisco ASA NetFlow використовується для динамічного відстеження потоків. Щоб виявити різні дії, таки задіяні особливі поля v9 (Netflow Security Event Loging, NSEL), які потім порівнюються з шаблонами.

статистику

  • Сенсор — збирає статистику з усіх сеансів (потоків трафіку, flows) і відправляє колектору. Сенсори встановлюються всіх маршрутизаторах чи інших пристроях, статистику з яких необхідно зібрати. Залежно від опцій інформація скидається після того, як сенсор визначив, що потікзакінчився, або періодично в міру накопичення даних.
  • Коллектор — збирає дані, одержувані від сенсорів UDP або SCTP (Stream Control Transmission Protocol), і забезпечує їх зберігання, формат зберігання залежить від реалізації. Колектор зазвичай приймає дані про трафік на Дві тисячі 50 5 порту, але в деяких реалізаціях це може бути 9555, Дев'ять тисяч дев'ятсот дев'яносто 5 або будь-який інший певний адмін;
  • Аналізатор — аналізує зібрані колектором дані та виводить їх у вигляді звітів (таблиці та графіки).

Можна встановити комплексне рішення, коли розробник пропонує всі три складові, або зібрати свій варіант сенсор + колектор + аналізатор. В останньому випадку слід враховувати сумісність форматів колектор - аналізатор, хоча деякі проекти пропонують свої конвертери з одного формату до іншого. У перевантажених мережах можлива втрата UDP пакетів, а UDP не інформує необхідність повтору, це може спотворити статистику, особливо враховуючи, що сенсор не зберігає скинуті дані. Ця проблема особливо актуальна для v8 і v9, де в один пакет може бути об'єднана інформація про кілька потоків.

У цьому випадку деякі реалізації дозволяють використовувати SCTP. Хоча цей протокол теж неідеальний, оскільки вимагає взаємодії між колектором NetFlow і кожним детектором NetFlow.

Якщо колектор обслуговує необмежену кількість сенсорів, можуть бути затримки і, знову ж таки, втрати. Також використання UDP краще, коли сенсор зав'язаний на кілька колекторів, адже UDP дуже просто реплікувати.

допомогою

Встановлюємо сенсор на Linux

Підтримка сенсорів NetFlow на даний момент реалізована у багатьох апаратних маршрутизаторах, прошивках DD-WRTтаОС. Наприклад, в анонсованому нещодавно VMware vSphere 5 виникла підтримка Netflow v5, що дає можливість переглядати трафік між віртуальними машинами на одному або різних хостах. Відстежуючи потік трафіку додатків усередині віртуальної машини, адмін може контролювати продуктивність мережі та цільове впровадження трафіку. Для Cisco активація NetFlow для передачі на колектор 192.10.0.2:9001 дуже проста:

Ось далеко не всі варіанти NetFlow-сенсорів, за допомогою яких можна збирати статистику в різних ОС:

  • fprobe (fprobe.sourceforge.net) - працює в Linux, базується на libpcap, є форк fprobe-ulog, який використовує libipulog;
  • ipt-netflow - працює в Linuх і складається з двох модулів: ядра та iptables;
  • Softflowd (code.google.com/p/softflowd) - працює в Linux/FreeBSD, підтримує NetFlow v1/v5/v9/;
  • Pfflowd (mindrot.org/projects/pfflowd) - працює в OpenBSD;
  • nProbe (ntop.org/products/nprobe) — сенсор/колектор, що розширюється під Linux, FreeBSD і Windows, що підтримує NetFlow v5/v9/IPFIX;
  • ipcad (lionet.info/ipcad) — сенсор для Linux, FreeBSD, OpenBSD, Mac OS X/Darwin та Solaris, що підтримує raw BPF-пристрої, PCAP, iptables ULOG & IPQ;

fSonar (softpiua.com/ru/products/softpi/fsonar.html) - сенсор для Windows, що підтримує NetFlow v5/v9;

Якщо в мережі вже є працюючий маршрутизатор, який видає NetFlow, можна пропустити цю частину статті. Ми ж уявімо, що у нас налаштований роутер на Ubuntu/Debian, і ми хочемо збирати статистику.

допомогою

допомогою

статистику

збираємо

Вибір зв'язки колектор + аналізатор справа відповідальна і залежить від необхідності майбутньої обробки даних та їх візуалізації. Найвідомішимколектором є пакетflow-tools, що розробляється Марком Фуллмером і містить масу відповідних інструментів, за допомогою яких можна обробляти зібрану інформацію.

Разом з flow-tools можна використовувати кілька аналізаторів - Perl-скрипт flowscan (caida.org/tools/utilities/flowscan), що обробляє придбані flow-capture (колектор NetFlow з пакета flow-tools) дані та зберігає підсумок у базі даних RRD. Для візуалізації flowscan може використовуватися додаткові модулі звітів: CUFlow, CampusIP, SubNetIO.

Роботу nfcapd та nfdump практично завжди налаштовують через NfSen. Саме тому всі демони пакета nfdump за замовчуванням не стартують, у чому просто переконатися, зазирнувши в/etc/default/nfdump :

Але для початку переконаємось, що все працює. Запускаємо біс для збору nfcapd статистики, як параметр вказуємо каталог для зберігання файлів та UDP порт:

За допомогою параметра '-p' можна зчитувати дані не з мережі, а з файлу pcap.

На перший погляд, інформації трохи, але це якщо не знати, що nfdump вміє виводити інформацію в Чотири різних форматах (line, long, extended і custom), а за замовчуванням використовується самий «небалакучий» line.

Щоб змінити формат, слід використовувати параметр '-o'. Утиліта nfdump має необмежену кількість рис і фільтрів, що дозволяють відібрати відповідну інформацію, все це описано в «man nfdump », тому ретельно зупинятися тут не будемо.

Налаштовуємо NFSen

Переходимо до налаштування NFSen. У репозитаріях потрібного пакета немає, тому встановлення потрібно створювати вручну. Сама програма написана на PHP і Perl, для побудови графіків використовується RRDtool.

Для його роботи буде потрібний стандартний LAMP сервер і Perl модуліMail::Header таMail::Internet. Встановлюємо додатки для задоволення залежностей:

Завантажуємо та розпаковуємо останню версію.

Перейменовуємо та правимо шаблон конфігураційного файлу. Спочатку файлу йде багато змінних, що вказують на збірники установки, майже завжди немає потреби їх змінювати.

допомогою

Крім цього, у файлі можна встановити буфер для nfcapd, розширення для кожного колектора, налаштувати збірники для збору даних і багато іншого. Ставимо.

Скрипт перевірить наявність відповідних Perl-модулів, після чого скопіює складові по зазначених у nfsen.conf каталогах. Запускаємо nfsen, він активує процеси nfcapd:

Створюємо функції для Apache:

статистику

Можливості NFsen розширюються за допомогою плагінів (sf.net/apps/trac/nfsen-plugins). Для встановлення плагіна його потрібно розпакувати в підкаталог plugins, а потім підключити в nfsen.conf, взявши за приклад наявні там шаблони.

Наприклад, щоб відстежити лише SSH трафік, пишемо "src or dst port 22", за необхідності можна вказати IP та інші властивості. Спочатку використовується тільки один профіль - Live, в який записуються дані з усіх джерел, зазначених у nfsen.conf. Щоб побудувати графіки для різних джерел або критеріїв, слід створити відповідні профілі (Live - New Profile).

збираємо

Схожі статті

У міру розширення парку Linux-машин адміністратору буде потрібний успішний інструмент для управління та розповсюдження ПЗ. Це завдання цілком може вирішити m23. Якщо в мережі працює більше десятка комп'ютерів під.

Система резервування інформації AMANDA, вважається однією з кращих серед безкоштовних, але багатьох тримає від її використання, два фактори: вигадана складність уналаштуваннях і те, що вона раб.

Стаття розташована в журналі Сісадмін. Фактично кожен користувач Linux хоч раз і збирав свій дистрибутив. Розробники Calculate Linux пропонують свій варіант. Необхідність мати с.