Перейти к содержанию

Проверка портов

Проверить порты можно с помощью следующих команд:

  • nc: Netcat – простая утилита Unix, которая считывает и записывает данные через сетевые соединения, используя протокол TCP или UDP.
  • nmap: Nmap («Network Mapper») – это инструмент с открытым исходным кодом для исследования сети и аудита безопасности. Он был разработан для быстрого сканирования больших сетей.
  • telnet: Утилита telnet используется для интерактивного взаимодействия с другим хостом по протоколу TELNET.
  • netstat: Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения.
  • ss: Утилита ss - это современная альтернатива для команды netstat. В отличие от netstat, которая берет информацию из каталога /proc, утилита ss напрямую связывается со специальной подсистемой ядра Linux
  • lost: Утилита lsof позволяет посмотреть все открытые в системе соединения, в том числе и сетевые.

Как проверить, открыт ли порт на удаленной системе Unix с помощью команды nc (netcat)?

Netcat – это простая утилита Unix, которая читает и записывает данные через сетевые соединения, используя протокол TCP или UDP. Она разработана, чтобы быть надежным «внутренним» инструментом, который может использоваться напрямую или легко управляться другими программами и скриптами.

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

Netcat имеет три основных режима работы. Это режим подключения, режим прослушивания и туннельный режим. Общий синтаксис для nc (netcat):

$ nc [-options] [HostName or IP] [PortNumber]

Проверяем открыт ли 80 порт на сервере

Снимок экрана 2020 12 24 в 18.47.23

если порт закрыт мы увидим вот такой ответ

Снимок экрана 2020 12 24 в 18.51.17

Как проверить, открыт ли порт на удаленной системе Unix с помощью команды nmap?

Nmap («Network Mapper») – это инструмент с открытым исходным кодом для исследования сети и аудита безопасности. Он был разработан для быстрого сканирования больших сетей, хотя он отлично работает на отдельных хостах.

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

Общий синтаксис для nmap:

$ nmap [-options] [HostName or IP] [-p] [PortNumber]

проверим открыт ли 22 порт на сервере, если открыт увидим вот этот ответ

Снимок экрана 2020 12 24 в 18.54.45

проверим 349 порт, если он закрыт увидим следующий ответ

Снимок экрана 2020 12 24 в 18.56.36

Nmap'ом можно проверить открытые порты локально

Снимок экрана 2020 12 24 в 19.27.19

для просмотра открытых внешних портов сначала узнаем внешний ip адрес, для надежности воспользуемся онлайн сервисом:

$ wget -O - -q eth0.me

Снимок экрана 2020 12 24 в 19.32.39

Дальше запускаем сканирование:

$ Nmap 79.134.220.162

Снимок экрана 2020 12 24 в 19.32.28 1

Как проверить, открыт ли порт на  удаленной системе Unix с помощью команды telnet?

Команда telnet используется для интерактивного взаимодействия с другим хостом по протоколу TELNET. Общий синтаксис для telnet:

$ telnet [HostName or IP] [PortNumber]

проверим открыт ли 22 порт telnet'ом, если открыт увидим следующий ответ

Снимок экрана 2020 12 24 в 19.01.31

если закрыт увидим ответ

Снимок экрана 2020 12 24 в 19.02.16

Как проверить, открытые порты с помощью утилиты netstat?

Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения. Для отображения максимально подробной информации надо использовать опции:

  • -l или--listening - посмотреть только прослушиваемые порты;
  • -p или --program - показать имя программы и ее PID;
  • -t или --tcp -показать tcp порты;
  • -u или --udp показать udp порты;
  • -n или --numeric показывать ip адреса в числовом виде.

Открытые порты Linux, которые ожидают соединений имеют тип LISTEN, а перед портом отображается IP адрес на котором сервис ожидает подключений. Это может быть определенный IP адрес или */0.0.0.0 что означают любой доступный адрес:

$ netstat -tulpn

Снимок экрана 2020 12 24 в 19.15.40

Как проверить, открытые порты с помощью утилиты ss?

Утилита ss - это современная альтернатива для команды netstat. В отличие от netstat, которая берет информацию из каталога /proc, утилита ss напрямую связывается со специальной подсистемой ядра Linux, поэтому работает быстрее и её данные более точные, если вы хотите выполнить просмотр открытых портов это не имеет большого значения. Опции у неё такие же:

Снимок экрана 2020 12 24 в 19.18.19

Можно вывести только процессы, работающие на 80-том порту:

$  ss -tulpn | grep 80

Снимок экрана 2020 12 24 в 19.20.42

Как проверить, открытые порты с помощью утилиты lsof?

Утилита lsof позволяет посмотреть все открытые в системе соединения, в том числе и сетевые, для этого нужно использовать опцию -i, а чтобы отображались именно порты, а не названия сетевых служб следует использовать опцию -P:

$  lsof -i -P

Снимок экрана 2020 12 24 в 19.23.11

Ещё один пример, смотрим какие процессы работают с портом 80:

$  lsof -i -P | grep 80

Снимок экрана 2020 12 24 в 19.24.23