UFW на VPS: простой firewall для Ubuntu и Debian
Сканеры проверяют 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.