Разрешение только необходимых портов (SSH, HTTP, HTTPS)
Дата публикации: 24.04.2026

Разрешение только необходимых портов (SSH, HTTP, HTTPS)

ccb9a536


Разрешение только необходимых портов (SSH, HTTP, HTTPS): Как закрыть все лазейки для хакеров

Вы когда-нибудь оставляли дверь в квартиру приоткрытой, потому что "а вдруг придут гости"? А теперь представьте, что ваш сервер — это такая же квартира, только вместо гостей к вам могут заглянуть злоумышленники, которые украдут данные, установят вирусы или используют ваш сервер для атаки на другие сайты.

Сегодня вы научитесь:Почему открытые порты — это как незапертые двери и окна в вашем сервере. ✅ Какие порты действительно нужны веб-мастеру и арбитражнику (спойлер: их всего три). ✅ Как закрыть все ненужные порты с помощью firewall (межсетевого экрана) — простыми командами. ✅ Как проверить, что вы ничего не упустили и сервер теперь как крепость.


Почему закрытие портов — это ваш первый шаг к безопасности

Представьте, что ваш сервер — это отель с 65 535 комнатами (столько всего существует портов). Каждая комната — это потенциальный вход для хакеров. По умолчанию многие серверы оставляют открытыми десятки портов: для баз данных, администрирования, старых протоколов. 99% из них вам не нужны, но они становятся мишенью для сканирования и атак.

Пример из жизни: В 2021 году хакеры использовали открытый порт RDP (3389) для атаки на тысячи серверов по всему миру. Владельцы даже не подозревали, что этот порт был доступен из интернета.

Ваша задача: Оставить открытыми только те порты, которые необходимы для работы:

  • SSH (22) — для удалённого управления сервером.
  • HTTP (80) — для обычного трафика сайтов.
  • HTTPS (443) — для защищённого трафика.

Всё остальное — закрываем наглухо.


Какие порты можно и нужно закрыть

Вот список наиболее опасных портов, которые часто остаются открытыми по умолчанию:

Порт Протокол/Сервис Почему опасен Нужно ли вам?
21 FTP Передаёт пароли в открытом виде ❌ Нет
22 SSH Нужен для управления сервером ✅ Да
23 Telnet Устаревший, пароли передаются открыто ❌ Нет
25 SMTP (почта) Спам, релейные атаки ❌ Нет*
80 HTTP Обычный веб-трафик ✅ Да
110 POP3 (почта) Уязвимости в старых версиях ❌ Нет
143 IMAP (почта) Атаки перебором паролей ❌ Нет
443 HTTPS Защищённый веб-трафик ✅ Да
3306 MySQL Базы данных — любимая цель хакеров ❌ Нет**
3389 RDP (Windows) Брутфорс-атаки на пароли ❌ Нет

❌ Нет — если вы не администрируете почтовый сервер. ❌ Нет — если база данных находится на том же сервере, её порт должен быть закрыт снаружи, но доступен локально.


Как закрыть ненужные порты: Пошаговая инструкция

Мы будем использовать UFW (Uncomplicated Firewall) — простой межсетевой экран для Linux (установлен по умолчанию в Ubuntu/Debian). Если у вас другой дистрибутив, принципы те же, но команды могут отличаться.

Шаг 1: Проверяем текущие открытые порты

Перед тем как что-то закрывать, нужно понять, что уже открыто.

sudo netstat -tulnp

или (если нет netstat):

sudo ss -tulnp

Что вы увидите:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      5678/nginx
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      5678/nginx
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      9101/mysqld

В этом примере открыты SSH (22), HTTP (80), HTTPS (443) и MySQL (3306). Последний нам нужно закрыть.


Шаг 2: Устанавливаем и включаем UFW

Если UFW не установлен:

sudo apt update && sudo apt install ufw -y

Включаем firewall:

sudo ufw enable

(Отвечаем y, если спросят.)


Шаг 3: Закрываем ВСЁ по умолчанию

Сначала блокируем все входящие соединения, а потом будем открывать только нужные порты.

sudo ufw default deny incoming
sudo ufw default allow outgoing

Что это значит:

  • deny incomingзапретить все входящие соединения (никто не сможет подключиться к вашему серверу, пока вы не разрешите).
  • allow outgoingразрешить исходящие соединения (ваш сервер сможет сам подключаться к интернету, например, для обновлений).

Шаг 4: Открываем только необходимые порты

Теперь добавляем правила для SSH, HTTP, HTTPS:

sudo ufw allow 22/tcp   # SSH
sudo ufw allow 80/tcp   # HTTP
sudo ufw allow 443/tcp  # HTTPS

Важно! Если вы используете нестандартный порт для SSH (например, 2222), замените 22 на ваш порт.


Шаг 5: Проверяем правила

Убедитесь, что всё настроено правильно:

sudo ufw status verbose

Пример правильного вывода:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)

Если здесь есть лишние порты (например, 3306), удалите их:

sudo ufw deny 3306/tcp

Шаг 6: Тестируем подключение

1. Проверяем SSH:

ssh ваш_пользователь@ваш_сервер -p 22

Если подключение прошло — отлично. Если нет, проверьте, не заблокировали ли вы случайно SSH.

2. Проверяем веб-сервер: Откройте в браузере:

http://ваш_сервер
https://ваш_сервер

Если сайты открываются — всё работает.

3. Проверяем закрытые порты: Попробуйте подключиться к закрытому порту (например, 3306 для MySQL) с другого компьютера:

telnet ваш_сервер 3306

Если соединение не устанавливается — порт успешно закрыт.


Дополнительные меры безопасности

1. Смена порта SSH (по желанию)

