nmap — сетевой сканер и инструмент инвентаризации: он показывает, какие устройства есть в сети, какие порты открыты и какие службы на них отвечают. Но применять его можно только к своим сетям и устройствам. Сканирование чужих адресов без разрешения владельца нарушает закон и может повлечь ответственность, поэтому все примеры ниже предполагают домашнюю или корпоративную сеть, которой вы управляете.
Правовые границы: только свои сети
Прежде чем запускать первую команду, определите периметр. Это ваши собственные устройства, ваша локальная сеть и те адреса, на которые есть письменное разрешение организации. Сканировать соседский Wi-Fi, диапазоны провайдера, публичные адреса чужих компаний или «просто интересные» IP нельзя. В России такие действия могут квалифицироваться как неправомерный доступ к компьютерной информации по статье 272 УК РФ, даже если вы ничего не изменили.
Отдельная осторожность нужна с внешними адресами. Даже собственный публичный IP лучше проверять изнутри или по согласованию с провайдером: сканирование со стороны интернета похоже на атаку и может привести к блокировке. Если вы учитесь, используйте изолированную лабораторию из виртуальных машин.
Подготовка: где проходит ваша сеть
sudo apt install nmap
nmap --version
ip -br address
ip route show default
Команда ip показывает интерфейсы и маски. Если адрес 192.168.1.23 с маской /24, ваш диапазон — 192.168.1.0/24. Маршрут по умолчанию подсказывает шлюз, но не расширяет вашу зону ответственности. Не сканируйте весь частный диапазон 10.0.0.0/8, если вам принадлежит только маленькая подсеть.
Для работы нужны права root только на некоторые типы сканирования. Обнаружение хостов и TCP connect-сканирование доступны обычному пользователю. Сырые пакеты, SYN-сканирование и определение ОС требуют повышенных привилегий.
Обнаружение хостов
Начните с ping-сканирования: nmap отправит запросы и покажет, кто ответил. В локальной сети он использует ARP, поэтому обычно видит устройства даже с заблокированным ICMP.
nmap -sn 192.168.1.0/24
nmap -sn -PR 192.168.1.0/24
nmap -sn --reason 192.168.1.0/24
Флаг -PR принудительно использует ARP, а —reason объясняет, почему хост признан доступным. Если устройство не отвечает, это ещё не значит, что его нет: файрвол может отбрасывать запросы. Для заведомо известного адреса используйте -Pn, чтобы пропустить этап обнаружения и сразу перейти к портам.
Инвентаризация и разбор вывода
Для таблицы устройств удобен grepable-формат. Он не самый современный, но хорошо обрабатывается awk и sed. XML надёжнее для автоматизации, а grepable — быстрее для разовой сводки.
nmap -sn -oG - 192.168.1.0/24 | awk '/Status: Up/{print $2}'
nmap -sn -oG - 192.168.1.0/24 | awk '/Status: Up/{print $2}' | sort > hosts-$(date +%F).txt
wc -l hosts-$(date +%F).txt
Список адресов — только начало. Полезно сопоставить его с DHCP-арендами и документацией. Если в сети появился незнакомый MAC, проверьте коммутатор и журналы роутера. Инвентаризация без учёта бесполезна: сохраняйте дату, диапазон и владельца проверки.
Имена хостов nmap получает через обратный DNS; в домашней сети он часто пуст. Не судите о назначении устройства по открытому порту.
Проверка портов
TCP connect-сканирование не требует root и устанавливает полноценное соединение. Оно заметнее в логах, зато универсально. SYN-сканирование быстрее и менее заметно, но требует прав и работает не во всех сетях.
nmap -sT -p 22,80,443 192.168.1.10
nmap -sT -p- 192.168.1.10
sudo nmap -sS -p 1-1024 192.168.1.10
Диапазон -p- проверяет все 65535 портов и может занять время. Для быстрой оценки используйте —top-ports 100. Не запускайте полный перебор по всей подсети одновременно: это создаёт нагрузку и шум. Сканируйте по одному хосту, начиная с критичных устройств.
Открытый порт сам по себе не уязвимость. Опасность представляет служба с устаревшей версией, слабой аутентификацией или ненужным доступом из сети. Поэтому следующий шаг — определить, что именно слушает порт.
Версии служб и безопасные скрипты
sudo nmap -sS -sV --version-light -p 22,80,443 192.168.1.10
sudo nmap -sV -p 1-1024 192.168.1.10
nmap --script safe -p 22,80,443 192.168.1.10
Флаг -sV определяет продукт и версию. Это помогает найти забытый тестовый сервер, но точность не гарантирована: служба может маскироваться. Скрипты категории safe относительно безопасны, однако любой скрипт — это активное взаимодействие. На промышленном оборудовании сначала согласуйте проверку и изучите описание скрипта.
Определение ОС (-O) требует root и хотя бы одного открытого и одного закрытого порта. Результат вероятностный, особенно на виртуальных машинах; для инвентаризации часто достаточно версии службы.
UDP и осторожность с таймингами
UDP-сканирование медленнее и менее надёжно: служба не обязана отвечать. Начните с популярных портов и ограничьте повторы, иначе проверка затянется на часы.
sudo nmap -sU --top-ports 50 --max-retries 2 192.168.1.10
sudo nmap -sU -p 53,123,161 192.168.1.1
Не ставьте -T5 на рабочих серверах: агрессивный режим даёт потери пакетов и ложные выводы. Начните с -T3, добавьте —max-retries и —host-timeout, следите за прогрессом через —stats-every 10s.
nmap -sT -p 1-1024 --stats-every 10s --host-timeout 5m 192.168.1.10
Отчёты и сравнение результатов
Сохраняйте результаты в трёх форматах: обычный текст для чтения, XML для разбора и grepable для скриптов. Имя файла должно содержать дату и диапазон.
mkdir -p scans
nmap -sT -sV -oA scans/home-$(date +%F) 192.168.1.0/24
ls -lh scans/
diff hosts-2026-10-01.txt hosts-2026-11-05.txt
Сравнение списков хостов быстро показывает новые устройства и пропавшие машины. Для портов удобнее разобрать XML или использовать специализированную систему инвентаризации. Не храните отчёты бессрочно в открытом виде: они описывают внутреннюю сеть и могут помочь злоумышленнику.
Что делать с результатами
- Закройте службы, которые не нужны: telnet, открытый RDP, тестовые панели.
- Ограничьте доступ файрволом: разрешайте порты только нужным подсетям.
- Обновите ПО, версии которого вызывают сомнения.
- Зафиксируйте изменения и повторно проверьте те же адреса.
- Не публикуйте полные отчёты сканирования в открытых источниках.
Сканирование — диагностика, а не защита. Оно не заменяет патчи, резервные копии и мониторинг. Зато регулярная инвентаризация помогает вовремя заметить лишний сервис и понять, как выглядит нормальная сеть.
Итог
nmap даёт администратору ясную картину собственной сети: какие устройства активны, какие порты открыты и какие службы отвечают. Работайте только в своём периметре, начинайте с обнаружения хостов, затем проверяйте порты и версии, сохраняйте отчёты и сравнивайте их между проверками. Уважение к чужим адресам — не формальность, а обязательное условие легальной диагностики.