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

от admin

Открытые порты 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 тоже предназначена для просмотра открытых соединений. Основная ее функция — просмотр открытых файлов, но с её помощью можно посмотреть открытые порты Ubuntu. Используйте такие параметры:

sudo lsof -nP -i | grep LISTEN

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

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

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

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

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

Сетевой сканер 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, и я не раз наблюдал в логах попытки перебрать пароль от каких-то роутеров из локальной сети. И если даже вас некому ломать, это могут сделать вирусы. Так что будьте осторожны, и не оставляйте открытые порты, если в этом нет необходимости.

How can I see what ports are open on my machine?

I would like to see what ports are open on my machine, e.g. what ports my machine is listening on. E.g. port 80 if I have installed a web server, and so on.

Is there any command for this?

10 Answers 10

I’ve always used this:

If the netstat command is not available, install it with:

SiLeNCeD's user avatar

nmap (install)

Nmap ("Network Mapper") is a free and open source utility for network exploration or security auditing.

Use nmap 192.168.1.33 for internal PC or nmap external IP address .

More information man nmap .

Zenmap is the official GUI frontend.

Other good ways to find out what ports are listenting and what your firewall rules are:

sudo netstat -tulpn

sudo ufw status

BuZZ-dEE's user avatar

To list open ports use the netstat command.

In the above example three services are bound to the loopback address.

IPv4 services bound to the loopback address «127.0.0.1» are only available on the local machine. The equivalent loopback address for IPv6 is «::1». The IPv4 address «0.0.0.0» means «any IP address», which would mean that other machines could potentially connect to any of the locally configured network interfaces on the specific port.

Читать:
Почему карта нормалей накладывается криво в blender

Открытые порты, три варианта их поиска в Ubuntu 18.04

про поиск открытых портов

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

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

Мы можем идентифицировать сетевые порты по их количеству, связанному IP-адресу и типу протокола связи (TCP или UDP).. В нашей системе Ubuntu мы сможем найти некоторые команды по умолчанию, которые мы можем использовать для просканируем наш компьютер на предмет открытых портов.

Шаги, которые мы увидим дальше, покажут некоторые команды для поиска прослушивающих портов. Чтобы идентифицировать их в Ubuntu, вам просто нужно выполнить один из следующих шагов:

Найдите открытые порты (порты прослушивания) в Ubuntu

Использование команды netstat

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

Если у вас не установлен этот инструмент в Ubuntu, вы сможете получить его, открыв терминал (Ctrl + Alt + T) и используя команду:

Установка завершена, если захотим перечислить порты, доступные на сервере, выполните следующую команду:

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

netstat плюс

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

netstat помощь

  • -p Отображает PID.
  • -l Показывает только прослушивающие порты.
  • -n Он покажет нам числовые адреса вместо разрешения хостов.
  • -u Показать порты UDP.
  • -t Показать TCP-порты.

В случае желания просматривать только определенное имя службы или порт, мы можем использовать команду в терминале NetStat с параметрами, которые мы использовали в предыдущей команде, а также будем использовать GREP.

Использование команды lsof

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

Команда Lsof — еще одна доступная утилита, которую мы сможем запустить в терминале Ubuntu и которая это позволит нам видеть сетевую информацию. Чтобы перечислить все TCP-порты, которые прослушивают, нам нужно будет использовать только команду lsof со следующими параметрами:

команда lsof listen

Использование команды ss

По умолчанию netstat не установлен в Ubuntu, но мы можем найти команду доступной ss который устанавливается вместо netstat. Как и в случае с netstat, команда ss используется для отображения сетевой информации в системах Gnu / Linux. Оба имеют почти одинаковые параметры команд, поэтому для проверки портов прослушивания все, что вам нужно сделать, это открыть терминал (Ctrl + Alt + T) и написать в нем:

Результат предыдущей команды, как и ранее с командой netstat, должен показать нам нечто похожее на следующий снимок экрана:

команда ss plnut

Если вы посвятили себя управлению сервером или являетесь веб-мастером и хотите убедиться, что на вашем сервере Ubuntu открыты только необходимые порты, шаги, которые мы только что рассмотрели, могут быть полезны при поиске портов прослушивания, которые не используются и могут представлять опасность.

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Убунлог » Ubuntu » Открытые порты, три варианта их поиска в Ubuntu 18.04

How to check for open ports on your Ubuntu server

This guide explains different methods to check for open ports on your Webdock server. An open port is a port on which some process or application is running and it can accept data. In this guide we will use different tools to find out which ports are open.

An open port is defined as a port which has a service listening and accepting connections. You may find that you have services listening on ports which despite this are not accessible from the internet. This is what your firewall does: Block access to ports which you haven't explicitly allowed access to. For a guide on managing your firewall, take a look at our UFW guide here.

Prerequisites

  • Webdock cloud Ubuntu instance (18.04 or later)
  • You have shell access to your VPS

The difference between addresses

It matters whether a service is listening to a port on 127.0.0.1 (localhost) or if it is listening on 0.0.0.0 — typically what this means is that a service listening on localhost is only accessible from the host machine itself and not the wider internet. If you see a service listening on all interfaces (*) or 0.0.0.0 then the service is accessible from the internet — unless actively firewalled, which you will need to check for in Iptables or by running "ufw status" if you use UFW to manage your firewall.

Check for open ports using nmap

Network mapper or nmap is an open source tool used to scan networks and find open ports on a host. The following command will scan all the ports on the host.

In order to check a specific port whether it is open or not, use the -p option to specify the port.

Be careful using nmap as if you accidentally start scanning the entire network, you risk that your IP address will be banned.

Check for open ports using lsof

The lsof (list open files) command, as name suggests, is used to list all the open files in linux. These files may be network sockets, disk files or devices opened by different processes. Use the lsof command along with the -nP options to list all open sockets.

List only the TCP open sockets.

For UDP open sockets, use the following command.

Check for open ports using netstat

The netstat (network statistic) command can be used to monitor and scan networks. Get a list of all tcp and udp open ports using the netstat command.

List TCP ports only.

For UDP ports only.

Check open ports using ss

The ss command is used to list detailed information of the network sockets. It provides more detailed information than the netstat command. List all the listening ports on a linux system.

To list only TCP listening ports, use the -lt flag.

For UDP listening ports, use the -lu flag.

Conclusion

There are different tools available to monitor open ports on your server. In this guide we discussed how we can check for open ports on Webdock server using different command line tools like nmap, ss, netstat and lsof.

Похожие статьи