Как проверить порт udp linux

Обновлено: 04.07.2024

Описание метода тестирования и проверки порта TCP / UDP под Linux

Описание метода тестирования и проверки порта TCP / UDP под Linux

В системе ECS Linux облачного сервера иногда необходимо протестировать подключение портов в системе, чтобы убедиться, что стеки протоколов TCP и UDP системы могут нормально работать. Эта статья кратко объясняет это.

Тест порта TCP

Используйте telnet для проверки возможности подключения существующих портов прослушивания

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

Пример:

Проверить подключение порта 22 можно следующим образом:

Создайте новый тест прослушивающего порта

Вы можете использовать веб-сервер, поставляемый с Python, для временного создания нового порта прослушивания для тестирования. Использование следующее:

Пример вывода:

Тест порта UDP

Telnet можно использовать только для тестирования портов протокола TCP. Если вы хотите проверить порты UDP, вы можете использовать программу nc.

Используйте следующую команду, чтобы подтвердить, установлен ли nc в системе:

Пример вывода:

Если nc не был установлен, используйте такие инструменты, как yum или apt-get, чтобы установить его в соответствии с операционной системой. В этой статье не будет подробностей.

Используйте следующую команду для проверки возможности подключения порта UDP целевого сервера:

Применение:

Пример вывода:

Если возвращенный результат содержит слово «выполнено успешно», это означает, что доступ к соответствующему порту нормальный. Если нет обратной информации, доступ к соответствующему порту не удался.

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

Что такое открытый порт

Например, если вы используете веб-сервер, который прослушивает порты 80 и 443 и эти порты открыты на вашем брандмауэре, любой (кроме заблокированных IP-адресов) сможет получить доступ к веб-сайтам, размещенным на вашем веб-сервере, с помощью своего браузера. В этом случае и 80 и 443 являются открытыми портами.

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

Проверьте открытые порты с помощью nmap

Если возможно, nmap должен стать вашим первым инструментом для сканирования портов. Помимо сканирования портов, nmap также может определять Mac-адрес, тип ОС , версии ядра и многое другое.

Следующая команда, выдаваемая с консоли, определяет, какие порты прослушивают TCP-соединения из сети:

-sT указывает nmap сканировать TCP-порты, а -p- сканировать все 65535 портов. Если -p- не используется, nmap будет сканировать только 1000 самых популярных портов.

Приведенные выше выходные данные показывают, что в целевой системе открыты только порты 22 , 80 и 8069 .

Для поиска портов UDP используйте -sU вместо -sT :

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

Проверьте открытые порты с помощью netcat

С помощью netcat вы можете сканировать отдельный порт или диапазон портов.

Например, для поиска открытых TCP-портов на удаленном компьютере с IP-адресом 10.10.8.8 в диапазоне 20-80 вы должны использовать следующую команду:

Параметр -z указывает nc сканировать только открытые порты без отправки каких-либо данных, а параметр -v предназначен для получения более подробной информации.

Результат будет выглядеть примерно так:

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

Чтобы сканировать UDP-порты, передайте параметр -u команде nc :

Конструкция 2>&1 перенаправляет стандартную ошибку на стандартный вывод.

Проверьте открытые порты с помощью псевдоустройства Bash

При выполнении команды на псевдоустройстве /dev/$PROTOCOL/$HOST/$IP Bash откроет TCP или UDP-соединение с указанным хостом на указанном порту.

Как работает приведенный выше код?

Чтобы проверить диапазон портов, используйте цикл for :

Результат будет выглядеть примерно так:

Выводы

Мы показали вам несколько инструментов, которые вы можете использовать для поиска открытых портов. Существуют также другие утилиты и методы для проверки открытых портов, например, вы можете использовать модуль socket Python, curl , telnet или wget .

Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.

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

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

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

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


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


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

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

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

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

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


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



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


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

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

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


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


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

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

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


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


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

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

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

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

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

Сообщите, открыт или закрыт порт TCP или UDP в Linux

Просмотр открытых портов с помощью Netcat

  • z - это параметр, который гарантирует, что в конце проверки соединение будет закрыто или, в противном случае, программа будет продолжать работать в цикле до тех пор, пока мы вручную не завершим ее с помощью Ctrl + C, аналогично тому, как когда пинг на Linux.
  • v - параметр, отвечающий за проверку того, открыт ли порт или закрыт.

Чтобы проверить порт, мы должны ввести в терминал следующее:

Например, чтобы проверить порт 443 на нашем маршрутизаторе мы будем Тип:

nc -zv 192.168.10.1 443

На следующем изображении вы можете увидеть, как этот порт открыт:


Если мы протестируем сайт этой статьи и порт 443, мы получим аналогичную информацию:


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


Как вы видели, очень легко проверить, открыт или закрыт порт, с помощью Netcat, очень простой утилиты, которая предустановлена ​​в Linux. В дополнение к командам «z» и «v» у нас также есть другие доступные аргументы, которые позволят нам узнать больше информации. Если мы выполним следующую команду, появится справка:


Как видите, у нас есть много аргументов в пользу расширения функциональности.

Просмотр открытых портов с помощью Nmap

Nmap - это программа, которая по преимуществу обнаруживает хосты, а также проверяет, открыты ли разные порты. Эта программа не предустановлена ​​в операционных системах Linux, но мы можем установить ее прямо из репозиториев в следующем порядке:

sudo apt install nmap

После установки, чтобы узнать, открыт ли конкретный порт, мы должны ввести следующую команду:

На следующем изображении вы можете увидеть, как будет выглядеть открытый порт:


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


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

nmap -p 1-65535 192.168.10.1

Как видите, проверить открытые порты с помощью Nmap действительно просто, кроме того, мы можем сканировать все хосты в домашней или профессиональной локальной сети, чтобы позже просканировать различные порты.

Проверьте брандмауэр в Linux

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

Если в нашем Linux-терминале мы ставим следующее:

Все цепочки и правила мы получим из таблицы «filter» iptables, в случае использования Nftables необходимо указать следующую команду:

nft list ruleset

Очень важная рекомендация по безопасности заключается в том, что все порты на сервере Linux должны быть закрыты, таким образом, когда мы запускаем службу, прослушивающую определенный порт, он не будет доступен, если мы не разрешим это в брандмауэре. Мы должны детально проверить, открыт ли тот или иной порт, чтобы наши услуги были доступны из-за границы.

Просмотр статуса TCP- и UDP-подключений

Если нас интересует состояние всех протоколов TCP, UDP, ICMP и других в нашей операционной системе, широко используемым инструментом всегда был «netstat», однако этот инструмент был на втором месте благодаря новому «ss». это позволит нам легко и быстро получить большой объем информации. Этот инструмент отвечает за проверку всех открытых или закрытых сокетов на нашем сервере Linux, и мы сможем увидеть статистику этих открытых или закрытых сокетов. Если вы использовали инструмент netstat в прошлом, мы уверены, что вам понравится этот новый инструмент «ss».

Инструмент «ss» уже предустановлен в операционных системах Linux как часть самой системы, как и в случае с «ping», «traceroute» и многими другими инструментами. Если мы открываем консоль как в пользовательском режиме, так и в режиме суперпользователя, мы должны выполнить:

Как только мы выполним этот заказ, мы увидим следующее:


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

Если мы хотим видеть статус всех портов (сокетов), мы можем установить следующий порядок:

Если мы хотим видеть только порты, которые «слушают», мы должны ввести следующую команду:

На следующем изображении вы можете увидеть пример портов, которые ГОТОВЫ для приема входящих соединений:


В случае, если мы хотим показать TCP-соединения, нам нужно будет использовать аргумент «-t», а в случае, если мы хотим показать UDP-соединения, нам придется использовать аргумент «-u».

Команда «ss» действительно полезна для отображения всех установленных соединений, а также для прослушивания в нашей операционной системе Linux.

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

Читайте также: