Как сканировать сеть на наличие IP-адресов linux
Обновлено: 21.11.2024
Беспроводные сети всегда были желанной целью для начинающих хакеров. Беспроводные сети также более уязвимы для взлома, чем проводные.
Забудьте о взломе. Вы когда-нибудь задумывались о том, что кто-то может похитить вашу платную сеть Wi-Fi? Может сосед, который когда-то подключался к вашей сети, а теперь использует ее как свою?
Было бы неплохо проверить, какие устройства есть в вашей сети. Таким образом вы также сможете увидеть, есть ли в вашей сети нежелательные устройства.
Итак, в конечном итоге вы можете подумать: "Как узнать, какие устройства подключены к моей сети"?
В этом кратком руководстве я покажу вам, как это сделать. Это не только хорошая идея с точки зрения безопасности, но и хорошее небольшое упражнение, если вы заинтересованы в работе в сети.
Мы будем использовать как командную строку, так и графический интерфейс, чтобы узнать, какие устройства подключены к вашей локальной сети в Linux. Процесс очень прост и удобен даже для новичков.
Прежде чем вы увидите что-либо из этого, позвольте мне сказать вам, что ваш маршрутизатор также должен отображать все подключенные устройства. Проверьте IP-адрес шлюза и введите его в браузере. Обычно это интерфейс браузера для вашего маршрутизатора. Введите имя пользователя и пароль, и вы сможете увидеть все детали и устройства, подключенные к маршрутизатору.
Если вы не помните пароль маршрутизатора или не хотите идти по этому пути, вот что еще вы можете сделать.
А. Использование команды Linux для поиска устройств в сети
Шаг 1. Установите nmap
nmap — один из самых популярных инструментов сетевого сканирования в Linux. Используйте следующую команду для установки nmap в дистрибутивах Linux на базе Ubuntu:
Вы можете легко установить его и в других дистрибутивах Linux. Он должен находиться в официальном репозитории программного обеспечения.
Шаг 2. Получите диапазон IP-адресов сети
Теперь нам нужно узнать диапазон IP-адресов сети. Используйте команду ifconfig, чтобы найти IP-адрес в Linux. Ищите wlan0, если вы используете Wi-Fi, или eth0, если вы используете Ethernet.
[email protected]:~$ ifconfig
wlan0 Link encap:Ethernet HWaddr 70:f1:a1:c2:f2:e9
inet addr:192.168.1.91 Bcast:192.168.1.255 Mask:255.255 .255.0
inet6 addr: fe80::73f1:a1ef:fec2:f2e8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Метрика:1
RX пакетов:2135051 ошибок:0 отброшено :0 переполнений:0 кадр:0
пакетов TX:2013773 ошибок:0 отброшено:0 переполнений:0 оператор:0
коллизий:0 txqueuelen:1000
байтов RX:1434994913 (1,4 ГБ) Байты для передачи: 636207445 (636,2 МБ)
Важные элементы выделены жирным шрифтом. Как видите, мой IP-адрес — 192.168.1.91, а маска подсети — 255.255.255.0, что означает, что диапазон IP-адресов в моей сети варьируется от 192.168.1.0 до 192.168.1.255.
Вы также можете использовать команду ip a, чтобы узнать свой IP-адрес в Ubuntu и других дистрибутивах Linux.
В то же время я рекомендую вам прочитать об основных сетевых командах Linux для получения дополнительной информации.
Шаг 3. Просканируйте, чтобы найти устройства, подключенные к вашей сети
При сканировании сети для получения более точной информации рекомендуется использовать привилегии суперпользователя. Используйте команду nmap следующим образом:
Отчет о сканировании Nmap для neufbox (192.168.1.1)
Хост работает (задержка 0,012 с).
MAC-адрес: E0:A1:D5:72:5A:5C (неизвестно)
>Отчет сканирования Nmap для takshak-bambi (192.168.1.91)
Хост работает.
Отчет сканирования Nmap для android-95b23f67te05e1c8 (192.168.1.93)
Хост работает (задержка 0,36 с).
Как видите, к моей сети подключено три устройства. Сам роутер, мой ноутбук и мой Galaxy S2.
Если вам интересно, почему я использовал 24 в приведенной выше команде, вы должны немного знать о нотации CIDR. В основном это означает, что сканирование будет осуществляться с 192.168.1.0 до 192.168.1.255.
Б. Использование инструмента с графическим интерфейсом для поиска устройств, подключенных к сети
Когда я впервые написал эту статью, для этой задачи не было инструмента с графическим интерфейсом. Затем я наткнулся на новый инструмент мониторинга сети, разрабатываемый для elementary OS. Я предложил включить в этот инструмент функцию периодического сканирования устройств, и разработчик с готовностью согласился.
Итак, теперь у нас есть инструмент с графическим интерфейсом, который выполняет эту задачу. Он называется Nutty (последнее обновление в 2019 году). Просто установите это приложение и запустите его. Он будет периодически сканировать новые устройства в сети и уведомлять вас о появлении нового устройства.
Это приложение доступно только для elementary OS, Ubuntu и, надеюсь, других дистрибутивов Linux на базе Ubuntu. Вы можете найти инструкции по установке в этой подробной статье на Nutty.
О, вы также можете войти в свой маршрутизатор и увидеть устройства, подключенные к вашим устройствам. Я помогу вам найти лучший способ найти устройства, подключенные к вашей сети.
Вы не можете вспомнить, какие IP-адреса используются в вашей сети? Джек Уоллен покажет вам, как найти эти адреса с помощью двух простых команд.
Сколько раз вы пытались настроить статический IP-адрес для машины в вашей сети только для того, чтобы понять, что понятия не имеете, какие адреса уже заняты? Если вам случится работать с настольным компьютером, вы всегда можете установить такой инструмент, как Wireshark, чтобы узнать, какие адреса используются. Но что, если вы находитесь на сервере без графического интерфейса? Вы, конечно, не будете полагаться на графический инструмент для сканирования IP-адресов. К счастью, есть несколько очень простых в использовании инструментов командной строки, которые могут справиться с этой задачей.
Нетворкинг: обязательно к прочтению
Я собираюсь показать вам, как сканировать вашу локальную сеть (LAN) на предмет используемых IP-адресов с помощью двух разных инструментов (один из которых будет установлен на вашем сервере по умолчанию). Я продемонстрирую на Ubuntu Server 18.04.
Приступим.
Команда arp
Первый инструмент, который мы будем использовать для этой задачи, — это встроенная команда arp. Большинство ИТ-администраторов знакомы с arp, так как он используется практически на каждой платформе. Если вы никогда не использовали arp (что означает протокол разрешения адресов), эта команда используется для манипулирования (или отображения) кешем сетевых соседей ядра IPv4. Если вы вводите arp без спецификатора режима или опций, он распечатает текущее содержимое таблицы ARP. Это не то, что мы собираемся делать. Вместо этого мы выполним следующую команду:
Опция -a использует альтернативный вывод в стиле BSD и печатает все известные IP-адреса, найденные в вашей локальной сети. В выводе команды будут отображаться IP-адреса, а также связанное с ними устройство Ethernet (рис. A).
Рисунок А
Теперь у вас есть список всех IP-адресов, используемых в вашей локальной сети. Единственное предостережение заключается в том, что (если вы не знаете MAC-адрес каждого устройства в вашей сети), вы не будете знать, какой машине назначены IP-адреса. Даже не зная, какая машина связана с каким адресом, вы, по крайней мере, знаете, какие адреса используются.
Далее мы используем команду, которая предлагает дополнительные параметры. Эта команда называется nmap. Вы не найдете nmap установленным на вашем компьютере с Linux по умолчанию, поэтому мы должны добавить его в систему. Откройте окно терминала (или войдите на сервер без графического интерфейса) и введите команду:
sudo apt-get install nmap -y
После завершения установки вы готовы сканировать свою локальную сеть с помощью nmap. Чтобы узнать, какие адреса используются, введите команду:
nmap -sP 192.168.1.0/24
Примечание. Вам потребуется изменить схему IP-адресов, чтобы она соответствовала вашей.
Вывод команды (рисунок B) покажет вам каждый адрес, найденный в вашей локальной сети.
Рисунок Б
Давайте сделаем nmap более полезным. Поскольку он предлагает немного больше гибкости, мы также можем узнать, какая операционная система связана с IP-адресом. Для этого воспользуемся опциями -sT (сканирование TCP-соединения) и -O (обнаружение операционной системы). Команда для этого:
sudonmap -sT -O 192.168.1.0/24
В зависимости от размера вашей сети эта команда может занять некоторое время. И если ваша сеть большая, рассмотрите возможность отправки вывода команды в файл следующим образом:
sudo nmap -sT -O 192.168.1.0/24 > nmap_output
Затем вы можете просмотреть файл в текстовом редакторе, чтобы узнать, какая операционная система подключена к IP-адресу (рис. C).
Рисунок C
С помощью этих двух простых команд вы можете найти используемые IP-адреса в вашей сети. Теперь, когда вы назначаете статический IP-адрес, вы случайно не назначите уже используемый. Мы все знаем, какие головные боли это может вызвать.
Сетевым администраторам необходимо сканировать подключенные устройства в сети в качестве меры безопасности. С появлением Интернета вещей (IoT) все больше устройств подключаются к Интернету. Это вызывает обеспокоенность организаций по защите своей сети и онлайн-ресурсов от любых потенциальных нарушений безопасности. Любая халатность в данном случае может привести к потере потенциальных активов и репутации организации. Это верно, поскольку в последнее время жертвами кибератак стали даже такие крупные игроки, как Github, FireEye, Capitol One и т. д.
Очень важно поддерживать стабильную и безопасную сеть, предотвращая несанкционированный доступ и отслеживая действия законных пользователей. Организации тратят миллионы долларов на то, чтобы обезопасить себя от любых угроз.
В случае какого-либо ужасного события знание того, кто подключен к сети, является первым и наиболее важным шагом к анализу угроз.Это помогает администраторам сузить процесс расследования, а также упрощает отслеживание неполадок.
Что мы рассмотрим?
В этом руководстве мы рассмотрим различные способы обнаружения различных устройств, подключенных к нашей сети. Во-первых, мы увидим инструменты командной строки, изначально доступные в Ubuntu 20.04 для сканирования сети; затем мы увидим сборку программы с графическим интерфейсом для этой цели.
Использование инструмента командной строки Nmap для сканирования сети.
Nmap или Network Mapper, несомненно, является одной из наиболее часто используемых программ для обнаружения хостов, подключенных к сети. Он используется сетевыми администраторами, аудиторами безопасности, тестировщиками проникновения, этическими хакерами и т. д. Он имеет открытый исходный код и доступен для использования бесплатно.
Чтобы установить nmap в Ubuntu 20.04, используйте команду:
После того как Nmap установлен, мы можем использовать его для многих целей, таких как сканирование портов, определение ОС, обнаружение узлов и т. д.
Чтобы узнать, какие устройства подключены к нашей сети, сначала найдите свой сетевой адрес с помощью команды «ip a» или «ifconfig». Ниже мы показали вывод команды «ip a»:
Мы видим, что наш IP-адрес — «192.168.43.216» в сети /24. Таким образом, наш сетевой адрес будет «192.168.43.0/24». Теперь найдите подключенные устройства, выполнив команду:
Вышеприведенный вывод показывает IP-адреса подключенных устройств с их статусом и MAC-адресами. Мы также можем использовать команду:
$ sudo nmap -sn 192.168.43.0/24
$ sudo nmap -sP 192.168.43.0/24
Все выходные данные идентичны.
Использование команды ARP-SCAN для обнаружения сетевых устройств.
Команда arp встроена в большинство дистрибутивов Linux. ARP — это аббревиатура от Address Resolution Protocol. Он используется для отображения и изменения кеша arp. Кэш ARP преобразует IP-адрес в физический адрес или, говоря простым языком, в MAC-адрес машины. Для ускорения последующего поиска ARP он сохраняет сопоставление ARP.
Команда ARP-SCAN — это инструмент arp-сканера, который передает пакеты ARP для идентификации устройств, подключенных к вашей локальной сети или локальной сети. Чтобы установить ARP-SCAN в вашей системе Ubuntu, используйте команду:
Чтобы просканировать сеть с помощью arp-scan, запустите команду с правами sudo:
Здесь enp0s3 — это имя интерфейса, который мы используем для отправки пакетов arp. В вашем случае может быть иначе. Снова используйте команду «ip a» или «ifconfig», чтобы определить имя интерфейса в вашей системе.
Использование инструментов сетевого сканера для сканирования сетевых устройств.
Помимо инструментов на основе командной строки, для Linux доступно множество инструментов для сканирования IP-адресов с графическим интерфейсом. Возможности и функциональность этих инструментов могут различаться. Одним из популярных инструментов сканирования IP-адресов является Angry IP Scanner.
После загрузки файла откройте его с помощью установки программного обеспечения. AngryIp требует, чтобы в вашей системе была установлена Java. Если Java еще не установлена в вашей системе, она будет автоматически установлена в процессе установки программного обеспечения.
После завершения установки сканер AngryIP можно запустить из меню приложения следующим образом:
Да, использовать AngryIP для сканирования сети очень просто. Он покажет количество активных хостов и открытых портов.
Заключение
В этом руководстве мы рассмотрели различные способы сканирования сети. Если у вас есть большая сеть устройств, например, ИТ-отдел организации, мы рекомендуем вам использовать брандмауэр от некоторых известных поставщиков. Брандмауэр предприятия имеет больше возможностей и контроля над сетью. С помощью брандмауэра, помимо сканирования большой сети с несколькими подсетями, мы можем ограничить использование полосы пропускания, заблокировать пользователей и службы, предотвратить сетевые атаки и т. д.
Об авторе
Али Имран Нагори
Али Имран — технический писатель и энтузиаст Linux, который любит писать о системном администрировании Linux и связанных с ним технологиях. Вы можете связаться с ним в LinkedIn
.
В моей работе много компьютера и хочется пошутить. Я могу закрыть компьютер по сети, но мне трудно найти IP-адреса.
Как легко найти все IP-адреса в Интернете от 192.168.1.aa до 192.168.1.zz?
5 ответов 5
Как правило, nmap весьма полезен для быстрого сканирования сетей.
Чтобы установить nmap, введите в терминале следующую команду:
После установки приложения введите следующую команду:
Это покажет вам, какие хосты ответили на запросы ping в сети между 192.168.1.0 и 192.168.1.255.
Для более старых версий Nmap используйте -sP :
Дополнительные ссылки см. на следующих страницах:
Это очень полезный инструмент для изучения.
Если все компьютеры в вашей сети используют Ubuntu или любой другой дистрибутив, использующий avahi-daemon (DNS-SD), вы можете получить их подробный список (с именем хоста и IP-адресом), выполнив следующие действия:
Если вы хотите узнать все IP-адреса, используемые в вашей сети, вы можете использовать arp-scan:
Поскольку он не установлен по умолчанию, вам придется установить его с помощью sudo apt-get install arp-scan . arp-scan отправляет пакеты ARP в локальную сеть и отображает полученные ответы, поэтому он показывает даже хосты, защищенные брандмауэром (которые блокируют трафик на основе IP-пакетов).
Эта команда определенно лучше, чем приведенная выше. Запуск nmap занял целую вечность, но этот мгновенно ответил узлами в указанной сети.
В моем случае очень часто arp-scan не находит все устройства, связанные с моей беспроводной сетью. Теперь, например, sudo arp-scan 192.168.2.0/24 показывает 2 результата (.1 и .1), а nmap -sn 192.168.2.0/24 показывает 4 результата (.1, .2, .3 и .4). . Так что, похоже, nmap точнее (я точно знаю, что к сети подключено 4 устройства). Почему это?
Возможно, я нашел ответ в комментарии к другому вопросу. «Следует отметить, что некоторые устройства могут не отображаться, если они не включены. Мой Nexus 4 не будет отображаться, если не включен экран». Однако интересно, что на запросы ping от nmap всегда отвечают одни и те же устройства.
Примечание для читателя: оригинальный ответ был опубликован некоторое время назад и в то время, когда я только изучал сценарии оболочки. См. обновленную версию ниже для нового и улучшенного скрипта, который работает намного быстрее.
Исходный ответ
Пересмотренный ответ
Первоначально я опубликовал этот ответ в августе 2015 года. С тех пор я узнал немного больше о сценариях оболочки, и когда я увидел этот сценарий, я подумал, что было бы неплохо вернуться к этому ответу, чтобы добавить несколько улучшения. Вот несколько идей:
Сценарий явно работает медленно, и команда ping ожидает ответа от хоста. По умолчанию пинг для двух RTT, который может варьироваться в зависимости от того, насколько перегружена ваша сеть, и, насколько я понимаю, протокол TCP удваивает время ожидания каждый раз (по крайней мере, согласно этому). Таким образом, мы можем заставить ping истечь время ожидания с помощью флага -w 1. Так как у нас 256 адресов и мы предполагаем, что на каждый адрес приходится 1 секунда, скрипт займет примерно 256/60 = 4,27 минуты.
Выполнить команду, а затем зафиксировать ее статус выхода с помощью $? действительно не было необходимости. Если . тогда;. fi может работать с командами напрямую. Другими словами, достаточно сделать следующее:
Команду printf можно переписать так:
Это скорее стилистическое изменение, но оно согласуется с тем, как работает и выглядит printf во многих других языках, с кавычками переменной "$NUM". Цитировать здесь не обязательно — поскольку мы имеем дело только с числами, нам не нужно предвидеть разбиение на слова из-за наличия пробелов в переменной.
Значительного улучшения производительности можно добиться, если запустить несколько фоновых процессов. Редактирование сценария ниже делает именно это. Я поместил ping и printf в функцию pingf (да, банальное название, я знаю). Теперь есть еще одна главная функция, которая выполняет цикл и вызов pingf .
Насколько это лучше? Неплохо, на самом деле, занимает считанные секунды.
Читайте также: