Способи оплати Abuse

ARP сканування локальної мережі Linux

08.06.2024, 15:00

Часто з'являється потреба в тому, щоб знати, які девайси під'єднані до мережі. Це потрібно в тому разі, якщо ви бажаєте під'єднатися до одного з PC і не маєте чіткого уявлення, чи є його адреса, чи просто хочете упевнитися в тому, чи перебуває ваша мережа у безпеці, чи ні, а також знайти всі приховані пристрої. Виявити всі під'єднані пристрої, включно з прихованими, можна, використовуючи ARP сканування.

Що таке ARP

ARP (Address Resolution Protocol) - протокол, який використовується в комп'ютерних мережах для зв'язку між вузлами мережі. Він використовується для зіставлення IP-адрес мережевих пристроїв з їхніми фізичними MAC-адресами. Коли вузол у мережі хоче надіслати дані іншому вузлу, він використовує ARP для визначення MAC-адреси одержувача на основі його IP-адреси.

У Linux ARP-таблиця зберігається в оперативній пам'яті і містить відповідності IP-адрес і MAC-адрес інших пристроїв у мережі. Ви можете переглянути вміст ARP-таблиці в Linux за допомогою команди arp -a. Linux надає інструменти для виконання ARP-операцій, як-от додавання статичних записів ARP або очищення ARP-кешу. ARP є важливим елементом функціонування мереж TCP/IP і відіграє вирішальну роль в обміні даними між пристроями в локальній мережі.

Сканування за допомогою ARP

У будь-якої комп'ютерної мережі є своя IP-адреса - це відомо кожному. Чи задавалися ви питанням, який комп'ютеру присвоюється конкретна адреса? Відомо, що є різні мережі - дротові, бездротові, ppp. У кожній мережі апаратна адреса обчислювальної машини має свій формат, що залежить від конструктивних особливостей локальної мережі.

Пояснимо, все на ділі дуже просто. Для перетворення фізичної адреси в IP передбачено ARP, Простіше кажучи, це протокол дозволу адрес. Коли комп'ютер виходить у мережу, він робить запит до решти ПК і ставить запитання - ""У кого IP адреса XXX.XXX.X.X". Його відповідь не залишається поза увагою, але виглядає вона дещо інакше - "У мене, моя адреса xx:xx:xx:xx:xx:xx:xx". Тобто у відповідь надсилається фізична адреса. Ця адреса заноситься в спеціальну таблицю.

Потрібно сказати, що формат повідомлень ARP вкрай простий. У повідомленні ховається або запит з IP-адресою, або відповідь. Розмір повідомлення залежить від протоколу - IPv4 або IPv6, типу обладнання мережі. У заголовку повідомлення вказані типи і розміри цих повідомлень. Заголовок закінчується кодом повідомлення. Для запиту код 1, а для відповіді - 2. У тілі повідомлення вказано чотири адреси, апаратні та мережеві адреси, які належать відправнику та одержувачу.

Встановлюємо утиліту

Утиліту ARP Scan ще називають MAC Scanner - зручний, функціональний інструмент для сканування локальної мережі Linux за допомогою ARP. Програма відображає Pv4 адреси пристроїв мережі. Особливість ARP у тому, що вона не задіює маршрутизацію. Такий вид сканування підходить тільки для локальної мережі. Програма виявляє активні пристрої, комп'ютери не можуть сховатися від ARP. Якщо комп'ютер потрібно виявити за межами локальної мережі, використовується ping сканування.

Сканер мережі доступний для таких OS:

  1. Debian;
  2. Ubuntu;
  3. Fedora;
  4. RedHat;
  5. Gentoo;
  6. ArchLinux.

Для встановлення виконаємо:

$ sudo apt install arp-scan

Сканування

За допомогою програми ви зможете знайти всі активні комп'ютери, як у дротових мережах ethernet, так і в бездротових Wifi мережах. передбачено функціонал для роботи з Token Ring і FDDI. Не послідовність з'єднань PPP і SLIP не передбачена, оскільки в них немає ARP. Працювати з утилітою варто під правами суперкористувача.

На початку дізнаємося мережевий інтерфейс, використовуючи програму ip:

$ ip addr list

APR сканирование

Ми бачимо тут enp24s0. Найпростіше це зробити з ARP, виконавши сканування і вийти на кожен підключений до мережі PC - запустити програму, задавши параметри:

$ sudo arp-scan --interface=enp24s0 --localnet

APR сканирование

Бачимо параметр --interface, що задає інтерфейс сканування, а --localnet, вказує на те, що потрібно застосовувати всі можливі IP адреси для поточної мережі.

Якщо відставимо перший параметр, тоді програма шукатиме всі вузли для інтерфейсу з меншим номером у системі. У нашому випадку це - enp24s0.

Замість параметра --localnet, можна вказати маску мережі:

$ sudo arp-scan --interface=enp24s0 10.0.1.0/24

ARP підходить і в тому разі, якщо в інтерфейсу немає власної IP-адреси. У такому разі як вихідна адреса підходить 0.0.0.0.0. Але далеко не всі системи дадуть відповідь на такий запит Тому в такій ситуації сканер буде неефективним.

Чому не працює ARP

Існує кілька причин, через які ARP може не працювати належним чином у мережі. Деякі з найпоширеніших проблем включають в себе:

  1. Конфлікт IP-адрес: Якщо два пристрої в мережі використовують одну й ту саму IP-адресу, це може спричинити конфлікт ARP.
  2. Неправильна конфігурація мережі: Неправильні налаштування IP-адресації, підмереж або шлюзів можуть призвести до непрацездатності ARP.
  3. Проблеми з мережевим обладнанням: Несправності комутаторів, маршрутизаторів або мережевих карт можуть призвести до неполадок у роботі ARP.
  4. Налаштування безпеки або фільтрації на мережевих пристроях можуть блокувати ARP-пакети.
  5. Зловмисники можуть використовувати атаки типу ARP-отруєння або ARP-флуд, що також може спричинити проблеми з роботою ARP у мережі.

Для діагностики та усунення проблем з ARP рекомендується перевірити налаштування мережевого обладнання, провести аналіз конфігурації IP-адресації, а також використовувати інструменти для відстеження та аналізу мережевого трафіку.