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

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

UFW firewall на VPS: базовые правила и защита портов
Блог MAATRIX · 2026-07-07

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

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Зачем 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

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

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

UFW или iptables?

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

Только nginx?

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

Отключить?

ufw disable — только debug.