Хакеры постоянно сканируют порт 22. Если вы измените его на нестандартный (например, 2222), это уменьшит количество атак.

Как изменить:

  1. Редактируем конфиг SSH:
    sudo nano /etc/ssh/sshd_config
  2. Меняем строку Port 22 на Port 2222.
  3. Сохраняем (Ctrl+O, Enter, Ctrl+X).
  4. Перезапускаем SSH:
    sudo systemctl restart sshd
  5. Обновляем правило в UFW:
    sudo ufw deny 22/tcp
    sudo ufw allow 2222/tcp

Внимание! Перед выходом из SSH убедитесь, что новый порт работает:

ssh ваш_пользователь@ваш_сервер -p 2222

2. Ограничение доступа по IP (для SSH)

Если у вас статический IP, можно разрешить подключение по SSH только с вашего адреса.

Как узнать свой IP:

curl ifconfig.me

Добавляем правило:

sudo ufw allow from ваш_IP to any port 22

или (если сменили порт):

sudo ufw allow from ваш_IP to any port 2222

Удаляем старое правило (если оно было):

sudo ufw delete allow 22/tcp

3. Запрет ping (необязательно)

Ответы на ICMP-запросы (ping) могут использоваться для сканирования сети. Можно их отключить:

sudo nano /etc/ufw/before.rules

Добавляем в начало файла:

# Отключить ping
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

Перезагружаем UFW:

sudo ufw disable && sudo ufw enable

Чек-лист: Что должно быть сделано

Перед завершением урока проверьте:

UFW включён (sudo ufw status). ✅ Открыты только порты 22, 80, 443 (или ваши кастомные). ✅ SSH работает (вы можете подключиться). ✅ Сайты открываются по HTTP и HTTPS. ✅ Закрытые порты недоступны (проверено через telnet или nmap).


Практика для закрепления

Упражнение 1: Анализ открытых портов

Вы подключились к новому серверу и выполнили команду:

sudo ss -tulnp

Вывод:

tcp   0   0 0.0.0.0:22    0.0.0.0:*   LISTEN  1234/sshd
tcp   0   0 0.0.0.0:80    0.0.0.0:*   LISTEN  5678/nginx
tcp   0   0 0.0.0.0:443   0.0.0.0:*   LISTEN  5678/nginx
tcp   0   0 0.0.0.0:3306  0.0.0.0:*   LISTEN  9101/mysqld
tcp   0   0 0.0.0.0:25    0.0.0.0:*   LISTEN  2222/exim4

Вопрос: Какие порты нужно закрыть и почему?


Упражнение 2: Настройка UFW

Напишите последовательность команд для:

  1. Включения UFW.
  2. Закрытия всех входящих соединений по умолчанию.
  3. Разрешения портов 22, 80, 443.
  4. Запрета порта 3306.

Упражнение 3: Проверка безопасности

Вы изменили порт SSH на 2222 и разрешили доступ только со своего IP 123.123.123.123. Какие правила должны быть в sudo ufw status? Напишите ожидаемый вывод.


Упражнение 4: Диагностика проблем

После настройки UFW вы не можете подключиться по SSH. Какие возможные причины? (Назовите хотя бы 3.)


Упражнение 5: Дополнительная защита

Объясните, почему ограничение доступа по IP для SSH увеличивает безопасность. Какие минусы у этого подхода?


Ответы на упражнения

🔍 Показать ответы ### **Упражнение 1** Нужно закрыть: - **3306 (MySQL)** — база данных не должна быть доступна из интернета. - **25 (SMTP)** — если вы не администрируете почтовый сервер. ### **Упражнение 2** ```bash sudo ufw enable sudo ufw default deny incoming sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw deny 3306/tcp ``` ### **Упражнение 3** ``` 2222/tcp ALLOW 123.123.123.123 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere ``` ### **Упражнение 4** Возможные причины: 1. Неправильно указан порт в правиле UFW. 2. SSH-сервис не перезапущен после смены порта. 3. Правило UFW для нового порта не добавлено. 4. Брандмауэр облачного провайдера (AWS, DigitalOcean) блокирует порт. ### **Упражнение 5** **Плюсы:** - Хакеры не смогут подобрать пароль, если не знают IP. - Уменьшается количество атак перебором. **Минусы:** - Если у вас **динамический IP**, доступ пропадёт при его изменении. - Нужно обновлять правила при смене IP или добавлении новых адресов.

Итог: Ваш сервер теперь как крепость

Вы закрыли все ненужные "двери" и оставили только те, которые действительно необходимы. Это: ✔ Уменьшает площадь атаки — хакерам просто некуда подключиться. ✔ Повышает производительность — сервер не тратит ресурсы на обработку ненужных запросов. ✔ Упрощает мониторинг — вам проще отслеживать подозрительную активность, когда открыто всего 3 порта.

Следующий шаг: Настройка fail2ban для защиты от брутфорс-атак на SSH (это будет в следующем уроке).


Вопросы? Пишите в комментариях — разберём любые сложности! 🚀


Генератор паролей с длинной 64 символа
Женская одежда с бахромой
Кадастровые работы в Бийске
Как Aptum хостинг помогает малым бизнесам в управлении CRM-системами
Как выбрать планировку сайта для блогов на DreamHost
Как выбрать Vdsina вечный хостинг для своего проекта
Казань окна VEKA - профессионализм и опыт
Курьерская вода
Новостройки Оренбурга: недвижимость с отличной ценой
Онлайн чат-партнерство
Пиломатериалы для возведения бани
Почему VDSina — лучший выбор хостинга
Секреты Вконтакте: тонкости и хитрости
Скидки до 50% на тур в Коста-Рике
Видеочат рулетка бесплатно
рейтинг хостингов 2026 Быстрые VDS серверы