Запуск віддаленого захоплення за допомогою Wireshark та tcpdump

Wireshark tcpdump віддалене захоплення

Wireshark є потужним інструментом, але він має свої обмеження. Якщо у вас є професійне мережеве обладнання, важко проаналізувати трафік, який не стосується вашого комп’ютера. Іноді найпростішим рішенням є використання tcpdump для збору трафіку на віддаленому сервері, а потім запустіть Wireshark, щоб переглянути його.

Що таке Wireshark та tcpdump?

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

Хоча Wireshark робить велику роботу з захоплення кожного пакету, який проходить повз нього, у деяких випадках вам доведеться проаналізувати сеанс з віддаленого сервера. Якщо у вас немає спеціального мережевого обладнання, це може бути складно. Іноді легше збирати трафік на віддаленому сервері, а потім аналізувати його на робочому столі.

tcpdump – аналізатор пакетів командного рядка. Він не такий простий у використанні, як Wireshark, але він так само здатний захоплювати трафік. Оскільки tcpdump працює в термінальному режимі, його можна запустити через сеанс SSH. Завдяки правильним параметрам командного рядка ви можете експортувати сеанс tcpdump, сумісний із Wireshark.

SolarWinds виводить Wireshark на наступний рівень

Wireshark і tcpdump є потужними утилітами, але у них є слабкі місця. Зокрема, дуже важко визначити проблеми із затримкою у вашій мережі, використовуючи Wireshark поза рамкою. Наприклад, ви можете страждати від високого часу пінгу у вашій локальній мережі, і Wireshark не може зробити що-небудь, щоб допомогти.

Переглядач часу реакції SolarWinds для Wireshark (БЕЗКОШТОВНИЙ ІНСТРУМЕНТ)

У такому випадку рекомендую Переглядач часу реакції SolarWinds для Wireshark. Цей плагін розширює Wireshark, що дозволяє діагностувати причину пінг-пінгу та загальну низьку швидкість мережі.

Переглядач часу відгуку SolarWinds для Wireshark

Переглядач часу відповіді SolarWinds для WiresharkDownload 100% БЕЗКОШТОВНО

Монітор продуктивності мережі SolarWinds (БЕЗКОШТОВНА ПРОБЛЕМА)

SolarWinds також робить чудове рішення “все в одному” для вашої мережі. Це називається Монітор ефективності роботи мережі (НПМ), і це значно спрощує управління мережею. Наприклад, використовуючи мережевий монітор SolarWinds, ви можете відстежувати та керувати бездротовою локальною мережею, генерувати базову ефективність та отримувати попередження про безпеку в реальному часі.

Зображення монітора продуктивності мережі SolarWinds

Монітор продуктивності мережі SolarWinds можна спробувати без ризику протягом 30 днів. Зареєструйтесь тут безкоштовно.

SolarWinds Network Performance MonitorDownload 30-денна безкоштовна пробна версія

Перед тим як ти почнеш

Для того, щоб дотримуватися вказівок у цьому посібнику, вам знадобляться наступні:

  • Віддалений комп’ютер із встановленим SSH-сервером та tcpdump
  • Кореневий доступ
  • Послуги, що генерують мережевий трафік, наприклад Apache або node.js, що працюють на віддаленому комп’ютері
  • Місцевий комп’ютер із встановленим SSH-клієнтом та Wireshark

Мета – використовувати tcpdump на віддаленому комп’ютері, через SSH, для збору мережевого трафіку. Потім захоплений трафік можна скопіювати на локальний комп’ютер для аналізу за допомогою Wireshark.

Це корисно, коли ви не маєте фізичного доступу до віддаленого комп’ютера або працюєте з ним без голови, тобто без клавіатури та монітора.

Захоплення пакетів за допомогою tcpdump

Щоб зафіксувати трафік за допомогою tcpdump, вам потрібно буде підключитися до віддаленого комп’ютера через SSH. Вам також знадобиться кореневий доступ, інакше tcpdump не зможе зафіксувати трафік, і ви побачите помилку, вказуючи Ви не маєте дозволу на зйомку на цьому пристрої.

tcpdump - Захоплення 1

Після підключення виконайте таку команду, щоб почати фіксувати трафік за допомогою tcpdump:

sudo tcpdump -s 0 -i eth0 -w tcpdump.pcap

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

tcpdump - Захоплення 2

Закінчивши захоплення трафіку, закінчіть сеанс tcpdump Ctrl + C. Ви побачите коротке зчитування, де відображається деяка інформація про сеанс захоплення.

tcpdump - Захоплення 3

Перш ніж ви зможете скопіювати трафік з віддаленого комп’ютера на локальний для аналізу за допомогою Wireshark, вам доведеться змінити дозволи. За замовчуванням сеанси tcpdump, захоплені кореневим файлом, не можна скопіювати. Використовуйте цю команду:

sudo chmod 644 tcpdump.pcap

Це дозволить скопіювати файл на локальний комп’ютер за допомогою scp, як зазначено в наступному кроці.

Копіювання сеансу tcpdump для аналізу

Закінчивши сеанс захоплення tcpdump, у вас залишилася проблема. Як скопіювати його на машину, на якій працює Wireshark для аналізу? Способів дуже багато, але я думаю, що найпростіше – це з scp. Оскільки ви вже захопили пакети на безголівковій машині за допомогою SSH, все, що потрібно для використання scp, уже встановлено та працює.

tcpdump - Захоплення 4

Користувачам Windows доведеться завантажити pscp, після чого скопіювати файл на C: \ Windows \ System32. Більшість користувачів Mac та Linux вже мають все необхідне.

tcpdump - Захоплення 5

У Mac чи Linux відкрийте вікно терміналу та запустіть таку команду, щоб скопіювати файл захоплення сеансу:

scp [email protected]: / шлях / до / файл ./

Або в Windows відкрийте PowerShell і запустіть цю команду:

pscp.exe [email protected]: / шлях / до / файл. \

Замініть інформацію, де це доречно. Вам буде запропоновано ввести пароль. Команди, які я використав, знаходяться на знімку екрана для довідки.

tcpdump - Захоплення 6

Перевірте, чи файл скопійовано як очікувалося, і ви готові проаналізувати сеанс tcpdump за допомогою Wireshark.

Аналіз захопленого сеансу tcpdump за допомогою Wireshark

Аналіз працює так само, як і з будь-яким традиційним захопленням Wireshark; єдине, що вам потрібно знати – це імпортувати файл.

tcpdump - Захоплення 7

Запустіть Wireshark, а потім імпортуйте захоплений сеанс tcpdump за допомогою Файл -> відчинено і перегляньте свій файл. Ви також можете подвійне клацання файл захоплення, щоб відкрити його у Wireshark, доки він має розширення файлу * .pcap. Якщо ви використовували Якщо ви запустили tcpdump, файл завантажиться нормально і відобразить трафік.

tcpdump - Захоплення 7

У моєму випадку я запускаю сервер Apache на віддаленому хості, і мені цікаво переглянути дані HTTP. Я встановлюю відповідний фільтр перегляду Wireshark і можу переглядати захоплені кадри як завжди.

Як тест, я вклав елемент у код HTML, який не відображається на сторінці. Я повинен мати можливість знайти його в потоці даних і переглянути його за допомогою Wireshark.

tcpdump - Захоплення 8

Як бачимо, Wireshark вміє аналізувати кожен кадр і відображати дані просто чудово. Елемент, який я приховав, показаний у наведеному вище прикладі. Процес захоплення трохи більше задіяний, коли ви використовуєте tcpdump, але все в Wireshark працює як завжди.

Використання параметрів командного рядка для tcpdump

Більшу частину часу, коли ви запускаєте tcpdump, вам потрібно буде контролювати, як ви збираєте пакети та де зберігаєте сеанс. Ви можете керувати такими, використовуючи параметри командного рядка. Ось деякі з найкорисніших варіантів командного рядка для tcpdump.

tcpdump -w

The Опція командного рядка дозволяє вивести сумісний вихід Wireshark. Він займає єдину змінну, яка є вихідним ім’ям файлу. Журнали захоплення, збережені за допомогою цієї опції, не будуть читатими людьми за межами Wireshark, оскільки вони зберігаються у двійковій, а не в ASCII.

tcpdump -C

The Параметр командного рядка дозволяє встановити максимальний розмір файлу в байтах. Цей варіант працює лише поряд . Наприклад, команда tcpdump -C 1048576 -w capture.pcap задає максимальний розмір зйомки 1MB (1,048,576 байт) виводу у файл capture.pcap.

Якщо сеанс генерує більший обсяг виводу, він створить нові файли для їх зберігання. Отже, захоплення 3 Мб генерує capture.pcap, capture1.pcap, і захоплення2.pcap кожен з розміром файлу 1МБ.

tcpdump -s

The Параметр командного рядка встановлює максимальну довжину для кожного пакету в байтах і обрізає пакет, коли досягнутий максимум. Команда tcpdump -s 0 встановлює необмежену довжину, щоб забезпечити захоплення всього пакету.

tcpdump -i

The -i Параметр командного рядка вказує, який мережевий пристрій ви хочете контролювати tcpdump. Якщо інтерфейс не вказаний, він за замовчуванням застосовується до найменшого інтерфейсу, який зараз працює.

tcpdump -list-інтерфейси

Параметр командного рядка tcpdump -list-інтерфейси надрукує список усіх інтерфейсів, до яких можна приєднати tcpdump. Зауважте, що це не починає сеанс зйомки, але він надасть вам список інтерфейсів для використання з -i варіант вище.

tcpdump -c

The -c Параметр командного рядка повідомляє tcpdump вийти з сеансу після захоплення певної кількості пакетів.

tcpdump -n

The Параметр командного рядка вказує tcpdump ні щоб вирішити IP-адреси до імен хостів. Це корисно при усуненні неполадок веб-сайтів, що стоять за сервером балансування навантаження, а також у кількох випадках, коли використання імені хоста дасть неоднозначні результати.

tcpdump -v | -вв | -ввв

Три варіанти командного рядка, -v, -vv, і -vvv дозволяють збільшити багатослівність вашого сеансу зйомки. -v збереже значення TTL для кожного пакету, а також інформацію про ToS. -vv виводить TTL і ToS разом з додатковою інформацією в пакетах NFS. І -vvv записує все, що роблять перші два варіанти, а також додаткову інформацію з сеансів telnet.

tcpdump -F

The Параметр командного рядка вказує tcpdump використовувати фільтри захоплення із зазначеного файлу. Більше інформації про написання файлу захоплення можна знайти в наступному розділі.

Використання фільтрів захоплення для tcpdump

Фільтри захоплення дозволяють вам звузити дані, які tcpdump зберігає в сеансі. Вони є корисним способом полегшити аналіз і зберегти невеликі файли захоплення. Ось декілька найкорисніших фільтрів захоплення для tcpdump.

господар

Цей фільтр вказує, що слід захоплювати лише трафік до цільового хоста. В якості аргументу він бере IP-адресу або ім’я хоста.

сітка

Чистий фільтр скаже вашому комп’ютеру лише фіксувати трафік у певній підмережі та сприймає IP-адресу як аргумент. Наприклад, 192.168.1.0/24 вказує, що трафік до всіх хостів у підмережі буде захоплений. Зауважте, що маска підмережі в косою позначці потрібна.

хост dst

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

src хост

Як і вище, але цей фільтр фіксує лише трафік, що походить із вказаного хоста чи IP-адреси. Це також можна використовувати з сітка.

порт

Цей фільтр повідомляє tcpdump для збору трафіку до та з даного номера порту. Наприклад, порт 443 буде захоплювати трафік TLS.

портранж

Подібно до фільтра портів, портранж встановлює діапазон портів, на які фіксується трафік. Щоб скористатися фільтром портфеля, вкажіть початковий і кінцевий порт, розділені тире. Наприклад, портранж 21-23.

шлюз

Фільтр шлюзу визначає, що ваш комп’ютер повинен фіксувати лише трафік, який використовував задане ім’я хоста як шлюз. Ім’я хоста необхідно знайти в / тощо / хости.

мовлення

Фільтр мовлення визначає, що tcpdump повинен фіксувати лише трафік, який транслюється всім хостам у підмережі.

IP багатоадресна передача

Цей фільтр повідомляє tcpdump збирати лише трафік багатоадресної передачі в підмережі хост-машини.

та / або / не операторів

Фільтри можна зв’язати разом за допомогою і, або, чи ні оператори. Наприклад, щоб захопити весь веб-трафік на даному хості, ви могли використовувати фільтр порт 80 або порт 443. Або ви могли захопити весь трафік у певній підмережі, крім трансляції пакетів, використовуючи фільтр нетто 192.168.1.0/24 і не транслюється.

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

Складні вирази з кількома операторами

Ще складніші вирази можуть бути побудовані шляхом оточення декількох операцій в одних апострофах і дужках. Наприклад, ви можете контролювати весь поштовий трафік, включаючи SMTP, IMAP, IMAP через TLS, POP3 та POP3 через TLS, через декілька хостів та підмереж, використовуючи таку команду:

tcpdump ‘(хост 10.0.0.1 і нетто 192.168.1.0/24) і ((порт 25 або порт 143 або порт 443 або порт 993 або порт 995))’

Складні вирази з декількома операторами можуть бути дуже корисними, але вони, як правило, зберігаються у фільтр-файл для повторного використання, оскільки одна друкарська помилка призведе до помилки зйомки. Часто їх потрібно готувати достроково і налагоджувати.

Використання файлів фільтрів для tcpdump

Наведені вище фільтри можна запускати в командному рядку, коли запускається tcpdump, але часто корисно створити файл фільтру. Файл фільтра полегшує відтворення параметрів фільтра між захопленнями, оскільки він може бути використаний повторно. Ось етапи написання та використання фільтрувального файлу.

Напишіть файл фільтру

Файли фільтру використовують точно такі ж позначення, як і в командному рядку. Їм не потрібні спеціальні символи чи магічні цифри у верхній частині файлу.

tcpdump - Захоплення 9

Наприклад, ось файл фільтра, який я написав, який охопить весь веб-трафік, що надходить з мого сервера Apache на даний хост. У цьому випадку Chromebook, про який я пишу.

Поки файл читається користувачем, який працює tcpdump, програма намагатиметься проаналізувати все у фільтр-файлі та використовувати його як дійсний фільтр. Коли а файл фільтра використовується разом з фільтруванням командного рядка, вся фільтрація командного рядка буде ігнорована.

tcpdump - Захоплення 10

Інструкція tcpdump використовувати будь-який файл фільтра за допомогою параметр командного рядка, за яким слідує шлях до файлу. У наведеному вище прикладі файл фільтра розташований у тому самому каталозі, в якому я виконую tcpdump.

tcpdump - Захоплення 11

Ось вихідний результат із відфільтрованого сеансу. Видно, що єдині пакети, які реєструються, походять з порт 80 або 443, і виходять до хазяїна в 192.168.1.181.

tcpdump - Захоплення 12

Як тільки ви побачите, що ваш фільтр працює за призначенням, захопіть сеанс, який потрібно проаналізувати за допомогою Wireshark, використовуючи команду, аналогічну цій:

sudo tcpdump -i eth0 -s 0 -w wireshark.pcap -F filter-file

Wireshark і tcpdump

Якщо ви не працюєте з керованим комутатором з порту адміністрування, рано чи пізно вам потрібно буде збирати трафік на віддаленому сервері. Коли Wireshark поодинці не зробить роботу, Wireshark з tcpdump – популярний вибір. Вони дуже добре працюють разом, і, маючи кілька простих варіантів командного рядка, tcpdump експортує сеанси захоплення, які можна легко проаналізувати в Wireshark.

Kim Martin
Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me