В статье разберём:
- как проверить, установлен ли фаервол;
- как включить UFW в Ubuntu/Debian и открыть нужные порты;
- как работать с firewalld на CentOS/RHEL;
- как проверить активные правила и статус;
- типичные ошибки и как их исправить.
Что понадобится
-
Ubuntu/Debian (пример в статье) или CentOS/RHEL (альтернативные команды).
-
Доступ по SSH (root или sudo).
-
Уже настроенный новый SSH-порт (если вы его меняли).

Проверяем и устанавливаем UFW (Ubuntu/Debian)
UFW (Uncomplicated Firewall) — это удобная оболочка для iptables
. В большинстве образов Ubuntu он уже предустановлен, но может быть выключен.
Проверка наличия и статуса
sudo ufw status verbose
Если вывод похож на:
Status: inactive
— значит, UFW есть, но он пока выключен.
Установка (если не установлен)
sudo apt update
sudo apt install -y ufw
Важно: перед включением UFW убедитесь, что порт SSH открыт. Иначе вы потеряете доступ к серверу.

Разрешаем SSH и включаем UFW (чтобы не потерять доступ)
Перед включением фаервола обязательно разрешите SSH. Если меняли стандартный порт (22 → например, 22222), откройте оба порта, а после проверки — старый можно удалить.
1) Разрешаем подключение по SSH
# Если SSH на стандартном порту 22
sudo ufw allow OpenSSH
# Либо явно портом
sudo ufw allow 22/tcp
# Если у вас нестандартный порт, например 22222:
sudo ufw allow 22222/tcp
2) Включаем UFW
sudo ufw enable
UFW спросит подтверждение. Нажмите y и Enter. Сразу после этого проверьте статус:
sudo ufw status verbose

Частые ситуации
-
Ошибка «Could not load logging rules» при enable — обычно лечится перезапуском UFW:
sudo ufw disable sudo ufw --force enable
-
Подключение пропало после enable. Если вы в другой сессии всё ещё в системе — срочно откройте нужный порт:
sudo ufw allow 22/tcp sudo ufw status
На крайний случай используйте веб-консоль (VNC/Web Console) в панели хостинга и поправьте правила.
Открываем нужные порты и настраиваем правила
После включения UFW можно добавлять правила для сервисов (HTTP, HTTPS, базы данных и т.д.). Открывайте только те порты, которые реально нужны для работы приложений.
Примеры правил
# HTTP и HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# FTP
sudo ufw allow 21/tcp
# MySQL (доступ только локально)
sudo ufw allow from 127.0.0.1 to any port 3306
# PostgreSQL (пример для доступа с определённого IP)
sudo ufw allow from 203.0.113.15 to any port 5432 proto tcp
Блокировка и удаление правил:
# Удалить разрешение порта 21
sudo ufw delete allow 21/tcp
# Запретить весь входящий трафик к порту 3306
sudo ufw deny 3306/tcp
Проверка состояния
sudo ufw status numbered
Флаг numbered
показывает список правил с номерами, что удобно для удаления:
sudo ufw delete 3

Использование firewalld (CentOS, Rocky, AlmaLinux)
В системах на базе RHEL (CentOS Stream, Rocky, AlmaLinux) стандартным фаерволом является firewalld
. Он работает через зоны и службы.
Проверка и установка
# Проверяем, установлен ли firewalld
rpm -q firewalld
# Устанавливаем при необходимости
sudo dnf install -y firewalld
# Включаем и запускаем
sudo systemctl enable --now firewalld
# Проверяем статус
sudo systemctl status firewalld
Базовые команды
# Список активных правил
sudo firewall-cmd --list-all
# Разрешить HTTP и HTTPS
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# Разрешить SSH на порту 22
sudo firewall-cmd --permanent --add-service=ssh
# Если SSH на нестандартном порту (например, 22222)
sudo firewall-cmd --permanent --add-port=22222/tcp
# Применить изменения
sudo firewall-cmd --reload
Удаление правил
# Удалить доступ к порту
sudo firewall-cmd --permanent --remove-port=22222/tcp
sudo firewall-cmd --reload
Типичные ошибки
-
«FirewallD is not running» — служба не запущена.
sudo systemctl start firewalld sudo systemctl enable firewalld
-
Изменения не применились — забыли
--permanent
или--reload
. -
Потеряли доступ по SSH — используйте консоль в панели хостинга и добавьте правило:
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
Итоги
Проверили наличие и статус UFW в Ubuntu/Debian, при необходимости установили.
Безопасно включили UFW: заранее открыли SSH (включая нестандартный порт), активировали и проверили правила.
Открыли необходимые сервисы (HTTP/HTTPS, БД с ограничением по IP), научились удалять и запрещать правила.
Для CentOS/RHEL разобрали базовые команды
firewalld
: добавление сервисов/портов,--permanent
,--reload
, типичные ошибки.
Что дальше: настройте ограничения по IP для административных портов, включите логирование и периодически проверяйте активные правила, чтобы не держать лишние открытые порты.