Сканирование портов в Ubuntu с Nmap: полный гид

Введение в сетевой аудит с Nmap

Своевременное обнаружение открытых портов и активных сетевых демонов — базовый шаг в обеспечении безопасности любого сервера под управлением Ubuntu. Утилита nmap по праву признана индустриальным стандартом для комплексной диагностики соединений и выявления потенциальных брешей. В данном руководстве подробно рассматривается развертывание инструмента, методика точечной проверки сокетов, а также расшифровка формируемых отчетов с версиями обнаруженных служб.

Развертывание Nmap и подготовка тестового стенда

Для безопасного проведения экспериментов на локальной машине необходимо установить сам сканер и вспомогательный интерпретатор Python:

apt-get update -qq && apt-get install -y nmap python3

Установка Nmap и Python в Ubuntu

Функционал nmap ориентирован на детальный аудит узлов, проверку доступности портов и анализ сетевого ландшафта. Чтобы удостовериться в корректности установки и просмотреть скомпилированные модули, запрашиваем версию утилиты через nmap --version.

⚙️ [Ключевые параметры сканирования]

-p : задает конкретный порт, список через запятую или диапазон номеров для проверки.
-sS : скрытное SYN-сканирование TCP (half-open scan), при котором соединение прерывается до завершения рукопожатия.
-sT : стандартная проверка через полное трехстороннее рукопожатие TCP (TCP connect).
-sU : исследование сервисов, взаимодействующих по протоколу UDP без установки соединения.
-sV : углубленный опрос портов для выявления названий и точных релизов работающих демонов.
-O : анализ сетевых ответов для идентификации типа и версии целевой операционной системы.
-A : универсальный режим агрессивного аудита (объединяет определение ОС, версий ПО, работу встроенных скриптов и трассировку).
-v : расширенный вывод хода сканирования в реальном времени.

Проверка версии Nmap

Для формирования реалистичной цели поднимем встроенный веб-сервер Python на нестандартном порту 8080, отправив процесс в фоновый режим:

python3 -m http.server 8080 > /dev/null 2>&1 &

Запуск тестового веб-сервера

Даем операционной системе секунду на привязку сокета и инициализацию сетевого слушателя с помощью команды sleep 1.

Ожидание инициализации сервиса

Базовый опрос хоста и экспресс-сканирование

Первичная оценка сетевого периметра петлевого интерфейса запускается передачей адреса петли:

nmap 127.0.0.1

По умолчанию утилита выполняет зондирование тысячи наиболее распространенных TCP-портов. В результате отобразится список открытых интерфейсов, среди которых окажутся системный SSH (22/tcp) и только что запущенный веб-сервис (8080/tcp).

Стандартное сканирование локального хоста

Когда требуется молниеносная проверка без ожидания полного цикла, количество опрашиваемых портов целесообразно ограничить сотней критических сокетов посредством nmap -F 127.0.0.1. Применение флага -F (Fast scan) кратно ускоряет получение сведений о ключевых точках входа в систему.

Быстрое сканирование портов

Точечный анализ портов и идентификация версий служб

Если необходимо отслеживать статус строго определенной службы, утилите явно передается целевой номер порта:

nmap -p 8080 127.0.0.1

Прямое указание исключает лишний трафик и позволяет мгновенно подтвердить статус доступности (open) исследуемого приложения.

Проверка конкретного порта 8080

Знания одного лишь номера порта недостаточно для полноценного аудита — важно понимать, какое именно ПО обслуживает входящие пакеты. Добавление флага -sV запускает процедуру сигнатурного анализа:

nmap -sV -p 8080 127.0.0.1

Инструмент опрашивает порт и безошибочно вычисляет запущенный экземпляр (SimpleHTTPServer 0.6, Python 3.12.3), что критически важно при поиске устаревших компонентов и уязвимостей.

Определение версии работающей службы

Экспорт отчетов в файл и завершение фоновых служб

Для дальнейшей обработки результатов или формирования отчетов безопасности вывод консоли перенаправляется в стандартный текстовый файл с помощью аргумента -oN:

nmap -p 8080 -oN scan_report.txt 127.0.0.1

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

Сохранение результатов аудита в текстовый файл

Убедиться в целостности записанных данных можно стандартным просмотром содержимого через cat scan_report.txt. В теле документа отражены временные метки сессии, использованные ключи и статус исследованного порта.

Просмотр содержимого сохраненного отчета

Завершив практические испытания, необходимо освободить порт и остановить фоновый процесс Python командой pkill -f 'http.server 8080'.

Остановка тестового процесса веб-сервера

Мы разобрали базовый инструментарий Nmap в среде Ubuntu: от первоначального обнаружения портов до глубокой инспекции активных сетевых служб и протоколирования результатов. Регулярный аудит доступных сокетов помогает вовремя устранять неиспользуемые сервисы и существенно повышает общий уровень защищенности серверной инфраструктуры.