Введение
В этой лабораторной работе вы узнаете, как с помощью 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, научились интерпретировать результаты, сохранять их в отчёте по безопасности и корректно останавливать службы.
Эти навыки лежат в основе оценки сетевой безопасности. Они важны для специалистов по информационной безопасности, сетевых администраторов и системных администраторов. Умение сканировать порты помогает находить уязвимости сети и защищать системы от несанкционированного доступа.



