Как проверить открыт ли порт ubuntu
Перейти к содержимому

Как проверить открыт ли порт ubuntu

  • автор:

Как посмотреть открытые порты Linux

Visitors have accessed this post 91357 times.

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

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

1) Посмотреть открытые порты с помощью команды ss

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

Чтобы отобразить прослушиваемые TCP-соединения, выполните команду
$ ss -tl
Пример вывода

l — показывает прослушиваемые сокеты
t — означает порт TCP
Чтобы посмотреть прослушиваемые UDP-соединения, введите команду
$ ss -lu
Пример вывода

u — означает порт UDP.
Или для того, чтобы отобразить tcp и udp одновременно, введите имя процесса
$ ss -lntup
p — выдает список имен процессов, которые открыли сокеты.
Чтобы вывести все соединения между сокетами, просто используйте команду ss в ее формате по умолчанию
$ ss
Пример вывода

2) Посмотреть открытые порты с помощью команды netstat

Команда netstat — это инструмент командной строки, который используется для проверки открытых портов TCP и UDP вместе с другими атрибутами. Чтобы в Linux проверить открытые порты, введите команду:
$ netstat -pnltu
Пример вывода

Давайте подробнее рассмотрим параметры команды:
p — показывает идентификатор услуги или название программы;
n — отображает числовой номер запущенного порта, например, 3306 для mysqld и 22 для sshd;
l — показывает прослушиваемые сокеты;
t — показывает TCP-соединения;
u — показывает UDP-соединения.

3) Посмотреть открытые порты Linux с помощью команды lsof

Команда lsof — это сетевой инструмент, который также можно использовать, чтобы проверить открытые порты Linux. Для этого введите команду
$ lsof -i
Пример вывода

Чтобы посмотреть открытые сокеты, используйте команду lsof и перенаправьте вывод в grep, как показано ниже:
$ lsof -n -P | grep LISTEN
Пример вывода

Для просмотра всех TCP-соединений выполните следующую команду:
$ lsof -i tcp
Пример вывода

Чтобы посмотреть все UDP-соединения, выполните команду:
$ lsof -i udp
Пример вывода

4) Посмотреть открытые порты Linux с помощью утилиты Nmap

Nmap — это бесплатный инструмент с открытым исходным кодом для сканирования сети, обычно используется для обнаружения открытых портов удаленных систем. По умолчанию Nmap не установлен в ОС Linux. Чтобы установить Nmap, введите команду:
$ sudo apt install nmap (для Debian/ Ubuntu)
$ sudo yum install nmap (для RedHat/ CentOS)
$ sudo dnf install nmap (для Fedora)
$ pacman -S nmap (ArchLinux)
Чтобы найти открытые порты TCP, выполните команду:
$ nmap -sT -O localhost
Пример вывода

Чтобы найти открытые порты UDP, выполните команду:
$ nmap -sU localhost
Пример вывода

Каждую неделю мы в live режиме решаем кейсы на наших открытых онлайн-практикумах, присоединяйтесь к нашему каналу в Телеграм, вся информация там.

Если вы хотите освоить функционал системного администратора Linux на практике, приглашаем на наш практикум Linux by Rebrain.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

$ wget -O - -q eth0.me

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

$ Nmap 79.134.220.162

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

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

$ telnet [HostName or IP] [PortNumber]

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

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

Как проверить, открытые порты с помощью утилиты 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

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

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

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

$ ss -tulpn | grep 80

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

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

$ lsof -i -P

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

$ lsof -i -P | grep 80

Как проверить открытые порты на Ubuntu/Linux

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

Итак, знаете ли вы, какие порты вашей системы открыты? Давайте выясним это.

Проверка открытых портов с помощью команды ss

Содержание

  1. 1. Проверка открытых портов с помощью команды ss
  2. 2. Проверка открытых портов с помощью nmap

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

Мы рекомендуем использовать -ltn параметры с командой, чтобы увидеть краткие и соответствующие выходные данные.

Давайте рассмотрим пример:

sudo ss -ltn
LISTEN 0 151 127.0.0.1:3306 0.0.0.0:* LISTEN 0 511 10.1.1.6:80 0.0.0.0:* LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 511 10.1.1.6:443 0.0.0.0:* 

Мы видим, что наш сервер прослушивает соединения на портах 80, 3306, 53, 443 и 22. Это хорошо известные порты, связанные с HTTP, MySQL, DNS, HTTPS и SSH.

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

Чтобы увидеть, к каким процессам относятся эти прослушивающие порты, включите опцию -p .

sudo ss -ltnp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 151 127.0.0.1:3306 0.0.0.0:* users:(("mysqld",pid=243,fd=26)) LISTEN 0 511 127.0.0.1:80 0.0.0.0:* users:(("nginx",pid=465,fd=22),("nginx",pid=464,fd=22),("nginx",pid=463,fd=22)) LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=95,fd=13)) LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=175,fd=3)) LISTEN 0 511 127.0.0.1:443 0.0.0.0:* users:(("nginx",pid=465,fd=24),("nginx",pid=464,fd=24),("nginx",pid=463,fd=24))

