Аналіз мережевих пакетів – це важлива складова діагностики мережі, що полягає у детальному розшифруванні даних мережевого трафіку. Ця навичка є критично важливою для будь-якого мережевого адміністратора. Аналіз мережевого трафіку – завдання не з легких, оскільки дані не передаються безперервним потоком, а розбиваються на фрагменти, що надсилаються окремо. Для розуміння цих фрагментів потрібно їх збирати та аналізувати, що неможливо зробити вручну. Саме тому було розроблено аналізатори пакетів та мережеві аналізатори. У цій статті ми розглянемо сім найкращих інструментів для аналізу мережевого трафіку.
Перш ніж перейти до огляду інструментів, ми розглянемо основи аналізу пакетів та відмінності між аналізаторами пакетів та мережевими аналізаторами, якщо такі існують. Далі ми детально розглянемо кожен з семи обраних інструментів, включно з утилітами командного рядка та інструментами з графічним інтерфейсом, що працюють у різних операційних системах.
Що таке аналіз пакетів та мережеві аналізатори?
З метою цієї статті, ми розглядатимемо аналіз пакетів та мережевий аналізатор як синоніми. Хоча деякі фахівці можуть стверджувати, що це різні речі, в контексті нашої статті вони мають спільну мету – аналіз мережевого трафіку.
Аналізатори пакетів зазвичай виконують три основні функції: захоплення всіх пакетів даних, що проходять через мережевий інтерфейс; фільтрація певних пакетів для збереження на диску; аналіз отриманих даних. Саме в останній функції аналізатори пакетів найбільше різняться.
Для фактичного захоплення пакетів даних більшість інструментів використовують зовнішні модулі, такі як libpcap у системах Unix/Linux та Winpcap у Windows. Зазвичай ці інструменти встановлюються автоматично разом з аналізаторами пакетів.
Важливо пам’ятати, що навіть найкращий аналізатор пакетів не зробить всю роботу за вас. Це лише інструмент. Щоб ефективно його використовувати, необхідно навчитися використовувати його можливості для пошуку та усунення проблем. Аналізатор дозволяє побачити трафік, але потрібно вміти аналізувати цю інформацію, щоб знайти корінь проблеми. Існують навіть спеціалізовані курси, присвячені використанню інструментів захоплення пакетів, що свідчить про складність цього завдання.
Як використовувати аналізатор пакетів
Аналізатор пакетів дозволяє захоплювати та аналізувати трафік, що є ключовим для усунення несправностей у мережі. Для цього спочатку необхідно переконатися, що ви збираєте потрібний трафік. Наприклад, якщо користувачі скаржаться на повільну роботу програми, найкращим варіантом буде захоплення трафіку на мережевому інтерфейсі сервера, де вона розміщена. Аналіз цього трафіку може виявити, чи запити надходять на сервер вчасно, чи є затримки у відповідях. Якщо сервер відповідає повільно, це вказує на проблему з сервером.
Якщо ж сервер відповідає вчасно, то проблема може бути у мережі між клієнтом і сервером. В такому разі потрібно перемістити аналізатор пакетів ближче до клієнта, щоб визначити, де саме виникають затримки. Поступово пересуваючи аналізатор ближче до клієнта, можна локалізувати місце виникнення проблеми.
Для захоплення пакетів зазвичай використовується дзеркалювання портів або реплікація на мережевих комутаторах. Ця функція дозволяє скопіювати весь трафік з певного порту комутатора на інший порт. Наприклад, якщо сервер підключений до порту 15, а ви підключаєте аналізатор пакетів до порту 23 і налаштовуєте реплікацію трафіку з порту 15 на порт 23, ви зможете аналізувати весь трафік, що проходить через порт 15.
Огляд найкращих аналізаторів пакетів та мережевих аналізаторів
Тепер, коли ви розумієте, що таке аналізатори пакетів та як їх використовувати, давайте розглянемо сім найкращих інструментів, які ми обрали. Ми постаралися включити інструменти з командним рядком та графічним інтерфейсом, а також ті, що працюють у різних операційних системах.
1. SolarWinds Deep Packet Inspection and Analysis Tool (БЕЗКОШТОВНА ПРОБНА ВЕРСІЯ)
SolarWinds відомий своїми корисними безкоштовними інструментами та програмним забезпеченням для управління мережею. Одним з таких інструментів є Deep Packet Inspection and Analysis Tool, який входить до складу їхнього флагманського продукту Network Performance Monitor. Хоча цей інструмент виконує подібну до традиційних аналізаторів пакетів функцію, він працює дещо інакше.
Основні функції інструменту: допомога у визначенні та усуненні причин затримок у мережі, ідентифікація програм, на які це впливає, та встановлення, чи є причиною затримок мережа чи програма. Програма також використовує методи глибокої перевірки пакетів для обчислення часу відповіді для понад тисячі програм. Крім того, вона класифікує мережевий трафік за різними категоріями, бізнесовим значенням та рівнем ризику, що допомагає виявляти небажаний трафік.
Інструмент глибокої перевірки та аналізу пакетів SolarWinds є частиною Network Performance Monitor (NPM), потужного рішення для моніторингу мережі, що поєднує такі технології, як SNMP та глибока перевірка пакетів для отримання максимальної інформації про стан вашої мережі. Програма доступна за розумною ціною та має 30-денну безкоштовну пробну версію.
Офіційне посилання для завантаження: https://www.solarwinds.com/topics/deep-packet-inspection
2. tcpdump
Tcpdump – це один з найперших аналізаторів пакетів, створений ще у 1987 році. З того часу він постійно вдосконалювався, але його основний функціонал залишився незмінним. Він попередньо встановлений у більшості операційних систем, подібних до Unix, і є стандартом для швидкого захоплення пакетів. Для фактичного захоплення пакетів tcpdump використовує бібліотеку libpcap.
За замовчуванням tcpdump фіксує весь трафік на вказаному інтерфейсі та виводить його на екран. Також можна зберегти захоплений трафік у файл та проаналізувати його пізніше. Однією з ключових особливостей tcpdump є можливість застосування фільтрів та передавання вихідних даних в grep для подальшої фільтрації. Досвідчений користувач може використовувати tcpdump, grep та командний рядок для захоплення саме того трафіку, який потрібен для налагодження.
3. Windump
Windump – це, по суті, порт tcpdump для платформи Windows. Він працює аналогічно до tcpdump. Це звичайне явище, коли успішні утиліти переносяться з однієї платформи на іншу. Windump – це утиліта командного рядка, яка не має графічного інтерфейсу. Параметри командного рядка та результати Windump майже ідентичні tcpdump. Вихідні дані також можна зберегти у файл для подальшого аналізу.
Однією з головних відмінностей від tcpdump є те, що Windump не вбудований у Windows. Його потрібно завантажити з веб-сайту Windump. Програмне забезпечення поставляється у вигляді виконуваного файлу та не потребує встановлення. Як і tcpdump використовує libpcap, Windump використовує Winpcap, який потрібно завантажити та встановити окремо.
4. Wireshark
Wireshark – це еталон у світі аналізу пакетів. Він став стандартом де-факто, на який орієнтується більшість інших інструментів. Wireshark має потужні можливості не тільки для захоплення трафіку, але й для його аналізу. Багато адміністраторів використовують tcpdump або Windump для захоплення трафіку у файл, а потім завантажують його у Wireshark для аналізу. При запуску Wireshark вам буде запропоновано відкрити існуючий файл pcap або почати захоплення трафіку. Wireshark також має велику кількість фільтрів, які дозволяють зосередитися на потрібних даних.
Хоча Wireshark має круту криву навчання, його варто вивчити. Цей інструмент неодноразово доведе свою цінність. Він доступний для майже всіх операційних систем та є безкоштовним.
5. Tshark
Tshark – це щось середнє між tcpdump та Wireshark. Tshark є інструментом командного рядка, як tcpdump, але він також аналізує трафік, як Wireshark. Він розроблений тими ж авторами, що і Wireshark, і є, по суті, командно-рядковою версією Wireshark. Він використовує ті ж фільтри, що і Wireshark, що дозволяє швидко виділити потрібний трафік.
Навіщо потрібна командно-рядкова версія Wireshark? Основна причина полягає в тому, що Tshark можна використовувати на серверах без графічного інтерфейсу.
6. Network Miner
Network Miner – це скоріше інструмент для судово-медичної експертизи, ніж звичайний аналізатор пакетів. Він відстежує потік TCP та відновлює всю розмову. Network Miner може працювати в автономному режимі, імпортуючи файли захоплення для аналізу. Це корисно, оскільки програмне забезпечення працює лише в Windows. Ви можете використовувати tcpdump в Linux для захоплення трафіку, а потім аналізувати його за допомогою Network Miner у Windows.
Network Miner доступний у безкоштовній версії, але для розширених функцій, таких як геолокація на основі IP-адрес та створення скриптів, потрібно придбати професійну ліцензію. Професійна версія також має можливість декодування та відтворення VoIP-дзвінків.
7. Fiddler (HTTP)
Деякі користувачі можуть стверджувати, що Fiddler не є ні аналізатором пакетів, ні мережевим аналізатором. Можливо, вони мають рацію, але ми вирішили включити цей інструмент до нашого списку, оскільки він дуже корисний у багатьох ситуаціях. Fiddler захоплює трафік, але тільки HTTP. З огляду на те, що сьогодні багато програм є веб-орієнтованими або використовують HTTP у фоновому режимі, Fiddler може бути дуже корисним інструментом для усунення несправностей.
Перевага Fiddler перед повноцінними аналізаторами пакетів, такими як Wireshark, полягає в тому, що Fiddler розроблений спеціально для розуміння HTTP-трафіку. Він виявляє файли cookie, сертифікати та фактичні дані, що надходять з HTTP-програм. Fiddler є безкоштовним та доступний лише для Windows, хоча є бета-версії для OS X та Linux (з використанням Mono).
Висновок
Коли ми публікуємо подібні списки, нас часто питають, який інструмент є найкращим. У цьому випадку ми б відповіли, що “всі”. Всі ці інструменти є безкоштовними та мають свою цінність. Чому б не мати їх усіх під рукою та не ознайомитися з кожним? Коли вам знадобиться їх використовувати, ви будете набагато ефективнішими. Навіть інструменти командного рядка мають велику цінність. Наприклад, їх можна використовувати у скриптах. Уявіть, що у вас виникає проблема о 2:00 кожного дня. Ви можете налаштувати скрипт для запуску tcpdump або Windump між 1:50 та 2:10 та проаналізувати файл захоплення вранці. Не потрібно буде проводити всю ніч без сну.