ARP сканирование локальной сети Linux

04.11.2022, 15:00

Часто появляется нужда в том, чтобы знать, какие девайсы подключены к сети Это нужно в том случае, если вы желаете подключиться к одному из ПК и не имеете четкого представления его ли адрес, или просто хотите удостовериться в том, находится ваша сеть в безопасности или нет, а также найти все скрытые устройства. Выявить все подключенные устройства, включая и скрытые, можно, используя ARP сканирование.

Сканирование при помощи ARP

У любой компьютерной сети есть свой IP-адрес - это известно каждому. Задавались ли вы вопросом, какой компьютеру присваивается конкретный адрес? Известно, что есть разные сети - проводные, беспроводные, ppp. В каждой сети аппаратный адрес вычислительной машины имеет свой формат, что зависит от конструктивных особенностей локальной сети.

Объясним, все на деле очень просто. Для преобразования физического адреса в IP предусмотрен ARP, Проще говоря, это протокол разрешения адресов. Когда компьютер выходит в сеть, он делает запрос остальным ПК, и задает вопрос - ""У кого IP адрес XXX.XXX.X.X". Его ответ не остается без внимания, но выглядит он несколько иначе - "У меня, мой адрес xx:xx:xx:xx:xx". То есть в ответ посылается физический адрес. Этот адрес заносится в специальную таблицу.

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

Устанавливаем утилиту

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

Сканер сети доступен для следующих ОС:

Debian;

Ubuntu;

Fedora;

RedHat;

Gentoo;

ArchLinux.

Для установки выполним:

$ sudo apt install arp-scan

Сканирование

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

В начале узнаем сетевой интерфейс, используя программу ip:

$ ip addr list

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

Мы видим здесь enp24s0. Наиболее просто это сделать с ARP, выполнив сканирование и выйти каждый подключенный к сети ПК - запустить программу, задав параметры:

$ 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. Но далеко не все системы ответят на такой запрос Поэтому в такой ситуации сканер будет неэффективен.