Теперь мы можем видеть, что systemd-resolve, ssh, mysqld и nginx-это службы, которые используют порты для прослушивания входящих соединений.

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

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

Обычно мы указываем удаленный IP-адрес для сканирования Nmap. Вместо этого мы можем сканировать нашу собственную систему, указав localhost в команде.

sudo nmap localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2021-05-22 21:11 +04 Nmap scan report for localhost (127.0.0.1) Host is up (0.0000060s latency). Other addresses for localhost (not scanned): ::1 Not shown: 996 closed ports PORT STATE SERVICE 22/tcp open ssh 3306/tcp open mysql 80/tcp open http 443/tcp open https Nmap done: 1 IP address (1 host up) scanned in 0.14 seconds

В этом руководстве я привел примеры о том, как в Linux/Ubuntu посмотреть открытые порты в системе при помощи двух команд: ss и nmap .

  • Тест скорости дисков в Linux
  • Как запустить команду в фоне в Linux
  • Ошибка несоответствие размеров GPT PMBR
  • nginx: [warn] protocol options redefined
  • Как включить поддержку linux в windows 11

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Открытые порты Ubuntu

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

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

Что такое порты и зачем они нужны?

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

Но как указать программу, к которой нужно обратиться? Для решения этой проблемы оба протокола UDP и TCP поддерживают систему портов. Порт — это целое число от 1024 до 65535. Все номера до 1024 зарезервированы и используются только определёнными службами, например, 22 — ssh, http — 80, FTP — 21 и так далее.

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

Открытые порты Ubuntu

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

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

netstat

Это одна из самых старых и популярных утилит для просмотра открытых портов. Мы описывали её в отдельной статье, а сейчас просто кратко рассмотрим, как с ней работать. Чтобы посмотреть открытые порты, выполните такую команду:

netstat -ntlp | grep LISTEN

Опция -l сообщает, что нужно посмотреть прослушиваемые порты, -p показывает имя программы, -t и -u — отображают TCP и UDP порты, а -n показывает ip адреса в числовом виде. Дальше нужно выбрать только те строки, где встречается слово LISTEN, чтобы найти только прослушиваемые порты.

Здесь в первом столбце отображается протокол, затем два столбца — это данные, которые нам ничего полезного не говорят, а за ними уже идут локальный и внешний адреса. Если локальный адрес — 127.0.0.1, то это значит, что сервис доступен только на этом компьютере, а значение 0.0.0.0 или :: означает любой адрес, к таким сервисам могут подключаться из сети. В нашем примере это Apache и systemd-resolvd.

lsof

Утилита lsof тоже предназначена для просмотра открытых соединений. Основная ее функция — просмотр открытых файлов, но с её помощью можно посмотреть открытые порты Ubuntu. Используйте такие параметры:

sudo lsof -nP -i | grep LISTEN

Опции -n и -P указывают, что необходимо отображать не только цифровые имена портов и ip-адреса, но и имена доменов и сервисов. Опция -i отображает все сетевые подключения, а с помощью grep мы фильтруем только те, которые находятся в состоянии прослушивания.

Представление информации немного отличается, но в общем и целом мы видим всё ту же информацию. Кроме неё, здесь ещё отображается имя пользователя, от которого запущен процесс. Вы можете не ограничиваться фильтрами и посмотреть все доступные соединения:

ss

Команда ss — это улучшенная версия netstat. Точно так, как для замены ifconfig была придумана утилита ip, ss разработали для замены netstat. Команда будет выглядеть следующим образом:

Все данные здесь выводятся почти так же, как и в netstat, поэтому вы легко во всём разберётесь. В дополнение к выше перечисленным командам: возможно, вам нужно будет посмотреть на правила брандмауэра iptables, чтобы понять, какие порты закрыты с его помощью:

В нашем примере нет никаких ограничений. Политика по умолчанию — ACCEPT. На промышленных серверах может применяться политика DENY, а нужные порты будут разрешены с помощью правил.

nmap

Сетевой сканер nmap позволяет проверить список портов Ubuntu так, как бы это делал злоумышленник при попытке атаки на вашу систему. Здесь вы будете видеть все порты, которые видны снаружи. Но для сканирования нужно использовать внешний ip-адрес. Не сетевой ip-адрес провайдера, а адрес вашего компьютера, например, в локальной сети чаще всего используется 192.168.1.2. Посмотреть ip вашего сетевого интерфейса можно с помощью команды ifconfig:

Чтобы просто просканировать открытые порты Ubuntu, будет достаточно выполнить:

nmap -sT 192.168.1.3

Также можно выполнить комплексное сканирование всех уязвимостей. Важно отметить, что команда не находит все уязвимости, а проверяет только самые простые. Для активации этого режима используется опция -A:

sudo nmap -A 192.168.1.3

Как пользоваться nmap, читайте в отдельной статье.

Выводы

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *