MAATRIX / Блог / UFW на VPS: простой firewall для Ubuntu и Debian

UFW на VPS: простой firewall для Ubuntu и Debian

Блог MAATRIX · 2026-07-07

Сканеры проверяют IP на открытые 22, 3306, 6379. UFW задаёт политику deny incoming, allow explicit.

Зачем firewall

По умолчанию Linux принимает входящие на все слушающие порты. UFW (Uncomplicated Firewall) — обёртка над nftables с простым синтаксисом.

Политика default deny incoming: всё закрыто, кроме явно разрешённого. Это baseline для любого VPS в интернете.

ufw reload безопаснее disable/enable — не теряете counters и не рискуете race при активных соединениях.

Документируйте правила в README infra — через полгода nobody помнит зачем allow 8080/tcp.

Для веб-сервера достаточно профиля Nginx Full; не открывайте 3000, 8000, 5432 наружу — reverse proxy и localhost binding закрывают типичные дыры.

После миграции на новый VPS перенесите не только приложение, но и documented firewall rules — security posture должен быть reproducible.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS

Базовые правила

ufw default deny incoming
ufw default allow outgoing
ufw allow OpenSSH
ufw allow 'Nginx Full'
ufw enable

OpenSSH — профиль порта из sshd_config. Nginx Full — 80 и 443.

Application profiles в /etc/ufw/applications.d — кастомный профиль для вашего backend port если временно нужен direct access.

ufw limit OpenSSH — rate limit brute force до deny без fail2ban для простых setups.

Логи UFW BLOCK помогают отличить легитимного пользователя с wrong port от массового сканера — первые дни после публикации IP логи будут шумными.

Практика показывает: большинство инцидентов на VPS связано не с «слабым железом», а с отсутствием мониторинга, бэкапов и дисциплины обновлений — инфраструктура MAATRIX даёт базу, эксплуатация остаётся на вашей стороне. (Контекст: ufw faervol na vps)

Web

Только nginx снаружи: приложение на 127.0.0.1:3000 не пробрасывайте в ufw allow 3000 — лишняя поверхность атаки.

ufw status numbered — список правил с номерами для delete.

Логирование [UFW BLOCK] помогает понять, какой scanner стучится на 3389 и 6379 — обычно можно игнорировать после verify deny.

Outgoing allow all default — malware phone-home не блокируется UFW outbound; egress filtering advanced topic.

При использовании Cloudflare as reverse proxy origin firewall может разрешать только IP ranges Cloudflare — скрывая реальный IP от прямых атак.

Документируйте шаги настройки в internal wiki или README репозитория infra — через полгода вы забудете, почему выбрали именно такой порт, timeout или размер worker pool. (Контекст: ufw faervol na vps)

Ограничение по IP

ufw allow from 203.0.113.50 to any port 22 — SSH только с офисного IP. Осторожно: смена IP заблокирует вас.

Для admin-панелей и Grafana — allow from trusted subnet.

При смене SSH порта добавьте правило до reload sshd — классическая блокировка: новый порт closed, старый closed.

Logging high volume disk — ufw logging low или medium production, full только incident debug window.

Docker publish ports обходит UFW — документируйте это в runbook и используйте bind 127.0.0.1 в compose для Redis, PostgreSQL, Elasticsearch.

IPv6

IPV6=yes в /etc/default/ufw — те же правила для v6. Без этого сервис может быть открыт только по IPv6 в обход firewall.

Cloudflare orange cloud — origin firewall может allow only CF IP ranges, скрывая origin IP от прямых атак.

Integration with Docker: ufw-docker script community — fix published ports bypass если используете Docker heavily.

Периодически ревью ufw status numbered — правила накопленные за годы часто содержат временный allow 8080 «на время debug», забытый навсегда.

Docker caveat

Docker манипулирует iptables напрямую и может обходить UFW для published ports (-p 6379:6379). Redis/MySQL не публикуйте на 0.0.0.0.

Решение: bind на 127.0.0.1 в docker-compose или internal network без ports.

Не полагайтесь только на UFW: обновления безопасности ядра и приложений — первичная линия защиты.

Перед включением ufw убедитесь, что правило SSH добавлено для актуального порта — классическая ошибка блокировки происходит в первые пять минут после создания VPS.

ufw limit OpenSSH добавляет rate limit на handshake — простая альтернатива fail2ban для solo admin VPS с ключевой аутентификацией.

Ошибки

  • Заблокировали SSH — консоль провайдера.
  • ufw enable до allow SSH — lockout.
  • Docker открыл порт — проверьте docker ps PORTS.

ufw logging on — audit отклонённых пакетов в /var/log/ufw.log.

IPv6 UFW mirror правил v4 — проверьте ip6tables через ufw status verbose после изменений.

Статус ufw status verbose показывает правила и для IPv4, и для IPv6 — проверяйте оба стека, если AAAA-запись домена указывает на VPS.

Исходящий трафик ufw default allow не защищает от malware beacon — egress filtering topic advanced, для типичного VPS inbound deny достаточно.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS

Частые вопросы

UFW или iptables?

UFW — проще; nftables — сложные сценарии.

Только nginx?

Да — закрывает лишнее.

Отключить?

ufw disable — только debug.