
Nmap уже долгое время считается надёжным инструментом информационной безопасности, он используется инженерами и сотрудниками служб безопасности. Это кроссплатформенная утилита, имеющая широкий спектр функцию, не ограничивающихся простым сканированием сетей.
Она содержит утилиты сканирования сетей, используемые для исследования сетей, и предоставляет множество утилит для аудита безопасности. Она позволяет выполнять глубокое изучение IP-пакетов, в том числе содержащих информацию о сервисах, приложениях, идентификации ОС и других характеристиках удалённого хоста. В ней есть опции «интересных портов», помогающие быстро находить порты удалённых хостов, которые часто бывают открытыми.

Утилита сканирования сетей Nmap, выполняющая быстрое сканирование пингом локальной сети
▍ Advanced IP Scanner
Большинство из нас в тот или иной момент времени сталкивалось с Advanced IP Scanner. Этот инструмент уже многие годы обеспечивает возможность быстрого сканирования сетей. Advanced IP Scanner — бесплатная утилита, которая быстро скачивается и мало весит. Начать сканирование сети с её помощью можно всего лишь за пару минут.

Сканирование сети при помощи Advanced IP Scanner
Advanced IP Scanner — это автономный исполняемый файл, который можно просто запускать без установки, что повышает его удобство и простоту использования.
▍ Angry IP Scanner

Angry IP Scanner обеспечивает быстрое и простое сканирование сетей
Он пингует адреса и резолвит имена хостов из DNS. Также он определяет MAC-адреса устройств для OUI lookup
, а его возможности можно легко расширить при помощи опенсорсных плагинов, написанных на Java. Он имеет множество других функций, например, получение имени NetBIOS, рабочей группы, подключенных пользователей Windows, определение веб-серверов и многое другое. Инструмент позволяет экспортировать результаты в CSV, TXT, XML или в файлы списков IP-портов.
Angry IP Scanner — это автономный исполняемый файл, не требующий установки. Однако для его работы требуется установка на хост среды выполнения Java, что для кого-то может оказаться препятствием.
▍ Free IP scanner компании Eusing
Free IP scanner — это простая утилита IP-сканирования, имеющая множество отличных функций. Это быстрый сканер, для обеспечения производительности использующий технологию многопоточности. Пользователь может настраивать уровни приоритетов процесса сканирования и максимальное количество потоков. Разработчик утверждает, что инструмент может сканировать сотни компьютеров в секунду.

Free IP scanner
Для поиска находящихся онлайн-хостов он использует пинг. Опционально он может резолвить имена хостов, находить открытые порты и использовать другие функции в случае нахождения онлайн-хостов. Как и другие сканеры, он может получать информацию NetBIOS, в том числе имя хоста, рабочую группу, подключенного пользователя и MAC-адрес. Результаты сканирования можно сохранять в простой текстовый файл. К сожалению, этот инструмент не имеет автономного исполняемого файла, поэтому его нужно устанавливать. Программа запрашивает код регистрации, однако это freeware-программа, которую можно использовать без регистрации.
▍ Встроенная командная строка и PowerShell
Также для нахождения хостов в сети можно использовать встроенные командные среды, в том числе командную строку и PowerShell. Например, можно выполнить простую однострочную команду для быстрого пинга и возврата всех онлайн-хостов в конкретной подсети:
for /l %i in (1,1,255) do @ping 10.1.149.%i -w 1 -n 1|find /i "ttl=" Кроме того, компания Microsoft предоставляет множество превосходных бесплатных примеров кода для различных ping-утилит, встроенных в галерею PowerShell
. Я пробовал работать с модулем ping_scan, и он неплохо справляется со своей задачей. В галерее есть множество опций для выполнения быстрых и простых сканирований сети при помощи ping.

▍ В заключение
Бесплатные сетевые IP-сканеры позволяют администраторам выполнять мониторинг сети и подключенных хостов. Кроме того, они способны определять типы хостов и производителей устройств, что помогает в обеспечении безопасности сетей. Системные администраторы и сотрудники служб безопасности могут использовать эти простые инструменты для слежения за сетями и создания подробной актуальной документации сети.

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

