Сканирование локальной сети и поиск рабочих станций (практический пример)

by Anton Chernousov aka GITA-DEV


Опубликовано: 20 Авг 2018 (последние правки 1 месяц, 4 недели)


Сканирование локальной сети и поиск рабочих станций (практический пример)

Сегодня мы будем удаленно искать потерянные рабочие станции на филиале. Поступила типовая задачка провести инвентаризацию рабочих станций, но как обычно старые записи не соответствуют действительности и многое поменялось, поэтому надо начинать с банального сканирования сети и поиска рабочих станций.

Я не буду сегодня сильно углубляться в теорию, что и как я делаю, просто пробехимся по типовой задаче на реальном окружении. Во первых, все хозяйство на требуемом филиале управляется маршрутизатором Microtic и соответственно все устройства с динамическим IP-адресом мы можем увидеть в списке устройст арендовавших DHCP-адреса. Для просмотра всех устройств арендовавших адреса в нашей локальной сети переходим IP -> DHCP Server -> Leases:

Но, в этом списке мы увидим только тех кто арендовал адреса у DHCP-сервера, но не увидим рабочие станции со статическими адресами и вот тут то нам поможет еще одна замечательная утилитка arp-scan, но обратите внимание, что запускать ее надо с рабочей станции или сервера в этой сети:

# arp-scan -l --interface=enp2s0

В результате выполнения команды мы получим примерно такой вывод данных:

Interface: enp2s0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8.1 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
10.54.4.1      e4:8d:8c:00:b6:5f      (Unknown)
10.54.4.2      02:00:00:6d:0f:09      (Unknown)
...
10.54.4.80     c8:2a:14:58:78:ff      Apple Inc
10.54.4.99     f2:29:ef:04:62:75      (Unknown)
10.54.4.10     a4:08:ea:fe:b7:12      (Unknown)
10.54.4.11     40:9c:28:67:ea:60      (Unknown)
10.54.4.200    ec:eb:b8:c4:a0:c0      (Unknown)
10.54.4.240    8c:dc:d4:5d:f7:e8      (Unknown)
10.54.4.253    30:9c:23:25:12:aa      (Unknown)
10.54.4.50     50:8f:4c:77:97:4a      (Unknown) (DUP: 1)

29 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.8.1: 256 hosts scanned in 1.282 seconds (199.69 hosts/sec). 28 responded

ARP-scan не входит в штатную поставку дистрибутива, поэтому ее надо установить:

# apt install arp-scan

Следующим этапом мы попробуем более детально выяснить что это за адреса и на этом этапе мы будем использовать Nmap, он естественно, тоже в поставку не входит и первым делом мы его установим:

# aptitude install nmap

Теперь напишем небольшой скрипт который проанализирует полученные от arp-scan данные и выгрузит результаты в /tmp/scan/:

#!/bin/sh

arp-scan -l --interface=enp2s0 | awk '{print $1}' | grep "\." | while read line;
   do
       nmap -Pn -sV "$line" > /tmp/scan/"$line".result
   done

Эти данные понадобятся мне для последующего анализа. Так как это довольно длительная операция я один раз собрал данные и теперь по собранным сведениям буду искать рабочие станции Linux с активным 22-ым портом:

#!/bin/sh

find /tmp/scan/*.result | while read line;
   do
   scan=`cat $line | grep "22/tcp"`
   if [ ! -z "$scan" ];
       then
               echo $line | awk -F".result" '{print $1}' | awk -F"/tmp/scan/" '{print $2}'
       fi
   done

Теперь мы можем сопоставить адреса записям в DHCP Leases и определить неучтенные рабочие станции (для мониторинга рабочих станций у меня используется Zabbix).

Аналогчино мы можем найти и Windows-рабочие станции и сервера.

#!/bin/sh

find /tmp/scan/*.result | while read line;
   do
   scan=`cat $line | grep "Windows"`
   if [ ! -z "$scan" ];
       then
               echo $line | awk -F".result" '{print $1}' | awk -F"/tmp/scan/" '{print $2}'
       fi
   done

Можно было конечно реализовать все это более красиво, но задача честно говоря одноразовая и терять день на разработку специализированного решения по крайней мере глупо.


Обратите внимание на статьи:


Какую дополнительную нагрузку на процессор создает копирование данных по сети (защищенное и без криптозащиты)

Какую дополнительную нагрузку на процессор создает копирование данных по сети (защищенное и без криптозащиты)

Я сейчас готовлю небольшой обзор на тему параноидальной защиты OpenVPN и решил поделиться с читателями моего блога результатами эксперимента который мы проводили в рамках тестирования дополнительной нагрузки создаваемой передачей данных внутри OpenVPN сети и при копировании средствами SCP. При резервном копировании большого объема данных у одного и заказчиков наблюдался основательный рост нагрузки на процессор и я решил проверить сколько в пике может создать дополнительной нагрузки на процессор передача данных в OpenVPN-туннеле, SCP-копирование и чистая передача данных.


Графическое удаленное управление современными версиями Ubuntu Linux (Wayland)

Графическое удаленное управление современными версиями Ubuntu Linux (Wayland)

В современных дистрибутивах Ubuntu изменили старый добрый Xorg на новый модный Wayland и теперь все средства удаленного графического администрирования приказали долго жить, что стоит отметить крайне печально, так как новых не завезли. И это касается как x11vnc, так и разного рода TeamViewer и прочих проприетарных систем, ведь они все работали по одному и тому же принципу, а Wayland как я помню вообще не предполагал удаленного доступа к графической консоли.


Конвертация Putty PPK файлов в стандартный Linux PEM-формат

Конвертация Putty PPK файлов в стандартный Linux PEM-формат

Если системный администратор присылает вам SSH-ключ доступа на сервер в формате PPK, то это сразу говорит, о том что он администрирует Linux сервера из уютной Windows и как говориться не познал всех прелестей Linux (у меня к таким админам сразу некоторая настороженность проявляется). И хотя под Linux тоже есть Putty, но я не знаю никого кто в своем уме бы использовал этот шлак.


Расшариваем сетевой ресурс в Ubuntu Linux по NFS

Расшариваем сетевой ресурс в Ubuntu Linux по NFS

Если у вас гетерогенная среда, то тут выбор очевиден и вам придется использовать SAMBA-протокол, но если вам требуется просто расшарить общий ресурс между двумя серверами, то тут выбор склоняется в сторону NFS. Он настраивается гораздо проще чем SAMBA и является нативным решением для Linux.


Подключение и настройка геймпада Xbox 360 в Ubuntu Linux

Подключение и настройка геймпада Xbox 360 в Ubuntu Linux

Джойстик от приставки Xbox360 можно подключить к компьютеру двумя методами: проводным USB-подключением, при помощи специализированного беспроводного адаптера. Мы будем рассматривать именно второй метод - такое подключение,помимо избавления от проводов, позволяет подключить к компьютеру до четырех джойстиков одновременно. Для работы с приемником джойстика Xbox 360 в Ubuntu Linux существует штатный пакет xboxdrv, но в большинстве руководств рекомендуется использовать сторонний репозиторий rael-gc и вот здесь и начинается некоторая путаница.


Есть вопросы?
Спрашивайте и я обязательно вам отвечу!

* Поля обязательные для заполнения .

Блог это некоммерческий проект! Если вам понравился мой блог и то что я пишу помогло вам на практике, то можете сказать спасибо материально.