Как проверить открыт ли порт линукс

Как проверить наличие открытых портов в Linux

How to Check (Scan) for Open Ports in Linux

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

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

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

Порт прослушивания — это сетевой порт, который прослушивает приложение. Вы можете получить список прослушивающих портов в вашей системе, запросив сетевой стек с помощью таких команд, как ss , netstat или lsof . Каждый порт прослушивания может быть открыт или закрыт (отфильтрован) с помощью брандмауэра.

В общих чертах, открытый порт — это сетевой порт, который принимает входящие пакеты из удаленных мест.

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

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

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

Nmap — это мощный инструмент сетевого сканирования, который может сканировать отдельные узлы и большие сети. Он в основном используется для аудита безопасности и тестирования на проникновение.

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

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

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

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

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

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

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

Netcat (или nc ) — это инструмент командной строки, который может читать и записывать данные через сетевые подключения, используя протоколы TCP или UDP.

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

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

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

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

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

Для сканирования UDP-портов передайте -u параметр в nc команду:

Проверьте открытые порты с помощью Bash Pseudo Device

Другой способ проверить, является ли определенный порт открытым или закрытым, — использовать оболочку Bash /dev/tcp/.. или /dev/udp/.. псевдоустройство.

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

Читайте также:  Hp laserjet 3390 драйвер сканера windows 10 x64

Следующий оператор if..else проверит, открыт ли порт 443 on kernel.org :

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

Время ожидания по умолчанию при подключении к порту с использованием псевдоустройства очень велико, поэтому мы используем timeout команду для уничтожения команды test через 5 секунд. Если соединение установлено с kernel.org портом, 443 тестовая команда вернет true.

Вы также можете использовать цикл for для проверки диапазона портов:

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

Вывод

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

Источник

Как проверить (сканировать) на наличие открытых портов в Linux

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

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

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

Порт прослушивания — это сетевой порт, который прослушивает приложение. Вы можете получить список прослушивающих портов в вашей системе, запросив сетевой стек с помощью таких команд, как ss , netstat или lsof . Каждый порт прослушивания может быть открыт или закрыт (отфильтрован) с помощью брандмауэра.

В общих чертах, открытый порт — это сетевой порт, который принимает входящие пакеты из удаленных мест.

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

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

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

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

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

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

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

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

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

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

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

Netcat (или nc ) — это инструмент командной строки, который может читать и записывать данные через сетевые соединения, используя протоколы TCP или UDP.

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

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

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

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

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

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

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

Другой способ проверить, открыт или закрыт определенный порт, — использовать оболочку Bash /dev/tcp/.. или /dev/udp/.. псевдоустройство.

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

Следующий оператор if..else проверяет, открыт ли порт 443 на kernel.org :

Читайте также:  Папка recovery windows 10 много весит

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

При подключении к порту с помощью псевдоустройства таймаут по умолчанию огромен, поэтому мы используем команду timeout чтобы завершить тестовую команду через 5 секунд. Если соединение установлено с портом 443 kernel.org тестовая команда вернет true.

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

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

Выводы

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

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

Источник

Как определить открытые порты в Linux?

После настройки сетевых служб важно обратить внимание на порты, принимающие подключения на сетевых интерфейсах. Любые открытые порты могут быть доказательством вторжения. Просмотреть открытые порты можно двумя способами. Менее надёжный способ — опросить сетевой стек с помощью команды netstat -an или lsof -i. Этот способ не очень надёжен, так как эти программы не подключаются к компьютеру по сети, а просто определяют, что происходит в системе. По этой причине, эти приложения часто подменяются нападающими. Таким способом взломщики пытаются скрыть свои следы, если они незаконно открыли порты. Другим более надёжным способом проверки открытых портов является использование сканера портов, например nmap. Все команды netstat, ss, netcat относится к сетевым утилитам и доступны по-умолчанию в большинстве linux-дистрибутивах.

Проверка открытых портов в Linux может понадобиться, чтобы убедиться, что в системе не запущены лишние службы.

Если вы помните, порт это число, которое приложение будет использовать для связи с другой программой, предоставлять сервис и т.д. Чтобы получить представление о том, какие службы работают в системе, необходимо проверить открытые порты системы. Часто мы устанавливаем программу, которая является сервисом, а потом забываем о ней, поэтому наша машина может прослушивать порты в ожидании соединения. Злоумышленники любят, когда порты открыты, так как приложения, прослушивающие эти порты, являются простыми целями. Чтобы обеспечить нашей системе Ubuntu Linux (или любой другой системе в этом отношении) максимальную безопасность, мы должны знать о том, какие порты открыты и для каких служб.

Определить открытых портов в Linux через nmap

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

Nmap («Network Mapper») — это утилита с открытым исходным кодом для исследования сети и проверки безопасности.

Утилита кроссплатформенна, бесплатна, поддерживаются операционных системы Linux, Windows, FreeBSD, OpenBSD, Solaris, Mac OS X. Nmap умеет сканировать различными методами — например, UDP, TCP connect(), TCP SYN (полуоткрытое), FTP proxy (прорыв через ftp), Reverse-ident, ICMP (ping), FIN, ACK, SYN и NULL-сканирование. Выбор варианта сканирования зависит от указанных ключей, вызов nmap выглядит следующим образом:
nmap цель

Следующая команда, запущенная с консоли, определяет, какие порты ждут TCP-соединений из сети:
nmap -sT -O localhost

Сканирование всех TCP-порты целевого IP-адреса
nmap –sT 192.168.75.131

UDP-сканирование – сканирование хоста на наличие UDP-служб. Это сканирование используется для просмотра открытых UDP-портов.
nmap –sU 192.168.75.131

Статистика открытых портов в Linux через netstat

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

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

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

Формат командной строки:
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p протокол] [-r] [-s] [-t] [интервал]

Читайте также:  Multi загрузочная флешка windows

Команда netstat умеет показывать сетевые соединения (входящие/исходящие), таблицу маршрутизации, статистику по сетевым интерфейсам и т.д. Список всех открытых портов (TCP):
netstat -at

Список всех открытых портов (UDP)
netstat -au

Список только прослушиваемых портов (TCP)
netstat -lt

Статистика по всем открытым портам
netstat -s

Подробное отображение списка с открытыми портами — добавлен PID и имя процессов
netstat -p

Объединим все ключи в полезную команду для просмотра открытых TCP/UDP портов с именами процессов (может понадобиться root-доступ)
netstat -ltupn

Список подключенных хостов
netstat -lantp | grep ESTABLISHED |awk ‘‘ | awk -F: ‘‘ | sort -u

Узнать открытые порты в Linux через lsof

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

Утилита командной строки lsof (List Open Files) используется для получения информации об открытых различными процессами файлах (а с точки зрения unix все является файлами — каталоги, устройства, сокеты и т. д.).

Давайте разберемся с практическим применением lsof. Если ввести команду lsof без аргументов, можно увидеть все файлы, принадлежащие процессам. Утилита lsof умеет отображать процессы, которые работают с определенным файлом или сокетом.

Список всех сетевых соединений
lsof -i

Список процессов, работающих с портом 80
lsof -i :80

Вы можете использовать следующую команду:
lsof -i -P |grep pid

Статистика открытых портов в Linux через ss

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

Команда ss — это инструмент, используемый для вывода сетевой статистики в виде, похожем на тот, который выдаёт команда netstat.

Эта команда обладает схожим функционалом к netstat, но есть и уникальные возможности. Например можно фильтровать вывод по установленным соединениям с определенным портом.

Список процессов, использующие соединения в данный момент
ss -p

Список сокетов в режиме прослушивания
ss -l

Пример фильтра — список всех соединений к порту 80
ss -o state established ‘( dport = :www or sport = :www )’

Открытые порты в Linux через tcpdump

С помощью tcpdump легко снять трафик с вашего сетевого интерфейса, для дальнейшего разбора. Без tcpdump сложно разобрать ошибки, которые возникают при работе с сетью и IP телефонией в целом. Tcpdump, по умолчанию, принимает только первые 68 96 байт данных из пакета.

Tcpdump полезное и необходимое приложения для Linux/UNIX систем.

Если вы хотите, посмотреть более подробные пакеты, то добавьте опцию -s , где число обозначает количество байтов, которые вы хотите захватить. Если установить -s 0 (ноль)- это означает захватывать все пакеты.

proto — работает с протоколами tcp, udp и icmp. (Не надо писать proto)
tcpdump icmp

port — захватывает трафик по определенному порту
tcpdump port 5060

src, dst port — захватывает трафик по определенному порту от источника или к IP адресу назанчения
tcpdump src port 5060tcpdump dst port 5060

src/dst, port, protocol — сочетание всех трех выражений
tcpdump src port 5060 and tcp tcpdump udp and src port 5060

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

Источник

Оцените статью