UFW на VPS: firewall, открытые порты и IPv6
Как включать UFW на VPS без потери SSH: политика deny, IPv4/IPv6, нужные TCP/UDP-порты, Docker-нюансы и внешняя проверка.
Содержание
Firewall на VPS нужен не для галочки, а для простой модели: снаружи доступны только те порты, которые действительно обслуживает сервер.
Базовая политика
Начните с deny incoming и allow outgoing. До команды enable добавьте SSH: стандартный 22/tcp или ваш новый порт.
ufw allow OpenSSHдля типовой Ubuntu-конфигурации.ufw allow 443/tcpдля HTTPS.ufw allow 51820/udpтолько если сервис реально слушает UDP.
IPv4 и IPv6
Проверьте, что UFW применяет правила к IPv6. Иначе сервис может быть закрыт на IPv4, но открыт на IPv6, что часто пропускают при быстрых настройках.
SSH и root-доступ
Не меняйте порт SSH, PermitRootLogin и firewall в одном коммите. Делайте изменения по одному и держите открытую сессию до проверки нового входа.
Docker и опубликованные порты
Docker меняет правила netfilter и может публиковать контейнер наружу. Для продакшена явно выбирайте bind-адрес, reverse proxy и проверяйте docker ps.
Порт не открыт
Если внешний тест не видит порт, проверьте четыре слоя: приложение слушает 0.0.0.0 или ::, systemd unit активен, UFW разрешает порт, security group провайдера не блокирует трафик.
UDP, перенос и IP
UDP нельзя проверить обычным HTTP-запросом. Для VPN-сервисов делайте отдельный тест с клиента. При переносе сервера переносите не только правила UFW, но и список опубликованных Docker-портов.
Проверено на практике
- Дата проверки: 2026-05-12
- Среда: Ubuntu/Debian Linux, VPS-провайдеры с публичным IPv4/IPv6
- Версии: актуальная документация Ubuntu/Debian/OpenSSH/systemd/UFW на дату проверки
Мини-чеклист
- Разрешить SSH до ufw enable
- Включить deny incoming
- Проверить правила IPv6
- Сверить UFW с security group провайдера
- Проверить Docker-публикации портов
Частые ошибки
- Включать UFW по SSH без правила для SSH
- Забывать про IPv6
- Открывать диапазоны портов без необходимости
- Путать закрытый порт с неработающим приложением
- Не учитывать Docker iptables
Источники и документация
FAQ
Почему порт открыт локально, но закрыт снаружи?
Чаще всего мешает UFW, security group, listen только на localhost или неактивный systemd-сервис.
Нужно ли открывать UDP отдельно?
Да. Правило для TCP не открывает UDP на том же номере порта.
UFW заменяет firewall провайдера?
Нет. Это разные слои, и блокировка на любом из них остановит трафик.
Хотите перейти сразу к рабочему доступу?
Если сценарий уже ясен и не хочется проходить все шаги вручную, оформите доступ и проверьте подключение на своем устройстве.
Оформить доступ