Сканирование распространённых сетевых портов с помощью Nmap

NmapBeginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы узнаете, как с помощью Nmap сканировать распространённые сетевые порты. Сканирование портов — важный приём в сетевой безопасности: оно помогает обнаружить открытые порты целевой системы. Такие порты могут стать точками входа для злоумышленников, поэтому умение их находить необходимо системным администраторам и специалистам по безопасности.

Освоив Nmap — мощный инструмент с открытым исходным кодом для сканирования сетей, — вы сможете обнаруживать активные службы в сети, оценивать уязвимости и поддерживать безопасность своих систем.

Сетевые порты и установка веб-сервера

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

Что такое сетевые порты?

Сетевые порты — это виртуальные точки взаимодействия в компьютерной сети. Представьте их как двери, через которые приложения и службы отправляют и получают данные. Благодаря портам несколько приложений и служб могут совместно использовать сетевые ресурсы одной системы, не мешая друг другу. Номера портов находятся в диапазоне от 0 до 65535. Разные диапазоны предназначены для разных целей:

  • Порты 0–1023: хорошо известные порты, зарезервированные для стандартных служб. Например, HTTP (для просмотра веб-страниц) обычно использует порт 80, FTP (для передачи файлов) — порт 21, а SSH (для безопасного удалённого доступа) — порт 22.
  • Порты 1024–49151: зарегистрированные порты для определённых приложений. Разработчики программного обеспечения могут зарегистрировать номер порта для своего приложения.
  • Порты 49152–65535: динамические, или частные, порты. Приложения используют их для установки временных соединений.

Настройка веб-сервера для сканирования

Чтобы попрактиковаться в сканировании портов, сначала запустим веб-сервер на локальной машине. Веб-сервер — это программа, которая использует HTTP (Hypertext Transfer Protocol, протокол передачи гипертекста), чтобы предоставлять пользователям файлы веб-страниц. Когда пользователь вводит адрес сайта в браузере, браузер отправляет запрос веб-серверу, а сервер возвращает нужные веб-страницы. По умолчанию веб-серверы используют порт 80.

Откройте окно терминала в виртуальной машине LabEx. Терминал — это текстовый интерфейс, в котором вы взаимодействуете с операционной системой, вводя команды. Текущий каталог должен быть /home/labex/project. Проверьте его с помощью команды:

pwd

Команда pwd означает «вывести рабочий каталог». Она показывает путь к текущему каталогу. Вы должны увидеть примерно такой вывод:

/home/labex/project

Установите веб-сервер Apache2:

sudo apt update && sudo apt install apache2 -y

Команда sudo запускает команды с правами администратора. apt update обновляет сведения о пакетах в системе, а apt install apache2 -y устанавливает веб-сервер Apache2. Параметр -y автоматически подтверждает запросы на установку.

Запустите службу Apache2:

sudo service apache2 start

Команда service управляет системными службами. Здесь она запускает Apache2, чтобы сервер мог принимать входящие запросы.

Проверьте, что Apache2 работает:

sudo service apache2 status

Параметр status показывает текущее состояние службы Apache2. Вы должны увидеть примерно такой вывод:

* apache2 is running

Также можно проверить доступность веб-сервера, создав вкладку «Web Service». Нажмите символ + на панели вкладок виртуальной среды, выберите «Web Service» и укажите порт 80. Если всё настроено правильно, откроется стандартная приветственная страница Apache2.

Теперь веб-сервер запущен и принимает соединения через порт 80. На следующем этапе с помощью Nmap мы обнаружим этот открытый порт.

Знакомство с Nmap и сканирование распространённых портов

На этом этапе вы с помощью Nmap проверите, какие порты открыты на системе с настроенным веб-сервером. Понимание того, какие порты открыты, крайне важно для сетевой безопасности: они могут стать точками входа для злоумышленников. Nmap помогает обнаружить такие порты, чтобы вы могли принять соответствующие меры защиты.

Что такое Nmap?

Nmap (сокращение от Network Mapper) — известный бесплатный инструмент с открытым исходным кодом для обнаружения узлов сети и аудита безопасности. Он применяется для решения разных задач в области сетевой безопасности:

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

Сканирование распространённых портов с помощью Nmap

Nmap поддерживает различные режимы сканирования. Для начинающих особенно полезен быстрый режим (-F). По умолчанию Nmap сканирует 1000 портов, что может занять много времени. Параметр -F ограничивает проверку 100 наиболее распространёнными портами, поэтому сканирование выполняется быстрее.

Выполним быстрое сканирование локальной машины, чтобы найти настроенный веб-сервер.

Откройте терминал и запустите быстрое сканирование локальной системы:

nmap -F localhost

В этой команде три части:

  • nmap запускает инструмент для сканирования сети.
  • -F включает быстрый режим и ограничивает проверку 100 наиболее распространёнными портами.
  • localhost указывает на локальную машину с IP-адресом 127.0.0.1.

После выполнения команды вы увидите примерно такой вывод:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-XX-XX XX:XX UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
Not shown: 96 closed ports
PORT   STATE SERVICE
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in X.XX seconds

В этом выводе содержатся важные сведения:

  • Сканирование выполнено на локальной машине с IP-адресом 127.0.0.1.
  • Порт 80 открыт, на нём работает служба HTTP. Это установленный ранее веб-сервер Apache, который по умолчанию использует порт 80.
  • Остальные распространённые порты закрыты, поэтому подробные сведения о них не отображаются.

Чтобы получить более подробную информацию, включая версии служб на открытых портах, выполните команду:

nmap -sV -F localhost

Параметр -sV определяет версии служб, работающих на открытых портах. В выводе появятся дополнительные сведения:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-XX-XX XX:XX UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
Not shown: 96 closed ports
PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.X

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in X.XX seconds

