Порты (ports) в Linux
November 23rd, 2024

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

Оглавление

Основные понятия

Способы поиска портов в Linux

Установка различных инструментов для поиска и управления портами в Linux

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

Основные понятия

Порт

Порт — это точка входа для сетевых соединений. Каждый порт идентифицируется числом от 0 до 65535 и используется для связи с определёнными сервисами или приложениями. Порты делятся на несколько категорий:

  • Well-known ports (0–1023): зарезервированы для известных служб, таких как SSH (22), HTTP (80), HTTPS (443).

  • Registered ports (1024–49151): используются для различных зарегистрированных приложений.

  • Dynamic or private ports (49152–65535): могут использоваться для временных или специфичных для приложения соединений.

Открытые и закрытые порты

  • Открытые порты: могут принимать входящие соединения.

  • Закрытые порты: либо не используются, либо заблокированы файрволом или другим средством безопасности.


Способы поиска портов в Linux

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

Команда netstat — это один из наиболее распространённых способов для отображения всех активных соединений и открытых портов. Она выводит информацию о сетевых соединениях, таблицах маршрутизации, интерфейсах и статистике. Для просмотра всех открытых портов можно использовать следующий синтаксис:

netstat -tuln
  • -t: показывает TCP-соединения.

  • -u: показывает UDP-соединения.

  • -l: показывает только прослушивающие порты.

  • -n: выводит порты в числовом формате (без разрешения имен хостов и сервисов).

Пример вывода:

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
udp        0      0 0.0.0.0:68              0.0.0.0:*                   

и

netstat -an | grep LISTEN | grep -E '\b(26658|26657|6060|26656|26660|1317|9090|9091|26657)\b'             

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

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

Для вывода всех прослушивающих портов:

ss -tuln
#Проверить сразу несколько портов
ss -tuln | grep ':9090\|:8080'

Пример вывода:

Netid State   Recv-Q Send-Q  Local Address:Port    Peer Address:Port Process
tcp   LISTEN  0      128     0.0.0.0:22           0.0.0.0:*         
udp   UNCONN  0      0       0.0.0.0:68           0.0.0.0:*         

3. Использование lsof

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

lsof -i -P -n
  • -i: фильтрация по сетевым соединениям.

  • -P: выводит номера портов без преобразования в имена служб.

  • -n: не разрешает имена хостов (ускоряет вывод).

Пример вывода:

COMMAND  PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd     676  root   3u   IPv4  13742      0t0  TCP *:22 (LISTEN)
dhclient 820  root   6u   IPv4  14642      0t0  UDP *:68

4. Использование nmap

nmap — это мощный инструмент для сканирования сети и проверки открытых портов. Для сканирования всех открытых TCP-портов на локальной машине используйте:

nmap -sT localhost

Если необходимо проверить порты на удалённой машине, укажите её IP-адрес:

nmap -sT 192.168.1.1

Пример вывода:

PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

5. Просмотр статуса портов с помощью файрвола

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

UFW

Для отображения состояния файрвола и открытых портов в ufw, выполните:

sudo ufw status

IPTABLES

Для получения списка правил и открытых портов в iptables, используйте:

sudo iptables -L

Знание того, как просматривать и управлять портами в Linux, является важным навыком для системных администраторов и сетевых инженеров. Используя команды netstat, ss, lsof, nmap, а также управление через файрволы, вы можете легко отслеживать и регулировать сетевую активность системы. Эти методы помогут поддерживать безопасность и стабильность работы серверов и приложений.


Установка различных инструментов для поиска и управления портами в Linux

Установка различных инструментов для поиска и управления портами в Linux может отличаться в зависимости от дистрибутива системы. Ниже приведены способы установки основных утилит для работы с портами на популярных дистрибутивах Linux, таких как Ubuntu/Debian, CentOS/RHEL, и других.

1. Установка netstat

netstat является частью пакета net-tools, который устарел, но всё ещё используется. Он может не быть предустановленным в новых версиях некоторых дистрибутивов Linux, например, в Ubuntu.

Установка на Ubuntu/Debian:

sudo apt update
sudo apt install net-tools

Установка на CentOS/RHEL:

sudo yum install net-tools

После установки команда netstat станет доступной.

2. Установка ss

ss входит в состав пакета iproute2, который обычно предустановлен в большинстве современных дистрибутивов Linux. Однако, если он отсутствует, его можно установить.

Установка на Ubuntu/Debian:

sudo apt update
sudo apt install iproute2

Установка на CentOS/RHEL:

sudo yum install iproute

После установки ss можно использовать без дополнительных действий.

3. Установка lsof

Утилита lsof обычно также предустановлена на большинстве дистрибутивов Linux. Если это не так, её можно легко установить.

Установка на Ubuntu/Debian:

sudo apt update
sudo apt install lsof

Установка на CentOS/RHEL:

sudo yum install lsof

После установки lsof можно использовать для мониторинга портов и других открытых файлов.

4. Установка nmap

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

Установка на Ubuntu/Debian:

sudo apt update
sudo apt install nmap

Установка на CentOS/RHEL:

sudo yum install nmap

После установки можно использовать nmap для сканирования портов.

5. Установка и настройка ufw (Uncomplicated Firewall)

ufw — это удобный интерфейс для управления правилами файрвола, часто используется на Ubuntu.

Установка на Ubuntu/Debian:

На большинстве версий Ubuntu ufw уже установлен, но если его нет, установите:

sudo apt update
sudo apt install ufw

Установка на CentOS/RHEL:

На CentOS ufw не используется по умолчанию, здесь обычно применяются инструменты, такие как firewalld. Однако, при желании можно установить ufw через сторонние репозитории:

sudo yum install epel-release
sudo yum install ufw

После установки можно включить ufw:

sudo ufw enable

И затем управлять портами:

sudo ufw allow 22/tcp    # открыть порт 22 для SSH
sudo ufw deny 80/tcp     # закрыть порт 80 для HTTP

6. Установка и настройка iptables

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

Установка на Ubuntu/Debian:

sudo apt update
sudo apt install iptables

Установка на CentOS/RHEL:

sudo yum install iptables

Для проверки открытых портов и установленных правил:

sudo iptables -L

Установка утилит для управления портами в Linux является достаточно простой задачей, которая сводится к использованию стандартных пакетных менеджеров, таких как apt на Ubuntu/Debian и yum на CentOS/RHEL. Все перечисленные утилиты являются важными инструментами для системных администраторов и могут быть установлены за несколько команд.


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


Спасибо за внимание к материалу! Надеюсь, информация оказалась полезной для вас! Поздравляю с новым достижением!


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


ПОЛЕЗНЫЕ ССЫЛКИ

Subscribe to OdaNoder
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from OdaNoder

Skeleton

Skeleton

Skeleton