hostprofi.ru
Подобрать хостинг
Термин·буква О

Открытый порт

краткое определение

Открытый порт — TCP или UDP-порт, прослушиваемый запущенным сервисом на сервере. Открытый порт означает, что сервис принимает входящие соединения на данном порту. Порты 0–1023 — привилегированные (well-known), 1024–49151 — зарегистрированные, 49152–65535 — динамические.

Открытый порт — порт, на котором приложение активно ожидает входящих подключений (состояние LISTEN). Это отличается от закрытого порта (хост отвечает RST) и фильтруемого порта (брандмауэр блокирует пакеты без ответа). Утилиты netstat, ss и nmap позволяют просматривать открытые порты.

Как работает

Приложение вызывает системные функции socket() → bind(port) → listen() — и порт переходит в состояние LISTEN. При попытке подключения ядро выполняет TCP three-way handshake (SYN → SYN-ACK → ACK) и передаёт соединение приложению.

Стандартные порты известных сервисов: 22 (SSH), 80 (HTTP), 443 (HTTPS), 3306 (MySQL), 5432 (PostgreSQL), 6379 (Redis), 27017 (MongoDB). Открытый порт 3306 из интернета без авторизации — критическая уязвимость: автоматические сканеры находят базы данных за секунды.

Команды: ss -tlnp — все LISTEN-порты TCP; nmap -sV 127.0.0.1 — локальные открытые порты с версиями сервисов; ufw status — правила файрвола Ubuntu. Проверить с внешней стороны: nmap -p 1-65535 <server-ip>.

История

Порты определены в RFC 793 (TCP, 1981) и RFC 768 (UDP, 1980). IANA ведёт реестр well-known портов с 1992 года. Port scanning как техника описан в середине 1990-х. Nmap выпущен в 1997 году Гордоном Лионом.

На что обращать внимание

Минимизируйте число открытых портов из интернета: каждый — потенциальная точка атаки. Стандартная практика для VPS: открыты только 22 (или нестандартный SSH), 80, 443. Базы данных, Redis и внутренние API — только на localhost или приватной сети. Используйте UFW или iptables для ограничения доступа.

Управление открытыми портами

Проверить изнутри: ss -tlnp (TCP listening). Проверить снаружи: nmap -p 1-65535 IP. Принцип минимума: открыты только порты работающих сервисов. SSH (22), HTTP (80), HTTPS (443) — минимум для веб-сервера.

Безопасность открытых портов

Для SSH: смените порт с 22 на нестандартный, настройте Fail2ban, используйте ключевую авторизацию. Порты баз данных (3306 MySQL, 5432 PostgreSQL) не должны быть открыты в интернет.

Firewall и управление портами

UFW: ufw allow 443/tcp, ufw deny 3306. iptables — низкоуровневый инструмент. nftables — замена iptables в Debian 10+ и Ubuntu 20.10+. CSF Firewall — популярное решение для управляемых серверов.

Ephemeral порты

Клиентские соединения используют случайный ephemeral порт (32768–60999 по умолчанию в Linux). При тысячах одновременных соединений с одного IP (NAT) ephemeral порты заканчиваются. sysctl net.ipv4.ip_local_port_range = "1024 65535" — расширение диапазона. Актуально для прокси-серверов и нагрузочного тестирования.

Проверка портов изнутри и снаружи

Изнутри: ss -tlnp (listening TCP), ss -ulnp (UDP). nmap сканирование с внешнего IP: nmap -sV -O TARGET_IP. Разница: сервис может быть открыт изнутри, но закрыт фаерволом снаружи. Оба теста нужны для полноты картины безопасности.

Другие термины