Этот вывод подтверждает, что веб-сервер Apache работает на порту 80, и показывает его версию.

Анализ результатов

Результаты сканирования показывают, что порт 80 открыт и на нём работает служба HTTP. Это ожидаемый результат: мы установили и запустили веб-сервер Apache, который по умолчанию прослушивает порт 80. В реальных условиях знание открытых портов важно для специалистов по безопасности по нескольким причинам:

  • Обнаружение потенциальных уязвимостей: У служб, работающих на открытых портах, могут быть известные уязвимости. Зная, какие порты открыты и какие службы на них работают, специалисты по безопасности могут проверить систему на наличие рисков.
  • Проверка необходимости запущенных служб: Ненужные службы, работающие на открытых портах, увеличивают поверхность атаки. Обнаружив открытые порты, специалисты могут убедиться, что запущены только необходимые службы.
  • Проверка правил брандмауэра: Брандмауэры контролируют входящий и исходящий сетевой трафик. Сканирование помогает убедиться, что брандмауэр блокирует и разрешает именно те порты, которые должны быть заблокированы или разрешены.

Сохранение результатов сканирования и последствия для безопасности

В сетевой безопасности важно документировать результаты проверки. В Nmap есть встроенные возможности для сохранения результатов сканирования. На этом этапе вы научитесь создавать отчёты Nmap, анализировать результаты и обсуждать последствия открытых портов для безопасности. В завершение вы остановите службы, запущенные для этой лабораторной работы, чтобы обеспечить безопасность системы.

Создание отчётов с помощью Nmap

Nmap может сохранять результаты сканирования в разных форматах, включая обычный текст, XML, JSON и другие. Это эффективнее и точнее, чем составлять отчёты вручную. Используем параметры вывода Nmap для создания отчёта.

Запустите сканирование Nmap с сохранением результатов:

nmap -F -sV localhost -oN /home/labex/project/nmap_report.txt

В этой команде:

  • Параметр -F выполняет быстрое сканирование — проверяет только 100 наиболее распространённых портов.
  • Параметр -sV пытается определить версии служб, работающих на открытых портах.
  • Параметр -oN /home/labex/project/nmap_report.txt сохраняет вывод в обычном текстовом формате в указанный файл.

Просмотрите созданный отчёт:

cat /home/labex/project/nmap_report.txt

В отчёте содержится полная информация о сканировании, в том числе:

  • время и дата сканирования;
  • сведения о целевом узле;
  • список открытых портов;
  • службы и их версии на каждом открытом порту.

Другие форматы отчётов

Nmap поддерживает несколько форматов вывода для разных задач:

  • -oX filename — вывод в формате XML, подходящем для автоматизированной обработки;
  • -oG filename — вывод в формате Grepable, удобном для поиска с помощью grep;
  • -oJ filename — вывод в формате JSON, подходящем для современных приложений;
  • -oA filename — одновременный вывод во все форматы: Normal, XML и Grepable.

Например, чтобы создать отчёт в формате XML, выполните команду:

nmap -F -sV localhost -oX /home/labex/project/nmap_report.xml

Последствия результатов сканирования для безопасности

Из отчёта сканирования видно, что порт 80/tcp открыт и на нём работает служба HTTP (веб-сервер Apache). Это важно учитывать по нескольким причинам:

  • Возможная точка входа для атак: Открытые порты похожи на двери в здании. Через каждый открытый порт злоумышленник потенциально может проникнуть в систему.
  • Риск уязвимостей службы: В службах, работающих на открытых портах, могут быть уязвимости, которыми воспользуются злоумышленники.
  • Канал связи, за которым нужно следить: Открытые порты используются для обмена данными. Следите за активностью на этих портах, чтобы замечать подозрительное поведение.

Чтобы защитить порты, следуйте этим рекомендациям:

  • Оставляйте открытыми только необходимые порты: лишние открытые порты увеличивают поверхность атаки системы.
  • Регулярно обновляйте службы, использующие эти порты: обновления часто содержат исправления уязвимостей.
  • Настраивайте правила брандмауэра, ограничивающие доступ: брандмауэр помогает контролировать, кто может подключаться к системе через определённые порты.
  • Отслеживайте подозрительную активность на портах: это поможет своевременно обнаружить потенциальные угрозы и принять меры.

Завершение лабораторной работы

Теперь, когда сканирование завершено, остановите веб-сервер Apache. Работа ненужных служб может создавать риски для безопасности, поэтому после лабораторной работы важно корректно завершить их работу.

Остановите службу Apache:

sudo service apache2 stop

Убедитесь, что служба остановлена:

sudo service apache2 status

В выводе должно быть указано, что Apache2 не работает, например:

* apache2 is not running

Проверьте, что порт 80 закрыт:

nmap -F localhost

В выводе порт 80 должен отображаться как закрытый или отсутствовать в списке открытых портов. Такая очистка среды важна и в реальных условиях: она позволяет убедиться, что ненужные службы не продолжают работать и не создают рисков для безопасности.

Итоги

В этой лабораторной работе вы изучили основы сканирования сетевых портов с помощью Nmap — мощного инструмента с открытым исходным кодом для обеспечения сетевой безопасности. Вы на практике разобрались в назначении сетевых портов, настроили веб-сервер с открытым портом, просканировали распространённые порты с помощью Nmap, научились интерпретировать результаты, сохранять их в отчёте по безопасности и корректно останавливать службы.

Эти навыки лежат в основе оценки сетевой безопасности. Они важны для специалистов по информационной безопасности, сетевых администраторов и системных администраторов. Умение сканировать порты помогает находить уязвимости сети и защищать системы от несанкционированного доступа.