Как использовать Nmap для сканирования портов

Сеть является одним из самых сложных и чувствительных компонентов ИТ-инфраструктуры. Системные администраторы должны понимать различные уровни, интерфейсы, протоколы, инструменты и порты, чтобы эффективно управлять сетевым взаимодействием. Для обеспечения безопасной связи необходимо использовать правильные порты.

Nmap – это инструмент командной строки с открытым исходным кодом для сканирования портов, аудита сетевой безопасности, обнаружения хостов и служб и получения списка открытых портов. Он был запущен как инструмент Linux, а затем включен в Windows, macOS и BSD.

В этой статье мы расскажем, как использовать Nmap для сканирования открытых портов.

Требование

  • Рабочая операционная система Linux.
  • Терминальный доступ.
  • Sudo или привилегии пользователя root.

Что такое сетевой порт

Сетевой порт – это логическая конечная точка для сетевого взаимодействия. Также это нумерованный адрес для управления сетевым трафиком. Различные компоненты или службы используют разные порты, и наиболее часто используемыми сетевыми портами являются порты TCP / IP и UDP. Вы можете запускать несколько служб на одном IP-адресе, но каждой из этих служб нужен отдельный порт для прослушивания запросов и связи.

Общие порты Linux

При установке операционной системы Linux и настройке различных служб некоторые порты автоматически назначаются этим службам. Номера портов варьируются от 1 до 65536. Порты ниже 1024 обычно зарезервированы для важных и критических сетевых функций и служб.

В следующей таблице перечислены некоторые из наиболее распространенных портов Linux:

Номер порта Использование
20 Для данных FTP.
21 Для управления FTP.
22 Для SSH.
25 Для SMTP для отправки электронной почты.
53 Для DNS.
80 Для веб-сервера HTTP.
110 Для POP3 для получения электронной почты.
123 Для NTP.
143 Для электронной почты IMAP.
443 Для защищенного веб-сервера HTTPS.
465 Для SMTP для отправки защищенных писем.
631 Для сервера печати CUPS.
993 Для безопасной электронной почты IMPAS.

В данный момент времени компьютер Linux имеет несколько открытых портов, на которых службы прослушивают соединения.

Вы можете использовать любую из следующих команд для отображения списка открытых портов в Linux:

sudo lsof -i -P -n | grep LISTEN
sudo netstat -tulpn | grep LISTEN
sudo ss -tulpn | grep LISTEN

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

Nmap – это утилита командной строки Linux, которая используется для сканирования и сопоставления портов. Сканер Nmap может отображать множество сведений о хосте Linux.

=

Nmap или Network Mapper Tool не устанавливается по умолчанию в большинстве дистрибутивов Linux. Установка Nmap с помощью Distro specific package Manager очень проста и понятна.

Чтобы сэкономить время, Nmap по умолчанию сканирует только самые популярные 1000 портов. Для всех портов нам нужно добавить опцию о который мы узнаем в следующем разделе.

В следующих примерах команд показаны некоторые из наиболее часто используемых команд для сканирования портов с помощью команд nmap:

Nmap Сканирование указанного IP или хоста

Введите nmap, а затем IP для сканирования определенного IP:

sudo nmap 192.168.0.1

Сканирование указанного IP или хоста
Сканирование указанного IP или хоста

В отчете о сканировании Nmap отображаются состояние хоста и задержка.

Аналогично этому, вы можете указать имя хоста для сканирования хоста:

sudo nmap example.com

Nmap Сканирование нескольких IP-адресов в Nmap

Для сканирования нескольких целей после команды nmap, введите список IP-адресов, разделенных пробелом:

sudo nmap 192.168.0.1 192.168.0.2 192.168.0.3

Отчет о сканировании nmap отображается для нескольких целей.

Сканирование нескольких IP-адресов в Nmap
Сканирование нескольких IP-адресов в Nmap

Nmap Сканирование диапазона IP

Вы можете указать диапазон IP-адресов после команды nmap вместо одного IP-адреса или нескольких целей для сканирования диапазона IP-адресов введите:

sudo nmap 192.168.200.1-10

В этом случае IP-адреса от 192.168.200.1 до 190.168.200.10 сканируются и создается отчет.

