Linux проверить открытые порты на удаленной машине
Как проверить наличие открытых портов в Linux
How to Check (Scan) for Open Ports in Linux
В этой статье описывается несколько подходов, чтобы узнать, какие порты открыты снаружи в вашей системе Linux.
Независимо от того, решаете ли вы проблемы с сетевым подключением или настраиваете брандмауэр, в первую очередь необходимо проверить, какие порты действительно открыты в вашей системе.
Что такое открытый порт
Например, если вы используете веб-сервер, который прослушивает порты, 80 и 443 эти порты открыты на вашем брандмауэре, любой (кроме заблокированных ips) сможет получить доступ к веб-сайтам, размещенным на вашем веб-сервере, с помощью своего браузера. В этом случае оба 80 и 443 являются открытыми портами.
Открытые порты могут представлять угрозу безопасности, так как каждый открытый порт может использоваться злоумышленниками для использования уязвимости или выполнения любых других типов атак. Вы должны выставить только порты, необходимые для функциональности вашего приложения и закрыть все другие порты.
Проверьте открытые порты с nmap
Если доступно, nmap должен быть ваш первый инструмент, когда дело доходит до сканирования портов. Помимо сканирования портов nmap можно также определить Mac-адрес, тип ОС, версии ядра и многое другое.
Следующая команда из консоли определяет, какие порты прослушивают TCP-соединения из сети:
Для получения дополнительной информации посетите страницу руководства nmap и прочитайте обо всех других мощных опциях этого инструмента.
Проверьте открытые порты с netcat
С netcat его помощью можно сканировать один порт или диапазон портов.
Например, для поиска открытых портов TCP на удаленном компьютере с IP-адресом 10.10.8.8 в диапазоне 20-80 вы должны использовать следующую команду:
Вывод будет выглядеть примерно так:
Проверьте открытые порты с помощью Bash Pseudo Device
При выполнении команды на /dev/$PROTOCOL/$HOST/$IP псевдоустройстве Bash откроет TCP или UDP-соединение с указанным хостом на указанном порту.
Следующий оператор if..else проверит, открыт ли порт 443 on kernel.org :
Как работает приведенный выше код?
Время ожидания по умолчанию при подключении к порту с использованием псевдоустройства очень велико, поэтому мы используем timeout команду для уничтожения команды test через 5 секунд. Если соединение установлено с kernel.org портом, 443 тестовая команда вернет true.
Вы также можете использовать цикл for для проверки диапазона портов:
Вывод будет выглядеть примерно так:
Вывод
Как проверить (сканировать) на наличие открытых портов в Linux
Если вы устраняете проблемы с подключением к сети или настраиваете брандмауэр, первое, что нужно проверить, — это то, какие порты действительно открыты в вашей системе.
В этой статье описывается несколько подходов к выяснению того, какие порты открыты извне в вашей системе Linux.
Что такое открытый порт
В общих чертах, открытый порт — это сетевой порт, который принимает входящие пакеты из удаленных мест.
Например, если вы используете веб-сервер, который прослушивает порты 80 и 443 и эти порты открыты на вашем брандмауэре, любой (кроме заблокированных IP-адресов) сможет получить доступ к веб-сайтам, размещенным на вашем веб-сервере, с помощью своего браузера. В этом случае и 80 и 443 являются открытыми портами.
Открытые порты могут представлять угрозу безопасности, поскольку каждый открытый порт может быть использован злоумышленниками для использования уязвимости или выполнения любого другого типа атаки. Вы должны открыть только те порты, которые необходимы для работы вашего приложения, и закрыть все остальные порты.
Проверьте открытые порты с помощью nmap
Nmap — это мощный инструмент сетевого сканирования, который может сканировать отдельные хосты и большие сети. Он в основном используется для аудита безопасности и тестирования на проникновение.
Следующая команда, выдаваемая с консоли, определяет, какие порты прослушивают TCP-соединения из сети:
Для получения дополнительной информации посетите страницу руководства nmap и прочтите обо всех других мощных возможностях этого инструмента.
Проверьте открытые порты с помощью netcat
Netcat (или nc ) — это инструмент командной строки, который может читать и записывать данные через сетевые соединения, используя протоколы TCP или UDP.
С помощью netcat вы можете сканировать отдельный порт или диапазон портов.
Например, для поиска открытых TCP-портов на удаленном компьютере с IP-адресом 10.10.8.8 в диапазоне 20-80 вы должны использовать следующую команду:
Результат будет выглядеть примерно так:
Проверьте открытые порты с помощью псевдоустройства Bash
Другой способ проверить, открыт или закрыт определенный порт, — использовать оболочку Bash /dev/tcp/.. или /dev/udp/.. псевдоустройство.
При выполнении команды на псевдоустройстве /dev/$PROTOCOL/$HOST/$IP Bash откроет TCP или UDP-соединение с указанным хостом на указанном порту.
Следующий оператор if..else проверяет, открыт ли порт 443 на kernel.org :
Как работает приведенный выше код?
При подключении к порту с помощью псевдоустройства таймаут по умолчанию огромен, поэтому мы используем команду timeout чтобы завершить тестовую команду через 5 секунд. Если соединение установлено с портом 443 kernel.org тестовая команда вернет true.
Чтобы проверить диапазон портов, используйте цикл for :
Результат будет выглядеть примерно так:
Выводы
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.
🏷 3 способа проверить, открыт ли порт на удаленной системе Linux
В этой статье мы покажем вам, как проверить, какие порты открыты в удаленной системе Linux, используя три метода.
Это можно сделать с помощью следующих команд Linux.
Как проверить, открыт ли порт на удаленной системе Linux с помощью команды nc (netcat)?
nc означает netcat.
Netcat – это простая утилита Unix, которая читает и записывает данные через сетевые соединения, используя протокол TCP или UDP.
Она разработана, чтобы быть надежным «внутренним» инструментом, который может использоваться напрямую или легко управляться другими программами и скриптами.
В то же время это многофункциональный инструмент для отладки и исследования сети, поскольку он может создавать практически любые типы соединений, которые вам понадобятся, и имеет несколько интересных встроенных возможностей.
Netcat имеет три основных режима работы.
Это режим подключения, режим прослушивания и туннельный режим.
Общий синтаксис для nc (netcat):
В этом примере мы собираемся проверить, открыт ли порт 22 в удаленной системе Linux.
В случае успеха вы получите следующий результат.
Если порт не доступен, вы получите следующий вывод.
Как проверить, открыт ли порт на удаленной системе Linux с помощью команды nmap?
Nmap («Network Mapper») – это инструмент с открытым исходным кодом для исследования сети и аудита безопасности.
Он был разработан для быстрого сканирования больших сетей, хотя он отлично работает на отдельных хостах.
Хотя Nmap обычно используется для аудита безопасности, многие системные и сетевые администраторы считают его полезным для рутинных задач, таких как инвентаризация сети, управление расписаниями обновления служб и мониторинг времени работы хоста или службы.
Общий синтаксис для nmap:
В случае успеха вы получите следующий результат.
Если это не удастся, вы получите следующий вывод.
Как проверить, открыт ли порт на удаленной системе Linux с помощью команды telnet?
Команда telnet используется для интерактивного взаимодействия с другим хостом по протоколу TELNET.
Общий синтаксис для telnet:
В случае успеха вы получите следующий результат.
Если это не удастся, вы получите следующий вывод.
Проверка портов
Проверить порты можно с помощью следующих команд:
Как проверить, открыт ли порт на удаленной системе Unix с помощью команды nc (netcat)?
Netcat – это простая утилита Unix, которая читает и записывает данные через сетевые соединения, используя протокол TCP или UDP. Она разработана, чтобы быть надежным «внутренним» инструментом, который может использоваться напрямую или легко управляться другими программами и скриптами.
В то же время это многофункциональный инструмент для отладки и исследования сети, поскольку он может создавать практически любые типы соединений, которые вам понадобятся, и имеет несколько интересных встроенных возможностей.
Netcat имеет три основных режима работы. Это режим подключения, режим прослушивания и туннельный режим. Общий синтаксис для nc (netcat):
Проверяем открыт ли 80 порт на сервере
если порт закрыт мы увидим вот такой ответ
Как проверить, открыт ли порт на удаленной системе Unix с помощью команды nmap?
Nmap («Network Mapper») – это инструмент с открытым исходным кодом для исследования сети и аудита безопасности. Он был разработан для быстрого сканирования больших сетей, хотя он отлично работает на отдельных хостах.
Хотя Nmap обычно используется для аудита безопасности, многие системные и сетевые администраторы считают его полезным для рутинных задач, таких как инвентаризация сети, управление расписаниями обновления служб и мониторинг времени работы хоста или службы.
Общий синтаксис для nmap:
проверим открыт ли 22 порт на сервере, если открыт увидим вот этот ответ
проверим 349 порт, если он закрыт увидим следующий ответ
Nmap’ом можно проверить открытые порты локально
для просмотра открытых внешних портов сначала узнаем внешний ip адрес, для надежности воспользуемся онлайн сервисом:
Дальше запускаем сканирование:
Как проверить, открыт ли порт на удаленной системе Unix с помощью команды telnet?
Команда telnet используется для интерактивного взаимодействия с другим хостом по протоколу TELNET. Общий синтаксис для telnet:
проверим открыт ли 22 порт telnet’ом, если открыт увидим следующий ответ
если закрыт увидим ответ
Как проверить, открытые порты с помощью утилиты netstat?
Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения. Для отображения максимально подробной информации надо использовать опции:
Открытые порты Linux, которые ожидают соединений имеют тип LISTEN, а перед портом отображается IP адрес на котором сервис ожидает подключений. Это может быть определенный IP адрес или */0.0.0.0 что означают любой доступный адрес:
Как проверить, открытые порты с помощью утилиты ss?
Утилита ss — это современная альтернатива для команды netstat. В отличие от netstat, которая берет информацию из каталога /proc, утилита ss напрямую связывается со специальной подсистемой ядра Linux, поэтому работает быстрее и её данные более точные, если вы хотите выполнить просмотр открытых портов это не имеет большого значения. Опции у неё такие же:
Можно вывести только процессы, работающие на 80-том порту:
Как проверить, открытые порты с помощью утилиты lsof?
Ещё один пример, смотрим какие процессы работают с портом 80:
🚶♂️ 5 Утилит Linux для проверки сетевого подключения
Хотите знать, как проверить соединение между двумя конечными точками сети?
Одной из распространенных задач для сетевиков является проверка возможности соединения для устранения проблем с сетью.
Это может быть что-то вроде того, что приложение не может подключиться к серверной службе, не может извлечь данные из внешнего URL-адреса, или проверить, открыт ли поток и т. д.
Как бы то ни было, вам помогут следующие утилиты / команды.
Они протестированы на CentOS 7.x, и я не вижу причин им не сработать также на другом дистрибутиве Linux.
Давайте исследуем их по порядку…
1 telnet
Одна из широко используемых команд для проверки необходимых подключений между серверами – IP-адресом другого сетевого устройства.
Синтаксис команды прост.
Допустим, вы хотите проверить, можете ли вы подключиться к порту 8080 по IP-адресу 10.0.0.1; тогда команда будет такой:
Если проблема с подключением отсутствует, вы должны увидеть сообщение о подключении.
В большинстве случаев telnet должен помочь.
Однако, если вам нужен какой-то другой вариант, вот несколько альтернатив telnet.
2 ncat или nc
Ncat (a.k.a. nc) – мощная сетевая утилита со многими функциями, такими как привязка и принятие соединения, удаленное выполнение команд, запись и чтение данных и т. д.
Она работает как на IPv4, так и на IPv6.
Чтобы выполнить простой тест, дабы проверить, открыт порт или нет, выполните следующее:
Давайте рассмотрим пример тестирования порта 443 на itsecforu.ru
Как уже упоминалось, вы также можете использовать nc для привязки соединения для прослушивания определенного порта.
Это может быть удобно, если у вас не запущены реальные службы, но вы хотите убедиться, что соединение существует.
Чтобы начать прослушивание порта:
Это свяжет порт с заданным номером.
Если ncat не установлен, вы можете сделать это с помощью yum install nc на серверах CentOS / RHEL.
Полезные статьи о использовании и описании команды netcat:
3 wget
wget – полезная команда для загрузки / тестирования HTTP, HTTPS и FTP.
Если вы работаете веб-инженером или часто сталкиваетесь с проблемами, связанными с Интернетом, то wget – ваш надежный товарищ и друг.
Тестирование с использованием wget простое и быстрое.
Вот пример тестирования tools.itsecforu.ru
Если он показывает connected, значит, проблема с подключением отсутствует.
4 curl
Curl – это многоцелевой инструмент.
Знаете ли вы, что вы можете использовать подключение по telnet к порту с помощью curl?
Ну, теперь вы знаете. 🙂
Ниже приведен рабочий пример.
И, когда нет проблем с портом прослушивания или брандмауэром, вы увидите, что-то вроде такого вывода.
Вы также можете использовать curl для загрузки данных. Он поддерживает несколько протоколов – HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER и т. д.
Интересные статьи про инструмент Curl
5 nmap
О нем мы говорили тут миллион раз 🙂
И наверное этот инструмент не нуждается в представлении, но всеже.
Популярный инструмент с сотнями функций.
Часто он рассматривается как инструмент безопасности.
Nmap позволяет тестировать один IP / порт или в диапазоне.
Чтобы проверить один порт
Пример тестирования порта 443 на siterelic.com
Посмотрите на столбец состояния.
Если вы видите open, значит, соединение в порядке.
И, если состояние filtered, это означает, что подключение не существует.
Некоторые полезные статьи по Nmap
Заключение
Telnet постепенно отключается в последней версии Linux.
Но всегда есть вышеупомянутые альтернативы telnet.