Перейти к содержимому

Ubuntu как посмотреть открытые порты

  • автор:

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

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

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

Первые 1024 порта (номера портов от 0 до 1023) называются общеизвестными или системными и зарезервированы для часто используемых служб. К ним относятся SSH (порт 22), HTTP (порт 80), HTTPS (порт 443) и тому подобное.

Номера портов выше 1024 называются эфемерными портами.

  • Порты с номерами от 1024 до 49151 называются зарегистрированными/пользовательскими.
  • Номера портов с 49152 по 65535 называются динамическими/частными портами.

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

Требования

Для выполнения туториала нужно уметь пользоваться терминалом.

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

Прежде чем открыть порт в Linux, нужно проверить список всех открытых портов и выбрать эфемерный порт, которого нет в этом списке.

С помощью команды netstat можно получить список всех открытых портов, включая TCP и UDP — это распространенные протоколы для передачи пакетов на сетевом уровне.

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

  • все прослушиваемые сокеты (-l)
  • номер порта (-n)
  • TCP-порты (-t)
  • UDP-порты (-u)

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp6 0 0 ::1:5432 . * LISTEN tcp6 0 0 ::1:6379 . * LISTEN tcp6 0 0 . 22 . * LISTEN udp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN

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

Убедитесь, что команда ss выводит согласованные выходные данные:

Получим следующий вывод:

Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:* tcp LISTEN 0 128 127.0.0.1:5432 0.0.0.0:* tcp LISTEN 0 128 127.0.0.1:27017 0.0.0.0:* tcp LISTEN 0 128 127.0.0.1:6379 0.0.0.0:* tcp LISTEN 0 128 127.0.0.53%lo:53 0.0.0.0:* tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* tcp LISTEN 0 128 [::1]:5432 0.0.0.0:* tcp LISTEN 0 128 [::1]:6379 0.0.0.0:* tcp LISTEN 0 128 [::]:22 0.0.0.0:*

Эта команда выводит практически те же открытые порты, что и netstat.

Открытие порта для TCP-соединений

Теперь откроем закрытый порт и настроим его на прослушивание TCP-соединений.

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

С помощью команды netstat убедитесь, что порт 4000 не используется:

netstat -na | grep :4000

То же самое можно сделать с помощью команды ss:

ss -na | grep :4000

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

Ubuntu и системы на базе ufw

ufw — клиент командной строки для брандмауэра UncomplicatedFirewall.

Команда будет выглядеть следующим образом:

sudo ufw allow 4000

CentOS и системы на базе firewalld

firewall-cmd — клиент командной строки для брандмауэра firewalld.

Команды будут выглядеть так:

Для других дистрибутивов Linux

Изменить системные правила фильтрации пакетов IPv4 можно с помощью iptables.

iptables -A INPUT -p tcp —dport 4000 -j ACCEPT

Тестирование порта

После успешного открытия TCP-порта нужно его протестировать.

При отправке вывода ls любому подключенному клиенту, сначала запустите netcat (nc) и прослушивайте (-l) порт (-p) 4000:

ls | nc -l -p 4000

Теперь клиент получит вывод ls после того, как он откроет TCP-соединение на порту 4000. Пока оставьте этот сеанс.

Откройте другой терминал на той же машине.

Поскольку мы открыли TCP-порт, мы можем протестировать TCP-подключения с помощью telnet. Если у вас этой команды нет, установите ее с помощью менеджера пакетов.

Введите IP вашего сервера и номер порта (в данном случае 4000) и выполните следующую команду:

telnet localhost 4000

Эта команда пытается открыть TCP-соединение на локальном хосте через порт 4000.

Получим следующий вывод, в котором указано, что соединение с программой установлено (nc):

Trying ::1. Trying 127.0.0.1. Connected to localhost. Escape character is '^]'. while.sh

Вывод ls (в данном примере while.sh) отправлен клиенту, что указывает на успешное TCP-соединение.

С помощью nmap проверьте, открыт ли порт (-p):

nmap localhost -p 4000

Эта команда проверит открытый порт:

