Содержание
- Что стоит проверить перед настройкой
- Шаг 1. Проверить, установлен ли UFW
- Шаг 2. Сначала разрешить SSH
- Шаг 3. Разрешить HTTP и HTTPS, если сервер отдаёт сайт
- Шаг 4. Открыть только действительно нужные сервисы
- Шаг 5. Включить UFW
- Шаг 6. Проверить политику по умолчанию
- Шаг 7. Проверить правила и убрать лишнее
- Что важно помнить про Docker и UFW
- Какие правила часто нужны на практике
- Типичные ошибки при настройке UFW
- Вывод
- Что выбрать для стабильной и безопасной работы проекта
UFW — это простой интерфейс для настройки firewall в Ubuntu. Для VPS он особенно полезен: позволяет быстро закрыть лишние порты, оставить только нужный доступ и снизить риск случайно открыть наружу то, что не должно быть доступно извне.
Главная ошибка при настройке UFW — включать его без понимания, какие порты уже нужны проекту. В результате можно заблокировать собственный SSH-доступ или сломать опубликованный сервис. Поэтому настройку лучше делать пошагово и с базовой проверкой на каждом этапе.
Что стоит проверить перед настройкой
Перед включением UFW полезно понять несколько вещей:
- как вы подключаетесь к серверу сейчас;
- на каком порту работает SSH;
- нужны ли проекту HTTP и HTTPS;
- есть ли опубликованные сервисы на нестандартных портах;
- не управляется ли firewall уже через готовую панель или внешнюю инфраструктуру.
Если VPS уже используется в production, лучше заранее составить минимальный список допустимых входящих подключений. Тогда UFW будет не «магической галочкой безопасности», а понятным уровнем сетевой защиты.
Шаг 1. Проверить, установлен ли UFW
На части Ubuntu-серверов UFW уже установлен, но это стоит проверить:
sudo ufw status verbose Если в ответе вы видите, что команда недоступна, сначала установите пакет:
sudo apt update
sudo apt install -y ufw После установки снова проверьте статус. Обычно до первого включения firewall будет находиться в состоянии inactive.
Шаг 2. Сначала разрешить SSH
Это самый важный шаг. Прежде чем включать firewall, нужно открыть доступ по SSH, иначе можно потерять подключение к серверу.
Если сервер использует стандартный SSH-порт 22, достаточно команды:
sudo ufw allow OpenSSH Или так:
sudo ufw allow 22/tcp Если SSH висит на нестандартном порту, откройте именно его, например:
sudo ufw allow 2222/tcp После этого полезно посмотреть текущие правила:
sudo ufw status numbered Шаг 3. Разрешить HTTP и HTTPS, если сервер отдаёт сайт
Если на VPS работает сайт, reverse proxy или панель, обычно нужно открыть 80 и 443 порты:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp Можно использовать и именованные профили:
sudo ufw allow 'Nginx Full' Но с профилями важно понимать, что именно они открывают. Для базовой настройки на VPS явные правила по портам часто понятнее.
Шаг 4. Открыть только действительно нужные сервисы
Если кроме сайта у проекта есть и другие опубликованные сервисы, открывайте только те порты, которые реально нужны извне.
Например:
sudo ufw allow 8080/tcp
sudo ufw allow 8443/tcp Но здесь важно не превращать firewall в набор случайных исключений. Хорошая практика — сначала понять, должен ли сервис вообще быть доступен напрямую, или его лучше держать только за reverse proxy, VPN или внутренней сетью.
Шаг 5. Включить UFW
Когда SSH и нужные сервисы уже разрешены, можно включать firewall:
sudo ufw enable Система предупредит, что команда может нарушить текущие подключения. Если SSH уже разрешён правильно, подтверждайте включение.
После этого снова проверьте статус:
sudo ufw status verbose Нормальный результат — увидеть, что UFW active, а нужные правила перечислены в списке.
Шаг 6. Проверить политику по умолчанию
Для большинства VPS базовая логика должна быть такой:
- входящие подключения по умолчанию запрещены;
- исходящие разрешены.
Проверить и при необходимости выставить это можно так:
sudo ufw default deny incoming
sudo ufw default allow outgoing Такой baseline подходит для большинства типовых серверных сценариев.
Шаг 7. Проверить правила и убрать лишнее
По мере настройки на сервере могут накапливаться старые или дублирующиеся правила. Поэтому полезно посмотреть список в нумерованном виде:
sudo ufw status numbered Если нужно удалить правило:
sudo ufw delete <номер> Например:
sudo ufw delete 3 Чем чище список правил, тем легче потом понимать, что реально открыто на сервере.
Что важно помнить про Docker и UFW
Если на VPS используются Docker-контейнеры, нужно помнить, что публикация портов через Docker может обходить ожидаемое поведение UFW.
Например, если контейнер запускается так:
docker run -d -p 8080:80 nginx сервис может стать доступен извне, даже если оператор ожидает, что всё контролируется только через UFW.
Поэтому связку Docker + firewall нужно проверять отдельно, особенно на production-серверах.
Какие правила часто нужны на практике
Для типового VPS-набора обычно достаточно такого базового профиля:
- SSH — обязательно;
- HTTP/HTTPS — если сервер отдаёт сайт или reverse proxy;
- дополнительные сервисные порты — только если есть ясная причина открывать их наружу.
Всё остальное лучше держать закрытым по умолчанию.
Типичные ошибки при настройке UFW
- Включить firewall до открытия SSH. Это самый быстрый способ потерять доступ к серверу.
- Открывать лишние порты “на всякий случай”. Чем меньше открыто наружу, тем лучше.
- Не перепроверять, что реально слушает сеть. Firewall — не замена пониманию сервисов.
- Забывать про Docker. Контейнеры могут открыть наружу то, что оператор не ожидал.
- Не чистить старые правила. Со временем это превращает firewall в трудно читаемую конфигурацию.
Вывод
UFW на Ubuntu — это удобный базовый инструмент для защиты VPS, если использовать его не формально, а осознанно. Сначала нужно открыть доступ для SSH и нужных сервисов, потом включить firewall, проверить правила и держать открытым только действительно необходимое.
Для большинства проектов этого уже достаточно, чтобы собрать нормальный security baseline и не оставлять сервер лишний раз открытым наружу.
Что выбрать для стабильной и безопасной работы проекта
Безопасность начинается не только с firewall, но и с предсказуемой серверной среды, понятного сетевого контура и доступа к управлению инфраструктурой.
Для большинства типовых проектов под базовый security baseline достаточно VPS. Если проект становится более чувствительным к изоляции ресурсов и требованиям к нагрузке, стоит смотреть в сторону выделенных серверов.
- VPS — для большинства проектов, где нужно быстро настроить базовую защиту и контроль доступа;
- выделенные серверы — если нужны более жёсткая изоляция и предсказуемые ресурсы.