UFW (Uncomplicated Firewall) – обёртка над netfilter для Ubuntu: правила allow/deny без ручной сборки цепочек iptables. Удобно для VPS, где нужно быстро закрыть лишнее и оставить SSH, HTTP/HTTPS и пару служебных портов. Ниже установка, безопасный порядок включения, типовые правила и логирование.
Что такое UFW
UFW переводит понятные команды в правила firewall backend (iptables/nftables в зависимости от версии системы). Плюс – низкий порог входа: open/close портов, allow from подсети, limit для rate-limit. Минус – сложные сценарии (DNAT, тонкая политика по интерфейсам) всё равно уводят в «сырой» netfilter. Для типичного веб-сервера или панели UFW обычно достаточно.
Установка
На многих образах Ubuntu UFW уже есть. Если нет:
sudo apt update sudo apt install ufw sudo ufw status
Статус inactive значит, что сервис установлен, но правила ещё не применяются. Не включайте firewall, пока не открыли SSH (или ваш порт удалённого доступа).
Политика по умолчанию
Разумный старт для публичного сервера: входящее запретить, исходящее разрешить.
sudo ufw default deny incoming sudo ufw default allow outgoing
Дальше явно открываете только нужное. Без allow на SSH после ufw enable легко потерять доступ.
SSH до enable
Стандартный порт:
sudo ufw allow ssh
Или нестандартный (пример 2222):
sudo ufw allow 2222/tcp
Опционально rate-limit вместо простого allow (снижает частоту новых подключений с одного IP):
sudo ufw limit ssh
Затем включение:
sudo ufw enable sudo ufw status verbose
UFW предупредит о возможном разрыве SSH-сессий. Если allow/limit на ваш порт уже добавлен, текущая сессия обычно переживает enable. На проде удобно держать второе окно консоли (VNC/IPMI/console провайдера) на случай ошибки.
Типовые правила
Веб: HTTP и HTTPS
sudo ufw allow http sudo ufw allow https
Если установлен профиль application для Nginx:
sudo ufw app list sudo ufw allow 'Nginx Full'
Диапазон портов
sudo ufw allow 1000:2000/tcp
Только с одного IP
Админка или служебный порт только с доверенного адреса:
sudo ufw allow from 192.168.1.100 to any port 8080
Подсеть (VPN и т.п.)
sudo ufw allow from 10.8.0.0/24 to any port 1194
Блок IP
sudo ufw deny from 203.0.113.0
Для целой сети укажите префикс, например 203.0.113.0/24. Порядок правил важен: UFW применяет их по номеру; при конфликтах смотрите ufw status numbered и удаляйте лишнее через ufw delete N.
Логирование
sudo ufw logging on
Записи обычно идут в /var/log/ufw.log (и/или syslog). Уровень можно повысить (low, medium, high, full), но на оживлённом хосте high/full быстро раздувают диск – следите за ротацией.
Практические замечания
- Сначала политика и allow SSH, потом
enable. - Открывайте минимум: веб 80/443, SSH (или свой порт), остальное по необходимости.
limit sshне заменяет Fail2Ban и ключи, но режет простые flood-сценарии.- Docker и часть панелей пишут свои iptables-правила – после включения UFW проверьте доступ к контейнерам и published ports.
- UFW – один слой. Обновления, SSH-ключи, отключение password auth и мониторинг логов по-прежнему нужны.
Для типового Ubuntu VPS цепочка «default deny incoming → allow SSH/HTTP/HTTPS → enable → status verbose» даёт предсказуемый baseline без ручной правки iptables.