Ping-сканирование IP-адресов в подсети в Nmap Linux

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

sudo nmap 192.168.200.1/24

Ping-сканирование IP-адресов в подсети с помощью Nmap
Ping-сканирование IP-адресов в подсети с помощью Nmap

Nmap сканирование IP-адресов из текстового файла

Вы можете создать список IP-адресов в текстовом файле и указать файл для сканирования целевых IP-адресов из файла:

sudo nmap -iL users.txt

Сканирование определенного порта на данном IP-адресе

Используйте параметр -p, за которым следует номер порта, для сканирования определенного порта или нескольких портов (через запятую).

В следующем примере nmap сканирует порт 22 на хосте 192.168.200.1

sudo nmap -p 22 192.168.200.1

Для сканирования нескольких портов введите:

sudo nmap -p 80,22 192.168.200.1

Сканирование диапазона портов на данном IP-адресе

Укажите диапазон портов, за которым следует IP-адрес. Для сканирования заданного диапазона портов на указанном IP-адресе хоста используйте команду:

sudo nmap -p 1-100 192.168.200.2

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

Используйте опцию -F с nmap, чтобы перечислить общие порты на указанном IP-адресе хоста:

sudo nmap -F 192.168.200.1

Сканирование всех портов на данном IP-адресе

Используйте опцию -p- с nmap, чтобы перечислить все порты на данном IP-адресе хоста:

sudo nmap -p- 192.168.200.1

Также вы можете использовать опцию -p "*" для сканирования всех портов TCP и UDP 65535.

sudo nmap -p "*" 192.168.0.100

Сканирование TCP-портов

Используйте опцию -sT для выполнения сканирования TCP-портов на IP-адресе хоста:

sudo nmap -sT 192.168.200.1

Сканирование портов UDP

Nmap может работать с портами TCP и с портами UDP. Используйте опцию -sU для сканирования портов UDP на IP-адресе хоста:

sudo nmap -sU 192.168.200.1

Проверка операционной системы хоста

Используйте опцию -O для идентификации операционной системы указанного IP-адреса хоста.

Следующая команда nmap дает вам информацию об операционных системах на компьютере с IP-адресом 192.168.10.1.

sudo nmap -O 192.168.10.1

Проверка операционной системы хоста с помощью сканера Nmap
Проверка операционной системы хоста с помощью сканера Nmap

Сканирование самых популярных портов

Используйте опцию –top-ports для сканирования объекта на наличие открытых портов. Вы можете указать количество портов, которые вы хотите сканировать.

Следующий пример для сканирования 100 лучших (из 65 536 возможных) открытых портов для протокола TCP для целевого объекта:

sudo nmap --top-ports 100 target

Чтобы добавить протокол UDP, введите:

sudo nmap -sTU --top-ports

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

Вы можете использовать шаблоны времени, чтобы указать Nmap выполнить быстрое сканирование. Nmap поддерживает пять уровней шаблонов времени – T0 (параноидальный), T1 (подлый), T2 (вежливый), T3 (нормальный), T4 (агрессивный) и T5 (безумный).

В следующем примере выполняется безумно быстрое сканирование портов Nmap:

sudo nmap -T5 example.com

Следующий вывод nmap показывает разницу во времени в двух интерфейсах командной строки.

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

Скриптовый движок Nmap

Вы можете использовать механизм сценариев nmap для выполнения сканирования портов с помощью заранее определенных сценариев или создавать собственные сценарии. Это помогает системным администраторам автоматизировать сканирование портов с помощью nmap.

В следующем примере показано, как использовать скрипт vuln для проверки уязвимости системы:

sudo nmap -Pn --script vuln 127.0.0.1

Скриптовый движок Nmap
Скриптовый движок Nmap

Заключение

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

Nazario

Я — Nazario, создатель и автор сайта linuxwin.ru, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем. Мои глубокие знания и обширный практический опыт в этих сферах позволяют мне создавать детальные руководства и учебные материалы, ценные для пользователей всех уровней.

Я стремлюсь делать сложные темы доступными и понятными, надеюсь что мой вклад в сообщество IT будет оценен по достоинству.

Моя работа направлена на образование и распространение знаний в области информационных технологий, помогая другим расширять свои возможности и углублять понимание современных технологий.

Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

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