Открытые порты сервера: как проверить и почему это важно для безопасности
Сетевые проверку портов — это виртуальные точки входа, через которые приложения на сервере принимают сетевые соединения. Каждый открытый порт — это потенциальная точка атаки. Понимание того, какие порты открыты на вашем сервере и зачем, — фундамент сетевой безопасности.
Как работают сетевые порты
IP геолокацию идентифицирует сервер в сети, а порт — конкретное приложение на этом сервере. Вместе они образуют сокет (socket), например 93.184.216.34:443. Всего существует 65 535 портов, разделённых на три диапазона:
| Диапазон | Название | Описание |
|---|---|---|
| 0–1023 | Well-known ports | Зарезервированы для стандартных сервисов (HTTP, SSL/TLS проверку, SSH, FTP) |
| 1024–49151 | Registered ports | Зарегистрированы за конкретными приложениями (MySQL, PostgreSQL, Redis) |
| 49152–65535 | Dynamic ports | Используются для временных соединений |
Популярные порты и сервисы
| Порт | Протокол | Сервис | Нужен публично? |
|---|---|---|---|
| 22 | TCP | SSH | Только с ограничением по IP |
| 25 | TCP | SMTP | Только для почтовых серверов |
| 53 | TCP/UDP | DNS | Только для DNS-серверов |
| 80 | TCP | HTTP | Да (редирект на HTTPS) |
| 443 | TCP | HTTPS | Да |
| 3306 | TCP | MySQL | Нет — только localhost |
| 5432 | TCP | PostgreSQL | Нет — только localhost |
| 6379 | TCP | Redis | Нет — только localhost |
| 8080 | TCP | HTTP альтернативный | Зависит от случая |
| 27017 | TCP | MongoDB | Нет — только localhost |
Почему открытые порты опасны
Расширение поверхности атаки
Каждый открытый порт — это работающий сервис, который может содержать уязвимости. Чем больше открытых портов, тем больше потенциальных точек входа для злоумышленника.
Типичные атаки через порты
- Brute force SSH (порт 22) — автоматический перебор паролей. Тысячи ботов постоянно сканируют интернет на открытый SSH.
- Доступ к БД (порты 3306, 5432, 27017) — незащищённые базы данных, доступные из интернета, — одна из главных причин утечек данных.
- Redis без пароля (порт 6379) — открытый Redis позволяет записать SSH-ключ и получить полный доступ к серверу.
- Exploits уязвимых сервисов — устаревшие версии ПО на открытых портах эксплуатируются автоматизированными инструментами.
Как проверить открытые порты
Изнутри сервера
# Все прослушиваемые порты
ss -tlnp
# или
netstat -tlnp
# Конкретный порт
ss -tlnp | grep :3306
Снаружи (сканирование)
# nmap — сканирование популярных портов
nmap example.com
# Конкретные порты
nmap -p 22,80,443,3306,6379 example.com
# Определение версий сервисов
nmap -sV example.com
Онлайн-инструменты
Для быстрой проверки без установки nmap используйте онлайн-инструменты проверки портов. Enterno.io предоставляет ping-инструмент с возможностью проверки конкретных TCP-портов.
Как защитить открытые порты
1. Firewall (iptables / ufw / firewalld)
Основной инструмент защиты — firewall. Принцип: запретить всё, разрешить только необходимое.
# UFW (Ubuntu)
ufw default deny incoming
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow from 1.2.3.4 to any port 22 # SSH только с вашего IP
ufw enable
2. Привязка к localhost
Сервисы, не требующие внешнего доступа, должны слушать только на 127.0.0.1:
# MySQL: my.cnf
bind-address = 127.0.0.1
# Redis: redis.conf
bind 127.0.0.1
# PostgreSQL: postgresql.conf
listen_addresses = 'localhost'
3. Смена стандартных портов
Смена порта SSH с 22 на нестандартный (например, 2222) не является полноценной защитой, но значительно снижает количество автоматизированных атак.
4. Fail2ban
Fail2ban анализирует логи и блокирует IP-адреса после нескольких неудачных попыток подключения:
# Установка
apt install fail2ban
# Проверка статуса
fail2ban-client status sshd
5. VPN / SSH-туннели
Для административных интерфейсов (панели управления, БД, мониторинг сайтов) используйте VPN или SSH-туннели вместо открытия портов в интернет.
Чек-лист безопасности портов
- Просканируйте свой сервер извне и изнутри
- Закройте все порты, кроме необходимых (80, 443)
- Привяжите БД и кэш к localhost
- Ограничьте SSH по IP или используйте VPN
- Установите fail2ban для SSH
- Настройте мониторинг открытых портов
- Регулярно обновляйте ПО на всех открытых сервисах
Проверьте ваш сайт прямо сейчас
Проверить →