Определение простыми словами
nmap — основной инструмент инвентаризации сети и оценки доступности сервисов. Утилита посылает специально сконструированные пакеты на хосты и анализирует ответы: какой порт открыт, какой закрыт, какой фильтруется фаерволом, какая операционная система предположительно стоит на удалённой машине, какая версия SSH или nginx слушает порт.
nmap незаменим при аудите периметра, поиске «забытых» сервисов и проверке корректности правил iptables. Также используется в скриптах мониторинга и Nuclei-подобных сканерах через NSE — встроенный движок Lua-скриптов.
Сравнение
| Тип сканирования | Флаг | Скорость | Что показывает |
|---|---|---|---|
| SYN scan | -sS | Высокая | Открытые TCP-порты |
| TCP connect | -sT | Средняя | То же, без root-прав |
| UDP scan | -sU | Низкая | Открытые UDP-порты |
| Service version | -sV | Средняя | Версии служб |
| OS detection | -O | Средняя | Семейство ОС |
| NSE-скрипты | —script | Зависит | Уязвимости, баннеры |
Кейсы использования
- Инвентаризация всех живых хостов в подсети после деплоя.
- Проверка, какие порты реально открыты наружу с публичного IP — со стороннего сервера.
- Сбор версий сервисов перед обновлением и оценкой CVE.
- Поиск «диких» сервисов: Redis без пароля, Elasticsearch на 9200, MongoDB на 27017.
- Автоматизация аудита через NSE-скрипты — проверка SSL/TLS, slowloris, brute force.
Когда nmap нельзя использовать: для сканирования чужих сетей без письменного разрешения — это нарушение закона. Активное сканирование производственных систем без согласования может вызвать ложные срабатывания IDS, перегрузку слабых сервисов и блокировку IP провайдером.
Технические детали
Установка и базовое использование на Ubuntu/Debian:
sudo apt install -y nmap
sudo nmap -sn 192.168.10.0/24
sudo nmap -sS -sV -O -p 1-1024 example.com
sudo nmap -sU --top-ports 50 example.com
Расширенное сканирование с NSE-скриптами и сохранением результатов:
sudo nmap -sV --script vuln -oN report.txt example.com
sudo nmap -p 443 --script ssl-enum-ciphers example.com
sudo nmap -p 22 --script ssh-auth-methods,ssh-hostkey example.com
sudo nmap -A -T4 -oA scan-result example.com
Скорость сканирования регулируется флагами -T0…-T5: от «параноидального» до «безумного». Для крупных подсетей удобно использовать masscan для первичного списка живых хостов и nmap — для углублённой проверки. Подробнее об открытых портах смотрите в статье про Firewall.
🔥 Где это применяется
Частые вопросы
Законно ли использовать nmap?
Использовать на собственных системах и в рамках письменного контракта на пентест — законно. Сканирование чужих сетей без разрешения попадает под статьи о неправомерном доступе во многих юрисдикциях.
Чем nmap отличается от masscan?
masscan быстрее и нацелен на массовое сканирование диапазонов адресов. nmap медленнее, но даёт больше глубины: версии сервисов, NSE-скрипты, детект ОС. Часто их используют связкой.
Почему nmap работает медленно по UDP?
UDP не подтверждает доставку, и nmap вынужден ждать таймаут или ICMP-ответ «port unreachable». Для UDP-сканирования обычно ограничиваются топовыми портами через --top-ports.
Как сделать сканирование менее заметным?
Использовать -T2, фрагментацию (-f), spoofing source-портов (--source-port), задержки между пакетами. Полностью скрыть сканирование от современных IDS почти невозможно.