Поиск и управление портами в операционной системе 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): могут использоваться для временных или специфичных для приложения соединений.
Открытые порты: могут принимать входящие соединения.
Закрытые порты: либо не используются, либо заблокированы файрволом или другим средством безопасности.
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'
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:*
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
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
Если в вашей системе используется файрвол, например ufw
или iptables
, можно получить список открытых портов через эти утилиты.
Для отображения состояния файрвола и открытых портов в ufw
, выполните:
sudo ufw status
Для получения списка правил и открытых портов в iptables
, используйте:
sudo iptables -L
Знание того, как просматривать и управлять портами в Linux, является важным навыком для системных администраторов и сетевых инженеров. Используя команды netstat
, ss
, lsof
, nmap
, а также управление через файрволы, вы можете легко отслеживать и регулировать сетевую активность системы. Эти методы помогут поддерживать безопасность и стабильность работы серверов и приложений.
Установка различных инструментов для поиска и управления портами в Linux может отличаться в зависимости от дистрибутива системы. Ниже приведены способы установки основных утилит для работы с портами на популярных дистрибутивах Linux, таких как Ubuntu/Debian, CentOS/RHEL, и других.
netstat
netstat
является частью пакета net-tools, который устарел, но всё ещё используется. Он может не быть предустановленным в новых версиях некоторых дистрибутивов Linux, например, в Ubuntu.
sudo apt update
sudo apt install net-tools
sudo yum install net-tools
После установки команда netstat
станет доступной.
ss
ss
входит в состав пакета iproute2, который обычно предустановлен в большинстве современных дистрибутивов Linux. Однако, если он отсутствует, его можно установить.
sudo apt update
sudo apt install iproute2
sudo yum install iproute
После установки ss
можно использовать без дополнительных действий.
lsof
Утилита lsof
обычно также предустановлена на большинстве дистрибутивов Linux. Если это не так, её можно легко установить.
sudo apt update
sudo apt install lsof
sudo yum install lsof
После установки lsof
можно использовать для мониторинга портов и других открытых файлов.
nmap
nmap
— это отдельный инструмент, который нужно установить вручную, если он не предустановлен в системе.
sudo apt update
sudo apt install nmap
sudo yum install nmap
После установки можно использовать nmap
для сканирования портов.
ufw
(Uncomplicated Firewall)ufw
— это удобный интерфейс для управления правилами файрвола, часто используется на Ubuntu.
На большинстве версий Ubuntu ufw
уже установлен, но если его нет, установите:
sudo apt update
sudo apt install ufw
На 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
iptables
iptables
— это низкоуровневый инструмент для управления сетевыми правилами. Обычно предустановлен на большинстве систем, но если отсутствует, его можно установить.
sudo apt update
sudo apt install iptables
sudo yum install iptables
Для проверки открытых портов и установленных правил:
sudo iptables -L
Установка утилит для управления портами в Linux является достаточно простой задачей, которая сводится к использованию стандартных пакетных менеджеров, таких как apt
на Ubuntu/Debian и yum
на CentOS/RHEL. Все перечисленные утилиты являются важными инструментами для системных администраторов и могут быть установлены за несколько команд.
Спасибо за внимание к материалу! Надеюсь, информация оказалась полезной для вас! Поздравляю с новым достижением!
Если материал оказался полезным и вы хотите поддержать мою работу, буду рад вашему донату. Любая помощь вдохновляет на создание нового контента! Спасибо за вашу поддержку!
ПОЛЕЗНЫЕ ССЫЛКИ