Disclaimer
Автор не имеет профильного образования, связанного с администрированием сетей, поэтому наверняка имеются неточности и упомянуто не всё, что можно.
Обнаружение
- ping сканирование
Как ни странно, это самый простой и распространенный способ.
- Проверка открытых TCP-портов
Если на устройстве отключен ответ на ping, то можно попробовать установить соединение по какому-либо TCP-порту. В виду того, что портов много и проверка каждого занимает значительное время, обычно проверяются только самые распространенные, напр. 80 или 443, используемые для веб-интерфейса устройства.
- Проверка работы UDP служб
UDP протокол не отправляет подтверждения о получении запроса и поэтому в общем виде сканирование UDP-портов невозможно. Однако можно попробовать опросить службы, прослушивающие UDP-порт и отправляющие ответ на запрос, напр. SNMP
(порт 161) или IPMI
(порт 623). В случае, если получен ответ, отличный от таймаута, то устройство обнаружено. - ARP сканирование
Помимо обычных ICMP
запросов, которые используют утилиты ping, для устройств в том же широковещательном L2-домене можно воспользоваться более быстрым arping
: по диапазону ip-адресов рассылаются широковещательные ARP
пакеты вида «компьютер с IP-адресом XXX, сообщите свой MAC-адрес компьютеру с МАС-адресом запросившего», и если ответ получен, то устройство считается обнаруженным. - CDP/LLDP
Если в сети используется протокол LLDP
(или аналог CDP), то устройства могут собирать сведения о своих соседях, которые можно считать обнаруженными. Эти данные доступны по SNMP.Отмечу, что информация о соседях совместно с результатами
traceroute
может служить основой для построения физической карты сети. - NetBIOS сканирование
Протокол NetBIOS
может быть использован для поиска Windows-машин, например при помощи утилитыnbtscan
. - Журналы DHCP
(предложено alexanster
)В журналах DHCP-серверов есть информация о выдачи ip-адресов по MAC-адресам. Для недавних записей в журнале можно считать, что эти устройства обнаружены.
- ARPWatch
(предложено alexanster
, описано TaHKucT
)Arpwatch отслеживает пары IP-адрес — MAC-адрес, записывая в лог новые, пропавшие и изменившиеся пары. Устройства, попавшие в лог, можно считать обнаруженными.
- Анализ FDB-таблиц коммутаторов
(предложено mickvav
)FDB-таблицы (Forwarding DataBase) управляемых коммутаторов содержат данные о коммутации MAC-адресов абонентов и устройств, т.е. соответствии MAC-адрес устройства — порт коммутатора.
Данные доступны по SNMP
и telnet, и могут быть использованы при построении физической карты сети.
Сбор сведений
После того, как устройство обнаружено, можно переходить к сбору сведений о нем.
Используя ARP протокол, по ip можно получить MAC-адрес, а по нему вероятного производителя (часть оборудования допускает смену адреса, так что метод не очень надежен). Далее можно воспользоваться утилитой nmap
, которая сканируя открытые порты, сверяется со своей базой отпечатков и делает предположение
об используемой операционной системе, её версии и типе устройства.
Получение типа устройства и используемой ОС при помощи nmap
nmap -O -v 192.168.0.1
Starting Nmap 7.60 ( https://nmap.org ) at 2018-03-04 01:17 RTZ 2 (ceia)
Initiating ARP Ping Scan at 01:17
Scanning 192.168.0.1 [1 port]
Completed ARP Ping Scan at 01:17, 0.70s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 01:17
Completed Parallel DNS resolution of 1 host. at 01:17, 0.00s elapsed
Initiating SYN Stealth Scan at 01:17
Scanning 192.168.0.1 [1000 ports]
Discovered open port 80/tcp on 192.168.0.1
Discovered open port 49152/tcp on 192.168.0.1
Discovered open port 1900/tcp on 192.168.0.1
Completed SYN Stealth Scan at 01:17, 0.13s elapsed (1000 total ports)
Initiating OS detection (try #1) against 192.168.0.1
Retrying OS detection (try #2) against 192.168.0.1
WARNING: OS didn't match until try #2
Nmap scan report for 192.168.0.1
Host is up (0.00s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
80/tcp open http
1900/tcp open upnp
49152/tcp open unknown
MAC Address: A0:F3:C1:35:21:58 (Tp-link Technologies)
Device type: WAP
Running: Linux 2.4.X
OS CPE: cpe:/o:linux:linux_kernel:2.4.36
OS details: DD-WRT v24-sp1 (Linux 2.4.36)
Network Distance: 1 hop Чтобы получить более подробные сведения по устройству потребуется один из следующих способов:
- SNMP
Протокол SNMP
почти всегда поддерживаем маршрутизаторами и коммутаторами; имеется в Windows (соответствующая служба по умолчанию отключена); для Linux требуется установка демона snmpd. По всей видимости последняя третья версия достаточно сложна в реализации, поэтому предыдущая версия 2с до сих пор актуальна, хотя и не рекомендуема из-за отсутсвия шифрования при передаче данных. Протолок работает на 161 UDP-порту устройства.Для работы с SNMP можно использовать пакет утилит Net-SNMP
. Чтобы получить, к примеру, описание устройства, надо указать версию протокола, пароль на чтение (community read, по умолчанию public) и адрес, в нотации SNMP называемый OID (object identificator) и состоящий из чисел и точек. Все адреса устройства можно представить в виде дерева, где адреса отсортированы в лексикографическом порядке. Протокол позволяет запросить текущее значение по адресу, а также адреса следующие за текущим.Получение описания устройства при помощи snmpget
snmpget -v 2c -c public 192.168.0.102 1.3.6.1.2.1.1.1.0 SNMPv2-MIB::sysDescr.0 = STRING: Linux debian 3.16.0-4-586 #1 Debian 3.16.43-2+deb8u2 (2017-06-26) i686Стандартный набор адресов весьма ограничен и содержит описание устройства, контакты, расположение и время работы (uptime). Остальные адреса зависят от производителя устройства и могут быть получены сканированием, например, утилитой snmpwalk. К счастью, Linux и Windows имеют типовые адреса для сетевых интерфейсов и загруженности процессоров/памяти, поэтому для них лишь знать (или уметь определить) используемую операционную систему.
Получение описания дисков Linux при помощи snmpwalk
snmpwalk -v 2c -c public 192.168.0.102 1.3.6.1.4.1.2021.9.1.2 UCD-SNMP-MIB::dskPath.1 = STRING: / UCD-SNMP-MIB::dskPath.2 = STRING: /var UCD-SNMP-MIB::dskPath.3 = STRING: / UCD-SNMP-MIB::dskPath.4 = STRING: /run UCD-SNMP-MIB::dskPath.5 = STRING: /dev/shm UCD-SNMP-MIB::dskPath.6 = STRING: /run/lock UCD-SNMP-MIB::dskPath.7 = STRING: /sys/fs/cgroupПолучение описания дисков Windows при помощи snmpwalk
snmpwalk -v 2c -c public localhost 1.3.6.1.2.1.25.2.3.1.3 HOST-RESOURCES-MIB::hrStorageDescr.1 = STRING: C:\ Label: Serial Number a65ceb77 HOST-RESOURCES-MIB::hrStorageDescr.2 = STRING: D:\ Label: Serial Number ded9f83e HOST-RESOURCES-MIB::hrStorageDescr.3 = STRING: E:\ Label: Serial Number 8e764a1 HOST-RESOURCES-MIB::hrStorageDescr.4 = STRING: I:\ HOST-RESOURCES-MIB::hrStorageDescr.5 = STRING: Virtual Memory HOST-RESOURCES-MIB::hrStorageDescr.6 = STRING: Physical Memory - WMI
Технология WMI
— это расширенная и адаптированная под Windows реализация стандарта WBEM
, позволяющая удаленно не только считывать параметры, но и управлять устройством. W MI работает поверх RPC
(TCP порт 135) и DCOM
(на произвольном TCP порту выше 1024), активно используется в скриптах Power Shell
(ранее Windows Script Host).Данные можно запрашивать, разумеется, только с Windows машин.
Получение информации об оперативной памяти в PowerShell
Get-WmiObject win32_OperatingSystem |%{"Total Physical Memory: {0}KB`nFree Physical Memory : {1}KB`nTotal Virtual Memory : {2}KB`nFree Virtual Memory : {3}KB" -f $_.totalvisiblememorysize, $_.freephysicalmemory, $_.totalvirtualmemorysize, $_.freevirtualmemory} Total Physical Memory: 2882040KB Free Physical Memory : 612912KB Total Virtual Memory : 5762364KB Free Virtual Memory : 1778140KBТакже имеется консольная утилита wmic
и ее Linux-портПолучение производителя устройства при помощи wmic
wmic /USER:admin /PASSWORD:mypassword /NODE:"192.168.0.100" computersystem get Manufacturer Manufacturer Gigabyte Technology Co., Ltd. - Агент системы мониторинга, напр. Zabbix или Check_MK
Если имеется возможность, то на устройстве устанавливается небольшая программа, работающая в фоне и собирающая данные. Преимущество использования агентов в том, что получение данных унифицировано вне зависимости от используемого устройством оборудования и операционной системы, а также возможно собирать данные доступные только локально (к примеру результат работы консольной программы).
- SSH
Исходно данные по SSH
можно получать с Linux и iOS устройств. Для Windows и Android потребуется установка SSH-сервера.Получение информации о CPU по SSH
cat /proc/cpuinfo processor : 0 Processor : AArch64 Processor rev 4 (aarch64) Hardware : sun50iw1p1 BogoMIPS : 48.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4 processor : 1 ... - Запрос данных у управляющего сервиса
, такого как гипервизор
виртуальных машин
Как это работает на примере Zabbix
Как известно Zabbix
может самостоятельно обнаруживать новые устройства в сети и автоматически опрашивать некоторые их параметры. Называется это — Low Level Discovery
.
Обнаружение устройств задается правилами сетевого обнаружения
, которые комбинируют перечисленные ранее методы обнаружения, определяют доступно ли устройство и какой шаблон к нему применить (обычно исследуется описание устройства). Шаблон содержит список свойств, которые можно получить с устройства, а также правила для обнаружения и создания новых, выполняемые по таймеру.
В случае агента правило будет выглядеть немного иначе: запросить у агента одно из discovery-свойств, к примеру system.cpu.discovery
, получить список процессоров в виде json
[ {"NUMBER": 0, "STATUS": "online"}, {"NUMBER": 1, "STATUS": "online"}
] Заключение
Как видно всё достаточно просто и никакой магии нет. Если вы знаете еще какие-либо способы обнаружения устройств или получения их свойств, то просьба сообщить о них.
Существуют Linux-команды, которые всегда должны быть под рукой у системного администратора. Эта статья посвящена 7 утилитам, предназначенным для работы с сетью.
Этот материал — первый в серии статей, построенных на рекомендациях, собранных от множества знатоков Linux. А именно, я спросил у наших основных разработчиков об их любимых Linux-командах, после чего меня буквально завалили ценными сведениями. А именно, речь идёт о 46 командах, некоторые из которых отличает тот факт, что о них рассказало несколько человек.

В данной серии статей будут представлены все эти команды, разбитые по категориям. Первые 7 команд, которым и посвящена эта статья, направлены на работу с сетью.
Синтаксис этой команды выглядит так:
ip <OPTIONS> <OBJECT> <COMMAND> Самое важное тут — это <OBJECT>
(подкоманда). Здесь можно использовать, помимо некоторых других, следующие ключевые слова:
-
address
— адрес протокола (IPv4 или IPv6) на устройстве. -
tunnel
— IP-туннель. -
route
— запись таблицы маршрутизации. -
rule
— правило в базе данных политики маршрутизации. -
vrf
— управление виртуальными устройствами маршрутизации и перенаправления трафика. -
xfrm
— управление IPSec-политикой.
Ниже приведены примеры, демонстрирующие распространённые сценарии использования команды ip
.
[root@server ~]# ip address show [root@server ~]# ip address add 192.168.1.254/24 dev enps03 [root@server ~]# ip address del 192.168.1.254/24 dev enps03 Изменение статуса интерфейса, в данном случае — включение eth0
:
[root@server ~]# ip link set eth0 up Изменение статуса интерфейса, в данном случае — выключение eth0
:
[root@server ~]# ip link set eth0 down Изменение статуса интерфейса, в данном случае — изменение MTU eth0
:
[root@server ~]# ip link set eth0 mtu 9000 Изменение статуса интерфейса, в данном случае — перевод eth0
в режим приёма всех сетевых пакетов:
[root@server ~]# ip link set eth0 promisc on Добавление маршрута, используемого по умолчанию (для всех адресов), через локальный шлюз 192.168.1.254, который доступен на устройстве eth0
:
[root@server ~]# ip route add default via 192.168.1.254 dev eth0 Добавление маршрута к 192.168.1.0/24 через шлюз на 192.168.1.254:
[root@server ~]# ip route add 192.168.1.0/24 via 192.168.1.254 Добавление маршрута к 192.168.1.0/24, который доступен на устройстве eth0
:
[root@server ~]# ip route add 192.168.1.0/24 dev eth0 Удаление маршрута для 192.168.1.0/24, для доступа к которому используется шлюз 192.168.1.254:
[root@server ~]# ip route delete 192.168.1.0/24 via 192.168.1.254 Вывод маршрута к IP 10.10.1.4:
[root@server ~]# ip route get 10.10.1.4 Команда ifconfig
до определённого времени представляла собой один из основных инструментов, используемых многими системными администраторами для настройки сетей и решения сетевых проблем. Теперь ей на замену пришла команда ip
, о которой мы только что говорили. Но если вас, всё же, интересует эта команда, можете взглянуть на данный
материал.
MTR
(Matt’s traceroute) — это программа, работающая в режиме командной строки, представляющая собой инструмент для диагностики сетей и устранения сетевых неполадок. Эта команда совмещает в себе возможности ping
и traceroute
. Она, как traceroute
, может выводить сведения о маршруте, по которому сетевые данные идут от одного компьютера к другому. Она выводит массу полезных сведений о каждом шаге маршрутизации, например — время ответа системы. Благодаря использованию команды mtr
можно получить довольно подробные сведения о маршруте, можно обнаружить устройства, которые вызывают проблемы при прохождении данных по сети. Если, например, наблюдается рост времени ответа системы, или рост числа потерянных пакетов, это позволяет с уверенностью говорить о том, что где-то между исследуемыми системами возникла проблема с сетевым соединением.
Синтаксис команды выглядит так:
mtr <options> hostname/IP Рассмотрим несколько распространённых способов применения mtr
.
Если вызвать эту команду, указав лишь имя или адрес хоста — она выведет сведения о каждом шаге маршрутизации. В частности — имена хостов, сведения о времени их ответа и о потерянных пакетах:
[root@server ~]# mtr google.com [root@server ~]# mtr -g google.com [root@server ~]# mtr -b google.com Так можно задать количество ping-пакетов, которые нужно отправить системе, маршрут к которой подвергается анализу:
[root@server ~]# mtr -c 10 google.com А так можно получить отчёт, содержащий результаты работы mtr
:
[root@server ~]# mtr -r -c 10 google.com > mtr-command-google-output Вот — ещё один вариант получения такого отчёта:
[root@server ~]# mtr -rw -c 10 google.com > mtr-command-google-output Для того чтобы принудительно использовать TCP вместо ICMP — надо поступить так:
[root@server ~]# mtr –tcp google.com А вот так можно использовать UDP вместо ICMP:
[root@server ~]# mtr –udp google.com Вот — вариант команды, где задаётся максимальное количество шагов маршрутизации:
[root@server ~]# mtr -m 35 216.58.223.78 Так можно настроить размер пакета:
[root@server ~]# mtr -r -s 50 google.com Для вывода результатов работы mtr
в формате CSV используется такая команда:
[root@server ~]# mtr –csv google.com Вот — команда для вывода результатов работы mtr
в формате XML:
[root@server ~]# mtr –xml google.com Утилита tcpdump
предназначена для захвата и анализа пакетов.
Установить её можно так:
[root@server ~]# dnf install -y tcpdump Прежде чем приступить к захвату пакетов, нужно узнать о том, какой интерфейс может использовать эта команда. В данном случае нужно будет применить команду sudo
или иметь root-доступ к системе.
[root@server ~]# tcpdump -D
1 eth0
2 nflog
3 nfqueue
4 usbmon1
5 any
6 lo (Loopback) Если нужно захватить трафик с интерфейса eth0
— этот процесс можно запустить такой командой:
[root@server ~]# tcpdump -i eth0 Или — такой, с указанием (через ключ -c
) количества пакетов, которые нужно захватить:
[root@server ~]# tcpdump -i eth0 -c 10 ▍ Захват трафика, идущего к некоему хосту и от него
Можно отфильтровать трафик и захватить лишь тот, который приходит от определённого хоста. Например, чтобы захватить пакеты, идущие от системы с адресом 8.8.8.8 и уходящие к этой же системе, можно воспользоваться такой командой:
[root@server ~]# tcpdump -i eth0 -c 10 host 8.8.8.8 Для захвата трафика, идущего с хоста 8.8.8.8, используется такая команда:
[root@server ~]# tcpdump -i eth0 src host 8.8.8.8 Для захвата трафика, уходящего на хост 8.8.8.8, применяется такая команда:
[root@server ~]# tcpdump -i eth0 dst host 8.8.8.8 ▍ Захват трафика, идущего в некую сеть и из неё
Трафик можно захватывать и ориентируясь на конкретную сеть. Делается это так:
[root@server ~]# tcpdump -i eth0 net 10.1.0.0 mask 255.255.255.0 Ещё можно поступить так:
[root@server ~]# tcpdump -i eth0 net 10.1.0.0/24 Можно, кроме того, фильтровать трафик на основе его источника или места, в которое он идёт.
Вот — пример захвата трафика, отфильтрованного по его источнику (то есть — по той сети, откуда он приходит):
[root@server ~]# tcpdump -i eth0 src net 10.1.0.0/24 Вот — захват трафика с фильтрацией по сети, в которую он направляется:
[root@server ~]# tcpdump -i eth0 dst net 10.1.0.0/24 ▍ Захват трафика, поступающего на некий порт и выходящего из некоего порта
Вот пример захвата трафика только для DNS-порта по умолчанию
:
[root@server ~]# tcpdump -i eth0 port 53 Захват трафика для заданного порта:
[root@server ~]# tcpdump -i eth0 host 8.8.8.8 and port 53 Захват только HTTPS-трафика:
[root@server ~]# tcpdump -i eth0 -c 10 host www.google.com and port 443 Захват трафика для всех портов кроме 80 и 25:
[root@server ~]# tcpdump -i eth0 port not 80 and not 25 Инструмент netstat
используется для вывода сведений о сетевых соединениях и таблицах маршрутизации, данных о работе сетевых интерфейсов, о masquerade-соединениях, об элементах групп многоадресной рассылки. Эта утилита является, как и ifconfig
, частью пакета net-tools
. В новом пакете iproute2
для достижения тех же целей используется утилита ss
.
Если в вашей системе netstat
отсутствует, установить эту программу можно так:
[root@server ~]# dnf install net-tools Ей, в основном, пользуются, вызывая без параметров:
[root@server ~]# netstat В более сложных случаях её вызывают с параметрами, что может выглядеть так:
netstat <options> Можно вызывать netstat
и с несколькими параметрами, перечислив их друг за другом:
netstat <option 1> <option 2> <option 3> Для вывода сведений обо всех портах и соединениях, вне зависимости от их состояния и от используемого протокола, применяется такая конструкция:
[root@server ~]# netstat -a Для вывода сведений обо всех TCP-портах применяется такой вариант команды:
[root@server ~]# netstat -at Если нужны данные по UDP-портам — утилиту вызывают так:
[root@server ~]# netstat -au Список портов любых протоколов, ожидающих соединений, можно вывести так:
[root@server ~]# netstat -l Список TCP-портов, ожидающих соединений, выводится так:
[root@server ~]# netstat -lt Так выводят список UDP-портов, ожидающих соединений:
[root@server ~]# netstat -lu А так — список UNIX-портов, ожидающих соединений:
[root@server ~]# netstat -lx Вот — команда для вывода статистических сведений по всем портам вне зависимости от протокола:
[root@server ~]# netstat -s Так выводятся статистические сведения по TCP-портам:
[root@server ~]# netstat -st Для просмотра списка TCP-соединений с указанием PID/имён программ используется такая команда:
[root@server ~]# netstat -tp Для того чтобы найти процесс, который использует порт с заданным номером, можно поступить так:
[root@server ~]# netstat -an | grep ‘:<port number>’ Рассмотрим распространённые примеры использования этой команды.
Получение A-записи домена:
[root@server ~]# nslookup example.com Просмотр NS-записей домена:
[root@server ~]# nslookup -type=ns example.com Выяснение сведений о MX-записях, в которых указаны имена серверов, ответственных за работу с электронной почтой:
[root@server ~]# nslookup -query=mx example.com Обнаружение всех доступных DNS-записей домена:
[root@server ~]# nslookup -type=any example.com Проверка использования конкретного DNS-сервера (в данном случае запрос производится к серверу имён ns1.nsexample.com
):
[root@server ~]# nslookup example.com ns1.nsexample.com [root@server ~]# nslookup 10.20.30.40 [root@server ~]# ping google.com
PING google.com (216.58.206.174) 56 bytes of data.
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=1 ttl=56 time=10.7 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=2 ttl=56 time=10.2 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=3 ttl=56 time=10.4 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=4 ttl=56 time=10.4 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=5 ttl=56 time=17.3 ms
^C
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 10.219/11.844/17.381/2.773 ms
В данном случае работу команды ping
можно остановить, воспользовавшись сочетанием клавиш CTRL+C
. В противном случае она будет выполнять запросы до тех пор, пока её не остановят. После каждой ping-сессии выводятся сводные данные, содержащие следующие сведения:
-
Min
— минимальное время, которое требуется на получение ответа от пингуемого хоста. -
Avg
— среднее время, которое требуется на получение ответа. -
Max
— максимальное время, которое требуется на получение ответа.
Кроме того, среди данных, выводимых программой о пакетах, есть такой параметр, как TTL (Time To Live, время жизни пакета). Тут используются числовые значения TTL, указывающие на то, сколько шагов маршрутизации может пройти пакет. Это значение ещё известно как «лимит переходов» (hop limit).
Обычно, если запустить команду ping
в её простом виде, не передавая ей дополнительные параметры, Linux будет пинговать интересующий пользователя хост без ограничений по времени. Если нужно изначально ограничить количество ICMP-запросов, например — до 10, команду ping
надо запустить так:
[root@server ~]# ping -c 10 google.com А для того чтобы увидеть лишь итоговый отчёт работы ping
— можно воспользоваться ключом -q
:
[root@server ~]# ping -c 10 -q google.com В системах с несколькими сетевыми интерфейсами можно задавать конкретный интерфейс, которым должна пользоваться команда ping
. Например, есть компьютер, имеющий интерфейсы eth0
и eth1
. Если нужно, чтобы команда ping
использовала бы интерфейс eth0
— надо запустить её так:
[root@server ~]# ping -I eth0 google.com [root@server ~]# ping -I 10.233.201.45 google.com Применяя эту команду, можно указать и то, какую версию протокола IP использовать — v4 или v6:
[root@server ~]# ping -4 google.com
[root@server ~]# ping -6 google.com В процессе работы с утилитой ping
вы столкнётесь с различными результатами. В частности, это могут быть сообщения о нештатных ситуациях. Рассмотрим три таких ситуации.
▍ Destination Host Unreachable
Вероятной причиной получения такого ответа является отсутствие маршрута от локальной хост-системы к целевому хосту. Или, возможно, это удалённый маршрутизатор сообщает о том, что у него нет маршрута к целевому хосту.
▍ Request timed out
Если результат работы ping
выглядит именно так — это значит, что локальная система не получила, в заданное время, эхо-ответов от целевой системы. По умолчанию используется время ожидания ответа в 1 секунду, но этот параметр можно настроить. Подобное может произойти по разным причинам. Чаще всего это — перегруженность сети, сбой ARP-запроса, отбрасывание пакетов фильтром или файрволом и прочее подобное.
▍ Unknown host/Ping Request Could Not Find Host
Такой результат может указывать на то, что неправильно введено имя хоста, или хоста с таким именем в сети просто не существует.
О хорошем качестве связи между исследуемыми системами говорит уровень потери пакетов в 0%, а так же — низкое значение времени получения ответа. При этом в каждом конкретном случае время получения ответа варьируется, так как оно зависит от разных параметров сети. В частности — от того, какая среда передачи данных используется в конкретной сети (витая пара, оптоволокно, радиоволны).

Только зарегистрированные пользователи могут участвовать в опросе. Войдите
, пожалуйста.
Стоит ли делать перевод, продолжение этой статьи?
Проголосовали 278 пользователей.
Воздержались 28 пользователей.
Беспроводные сети всегда были желанной целью для начинающих «хакеров». Кроме того, беспроводные сети обычно более уязвимы к атакам, чем обычные проводные.
Я не предлагаю никого взламывать, а прошу задуматься, не подключился ли к вашей сети такой «новичок»? И дело даже не в том, что сосед может пользоваться оплаченным вами доступом в интернет, а в том, что вы можете понести ответственность за его действия.
Ближе к делу, ниже приводится краткая инструкция, как найти все устройства, подключенные к сети.
Поиск устройств в сети с помощью командной строки Linux
Установите nmap
nmap
— одна из самых популярных утилит для сканирования сети в Linux. Для того, чтобы установить nmap в Ubuntu (или других дистрибутивах Linux на базе Debian), выполните следующую команду:
sudo apt-get install nmap Эта утилита должна быть доступна в официальных репозиториях всех остальных дистрибутивов.
Узнайте диапазон адресов сети
user@user-notebook:~$ ifconfig wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.69 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::2847:8e90:ef28:3d12 prefixlen 64 scopeid 0x20<link> ether 3c:95:09:1a:fe:c3 txqueuelen 1000 (Ethernet) RX packets 10871731 bytes 15494573470 (15.4 GB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 5460677 bytes 596624992 (596.6 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Просканируйте устройства, подключенные к сети
Для получения более точной информации лучше выполнять сканирование от имени администартора. Используйте команду nmap следующим образом:
irina@irina-X541UA:~$ sudo nmap -sn 192.168.1.0/24 [sudo] пароль для irina: Starting Nmap 7.60 ( https://nmap.org ) at 2018-11-21 22:32 MSK Nmap scan report for router.asus.com (192.168.1.1) Host is up (0.0020s latency). MAC Address: 18:31:BF:3E:AE:50 (Unknown) Nmap scan report for GoUbuntu-desktop (192.168.1.96) Host is up (0.089s latency). MAC Address: C0:25:E9:2A:06:47 (Tp-link Technologies) Nmap scan report for Redmi5Plus-Redmi (192.168.1.172) Host is up (0.19s latency). MAC Address: 20:47:DA:D9:B8:60 (Unknown) Nmap scan report for Redmi5A-Redmi (192.168.1.250) Host is up (0.13s latency). MAC Address: D8:63:75:B1:C6:57 (Unknown) Nmap scan report for Acer-X541UA (192.168.1.69) Host is up. Nmap done: 256 IP addresses (5 hosts up) scanned in 23.81 seconds
Как видно, в сети работает 5 устройств, одно — роутер, два компьютера и два телефона. Регулярно проверяйте вашу беспроводную сеть, это может обезопасить вас от многих проблем!
1. Как найти IP-адрес в cmd для сети
Самый простой способ сделать это в Windows — через командную строку. Чтобы открыть командную строку, введите «cmd» в меню «Пуск». Когда вы увидите командную строку, щелкните ее правой кнопкой мыши и выберите «Запуск от имени администратора».

Если вы используете Windows 10, вы можете напрямую запустить командную строку от имени администратора. Просто щелкните правой кнопкой мыши значок «Пуск» и выберите «Командная строка (администратор)».


Найдите IP-адреса всех устройств в сети с помощью приложения для Windows
Прочтите: Полезные утилиты NirSoft, которые должен попробовать каждый пользователь Windows

2. Найдите все IP-адреса в сети в Ubuntu.

Кроме того, вы также можете нажать кнопку «Действия» в верхнем левом углу. Появится панель поиска. Введите Терминал на нем и щелкните значок Терминала, когда он появится.

Когда откроется окно терминала, введите следующую команду.
arp -a

Другой интуитивно понятный способ сделать это — через графический интерфейс. Вам необходимо установить инструмент под названием Angry IP Scanner. Чтобы установить Angry IP Scanner, вам нужно добавить запись в репозиторий APT. APT (Advanced Packaging Tool) затем сможет получить Angry IP Scanner из этого конкретного места. Чтобы добавить запись в репозиторий, введите следующую команду
sudo add-apt-repository ppa: upubuntu-com / сеть

Если у вас возникли проблемы с установкой IP-сканирования, убедитесь, что вы отключили проверку подписей gpg. Вы можете сделать это с помощью следующей команды.
sudo apt-get —allow-unauthenticated upgrade
После успешного добавления записи нам нужно обновить репозиторий apt-get. Для этого введите следующую команду
sudo apt-get update

После успешного обновления репозитория apt мы можем установить приложение Angry IP Scanner. Введите следующую команду, чтобы получить и установить приложение
sudo apt установить ipscan

В качестве альтернативы, если у вас есть браузер, вы также можете выбрать установку из Сайт Angry IP Scanner
прямо. Как только вы запустите приложение, оно появится в сети, к которой вы подключены. Как только он будет завершен, вы увидите активные подключения в вашей сети.

Он имеет расширенные инструменты, такие как открытие FTP, Telnet, SSH-соединения для любого из IP-устройств. Одна вещь, которой ему не хватает, — это невозможность отображать имена хостов для устройств. Большинство устройств обозначаются как N / A в имени хоста. Однако это можно выяснить с помощью команды host, но это требует дополнительных действий.
Читайте: Как использовать Angry IP Scanner — Руководство для начинающих
3. Как узнать, кто подключен к моему Wi-Fi на macOS


Вы не можете увидеть имя хоста (имя компьютера или смартфона) в командной строке. Для этого вам нужно будет выполнить поиск хоста отдельно для каждого IP. Например, если мне нужно найти имя хоста 192.168.1.105, я должен выполнить следующую команду


4. Android и iOS
В отличие от всех других приложений, которые мы тестировали для Windows и Mac, Fing был единственным, кто мог определить марки и модели ваших подключенных устройств. Он даже может получить значок устройства — будь то iPhone, MacBook, маршрутизатор или принтер и т. Д.
Проверьте Fing ( iOS
, Android
)


5. Маршрутизатор
Один из самых популярных способов проверить, кто подключен к вашей сети Wi-Fi, — использовать веб-интерфейс вашего маршрутизатора.

Этот подход хорош тем, что вам не нужно устанавливать какое-либо программное обеспечение, потому что вы можете получить доступ к своему маршрутизатору с любого устройства. Однако единственным недостатком является то, что вам необходимо знать учетные данные маршрутизатора. Если вы находитесь в рабочей среде, возможно, у вас нет доступа к этим сведениям для входа на страницу администратора маршрутизатора. В этом случае вам придется использовать методы, упомянутые выше.