Starting Nmap 7.60 ( https://nmap.org ) at 2020-01-18 21:51 UTC Nmap scan report for localhost (127.0.0.1) Host is up (0.00010s latency). Other addresses for localhost (not scanned): ::1 PORT STATE SERVICE 4000/tcp open remoteanything Nmap done: 1 IP address (1 host up) scanned in 0.25 seconds

Как видите, вы успешно открыли новый порт в Linux.

Примечание: nmap выводит список только открытых портов, на которых в данный момент есть прослушивающее приложение. Если вы не используете приложение для прослушивания (например netcat), то порт 4000 будет отображаться как закрытый, поскольку в настоящее время на этом порту нет ни одного прослушивающего приложения. Аналогично не будет работать и telnet, поскольку этой команде также нужно прослушивающее приложение. Именно по этой причине nc такой полезный инструмент. Он имитирует такие среды с помощью простой команды.

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

Сохранение правил брандмауэра

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

Для брандмауэра ufw

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

Для firewalld

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

Для iptables

Чтобы сохранить правила конфигурации, рекомендуется использовать iptables-persistent.

Подводим итоги

В этом туториале мы разобрали, как открыть новый порт в Linux и настроить его для входящих соединений, а также поработали с netstat, ss, telnet, nc и nmap.

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

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

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

  1. Как отключить Firewall в Linux
  2. Firewall — Как открыть порт в Linux
  3. Firewall — Как найти и закрыть порт в Linux

Проверять открыт ли у нас порт на Firewall мы будем с помощью административного инструмента firewall-cmd.

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

linux firewall check open port

В результате выполнения команды поле ports у нас пустое, а значит что в данный момент никаких портов на Firewall открытых нет.

linux firewall check open port

Эта команда выводит полный список открытых портов, но так как у нас сейчас открытых портов нет то и команда вернет пустой результат.

Давайте откроем пару портов для примера. Команда добавления портов на Firewall:

$. firewall-cmd —zone=public —add-port=1521/tcp —permanent

$. firewall-cmd —zone=public —add-port=3306/tcp —permanent

$. firewall-cmd —zone=public —add-port=5432/tcp —permanent

$. firewall-cmd —zone=public —add-port=80/tcp —permanent

$. firewall-cmd —zone=public —add-port=443/tcp —permanent

$. sudo firewall-cmd —reload

linux firewall check open port

После того как мы добавили порты то теперь давайте убедимся что они успешно записались в правила Firewall.

linux firewall check open port

Теперь у нас в поле ports появились те порты которые мы добавляли.

linux firewall check open port

И здесь у нас появился список портов которые мы добавили.

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

$. firewall-cmd —list-ports | grep 3306

linux firewall check open port

Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.

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

Дорогие друзья, сегодня мы с вами обсудим два вопроса: как открыть порт в Ubuntu и посмотреть список уже запущенных. Таким образом можно будет контролировать процессы на своём компьютере. То есть, например, если не получается открыть какую-то утилиту из-за занятости одного из портов, такое дело можно будет исправить. Для начала давайте узнаем, как посмотреть открытые порты? После этого уже рассмотрим вторую часть сегодняшней темы об открытии портов Убунту.

Как управлять приложениями в Ubuntu

Управление портами на ПК необходимо для полноценной работы приложений.

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

Если с запуском портов уже более или менее в голове что-нибудь прояснилось, то давайте разберём, что же делать, чтобы посмотреть открытые порты? Итак, этот метод предусматривает наличие установленной утилиты netstat на вашем компьютере под управлением операционной системы Linux. Если этой программы на вашем устройстве нет, то обязательно установите его уже знакомыми средствами. После, достаточно будет ввести следующую команду в консоль: netstat -ltupn. Таким образом откроется окно с портами, адресами IP, а также именами процессов, которые являются владельцами соединений. Способ достаточно простой и не требует каких-либо усилий с вашей стороны, кроме использования утилиты netstat.

netstat

Как открыть порт в Убунту

Теперь рассмотрим нашу вторую часть сегодняшнего обсуждения. Прежде всего вам потребуется запустить консоль для ввода команд и скриптов. Далее, пробуем следующие две комбинации, которые позволят вам открыть определённый порт. Стоит отметить, что все выполняемые действия производятся на ваш страх и риск, так как они предназначены для опытных пользователей. Любые неверные шаги или же неблагополучные манипуляции могут привести вас к неприятным последствиям. Например, есть вероятность потерять важные файлы и данные или же поломать что-нибудь в строе системы. Приступайте к следующим действиям только при полной уверенности своих сил и возможностей.

Способ первый

Ниже рассматриваются примеры для порта 7777:

Правило для консоли

  1. Итак, добавляем в нашу консоль правило: iptables -t filter -A INPUT -i eth0 -p tcp —dport 7777 -j ACCEPT.
  2. Если так не получилось, то стоит проверить настройки конфигурации файрволла, только потом ввести следующее значение: iptables -L. После этого для открытия нужного порта используете консольную команду: iptables -A INPUT -p tcp —dport 777 -j ACCEPT.
  3. Если же и эта команда вам не помогла, то воспользуйтесь следующей: sudo iptables -A INPUT -p tcp —dport 7777-j ACCEPT.

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

Способ второй

  1. Для начала стоит проверить наличие iptables в вашей ОС. Для этого делаем следующую команду в консоли: iptables -list. После этого вы получите необходимые вами данные.
  2. Наиболее приемлемым вариантом будет закрытие всех портов, необходимых операционке. Далее, устанавливая правила, откройте порты Linux для игры, трансфера документов и веб-сёрфинга. Чтобы сделать это, убедитесь в наличие iptables. После этого создайте файл /etc/iptables.sh с суперпользовательскими правами. Содержание файла будет следующее:

#!/bin/bash
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# закрываем все соединения
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# разрешаем трафик loopback, нужен обязательно
iptables -A INPUT -p all -m state —state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p all -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT

# разрешаем инициированные программами, системой и их дочерние соединения.
iptables -A INPUT -m state —state INVALID -j DROP
iptables -A FORWARD -m state —state INVALID -j DROP

#отбрасываем все пакеты без статуса.

## далее команды чтобы открыть порт Linux:

iptables -A INPUT -i eth0 -p tcp —dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p udp —dport 80 -j ACCEPT

# открываем порты для посещения сайтов

iptables -A INPUT -i eth0 -p tcp —dport «номер нужного входящего порта» -j ACCEPT
iptables -A OUTPUT -i eth0 -p tcp —dport «номер нужного исходящего порта» -j ACCEPT

# добавляем ещё, которые нам нужны, в список открытых портов Linux

Скрипт для открытия

Этот скрипт подходит для всех дистрибутивов Linux, в том числе и Ubuntu. Поэтому можно не волноваться по поводу несовместимости кодов и их работы в операционной системе. Но вдруг если ни один из этих методов вам не помог, потребуется дополнительная диагностика. Например, вы можете посмотреть, не занят ли случайно необходимый порт другим приложением. Если ответ будет положительным, то понадобится закрыть все утилиты, связанные с ним. Только потом можно будет повторить свои попытки со скриптами и кодами.

Подведём итоги

Дорогие друзья, теперь вы знаете, как посмотреть открытые порты Ubuntu, а также как открыть порт. Вы знаете, что можно воспользоваться для последнего случая двумя способами, каждый из которых в своём роде выполняет свою работу. А первый вопрос легко решается с помощью утилиты netstat и не требует особой трудоёмкости. Надеемся, что у вас всё получилось сделать с первого раза. Поделитесь своим мнением, впечатлением, а также личным опытом в комментариях!

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

linux-logo

Сегодня выясним как в 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 .

Если есть вопросы, то пишем в комментариях в Телеграмм и ВК.

Ссылки в шапке страницы.
Заранее всем спасибо.

RSS

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

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

linux-logo

Сегодня в статье настроим и русифицируем Ubuntu Server 16.04/18.04/20.04. Чтобы поддерживался русский язык, и перевод системы стал русским

dns_bind9

Начиная с сентября 2017 года удостоверяющим центрам предписано обязательно проверять CAA-записи в DNS перед генерацией сертификата

linux-logo

В этой статье рассмотрим пример обновления Ubuntu Server 16.04 до Ubuntu Server 18.04 Все наши действия нам придется выполнять из Читать

В связи с последними блокировками IP-адресов Роскомнадзором, встала необходимость завести свой собственный VPN сервер. Если VPN у вас ещё не Читать

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

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