Сканирование открытых портов с Nmap

Nmap — это надёжный инструмент для сканирования компьютерных сетей, помогающий найти слабые места в системе. Его набор функций делает Nmap де-факто стандартом для мониторинга открытых портов в сети. Среди возможностей — обнаружение хостов, определение сервисов и OS-фингерпринтинг.
В этой статье вы найдёте команды для полного и частичного сканирования, варианты для скрытного сканирования, советы когда Nmap может «обмануться», а также практические методики и чеклисты для администраторов и тестировщиков.
Что такое порты и зачем их сканировать
Порт — это логическая точка в хосте, через которую проходят сетевые соединения. Открытые порты могут указывать на доступные сервисы (веб-сервер, SSH, FTP и т. д.). Сканирование портов помогает:
- Найти ненужные или уязвимые сервисы;
- Оценить поверхность атаки перед аудитом безопасности;
- Мониторить изменения конфигурации в сети.
Краткое определение: порт — целое число 0–65535, соответствующее определённой службе.
Быстрые команды Nmap для поиска открытых портов
Ниже — основные команды для повседневных задач. Сохраняйте кодовые блоки и выполняйте их от имени администратора, если требуется.
Обычное полное TCP-сканирование (без sudo):
nmap -sT scanme.nmap.orgОпция -sT указывает Nmap выполнить полный TCP-соединительный скан. Этот метод не требует sudo, но может быть «шумным» в журнале сети.
Скрытое (Stealth) TCP-сканирование с использованием SYN-пакетов (требует sudo на Linux):
sudo nmap -sS scanme.nmap.orgOpция -sS отправляет SYN-пакеты и не завершает TCP-соединение, что делает сканирование менее заметным для простых логов. Однако современные IDS/IPS всё равно могут заметить трафик.
UDP-сканирование (обычно медленнее и требует sudo):
sudo nmap -sU scanme.nmap.orgЧтобы не сканировать все 65535 портов, укажите диапазон или список портов через опцию -p. Это ускоряет работу и снижает нагрузку на сеть:
sudo nmap -sS -p 20-80 192.168.1.1Вместо диапазона можно перечислить порты через запятую: 22,80,443
Практическая методика сканирования (мини-SOP)
- Определите цель и получите разрешение на сканирование. Без письменного разрешения сканирование может быть незаконным.
- Начните с «тихого» сканирования: ping/ICMP и простое обнаружение хостов.
- Выполните SYN-скан (-sS) на указанные порты или диапазон.
- Если нужен полный вывод сервисов — добавьте -sV для определения версий.
- Для более глубокого анализа используйте Nmap Scripting Engine (NSE) с выборкой скриптов по безопасности.
- Документируйте результаты и планируйте устранение уязвимостей.
Совет: используйте опцию -Pn, если хосты не отвечают на ping, но вы уверены, что они доступны.
Когда Nmap может ошибиться или оказаться недостаточным
- Фаерволлы и фильтрация пакетов скрывают реальные статусы портов;
- Активные IDS/IPS могут блокировать или маскировать попытки сканирования;
- UDP-сканирование часто даёт ложные результаты из‑за необходимости ожидать ответов;
- NAT и балансировщики могут скрыть реальную инфраструктуру.
Альтернатива: masscan — очень быстрый сканер портов, но с меньшей точностью; ss/netstat — для проверки локальных портов на самом хосте.
Чеклист по ролям
Для администратора сети:
- Проверить открытые порты на границе сети;
- Отключить ненужные сервисы;
- Включить логирование и уведомления при появлении новых слушающих портов.
Для сотрудника по безопасности/пентестера:
- Выполнить SYN- и UDP-сканирование;
- Запустить nmap -sV и NSE-скрипты для обнаружения уязвимостей;
- Сформировать отчёт с указанием приоритетов исправления.
Для разработчика:
- В локальной среде тестировать доступность сервисов только по необходимым портам;
- Использовать среду CI для контроля экспонирования новых портов.
Шпаргалка команд (cheat sheet)
- Полный TCP: nmap -sT
- SYN-скан (stealth): sudo nmap -sS
- UDP-скан: sudo nmap -sU
- Диапазон портов: -p 20-80
- Определение версии сервиса: -sV
- Использовать скрипты NSE: –script
- Принудительно не пинговать хосты: -Pn
Рекомендации по безопасности и жёсткая конфигурация
- Закрывайте неиспользуемые порты и сервисы;
- Огранивайте доступ через ACL и фаерволы;
- Обновляйте сервисы и используйте минимально необходимые привилегии;
- Включайте мониторинг и аварийные оповещения при появлении новых слушающих портов.
Важно: всегда иметь письменное разрешение перед сканированием чужих сетей.
Критерии приёмки
- Все целевые хосты успешно просканированы в указанных диапазонах портов;
- Список открытых портов соответствует отчёту и снабжён информацией о сервисах;
- Для критических сервисов предложены меры по снижению рисков.
Краткое резюме
Nmap остаётся базовым инструментом для поиска открытых портов и первичного аудита сети. Для аккуратного и полезного результата комбинируйте разные режимы сканирования, фиксируйте вывод и согласовывайте действия с владельцами инфраструктуры.
Важно: используйте дополнительные инструменты (masscan, ss/netstat) и скрипты Nmap для глубинного анализа, если стандартные сканы дают расплывчатые результаты.
Сводка ключевых действий: определите цель, выполните скрытое сканирование для предварительного исследования, затем используйте сканирование версий и скрипты для выявления уязвимостей.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone