Как быстро настроить UFW и открыть нужные порты в Ubuntu

В двух словах: включите UFW, заранее разрешив SSH, установите политику deny incoming / allow outgoing и откройте только нужные порты командой sudo ufw allow <порт/протокол>. Ниже — готовая пошаговая инструкция с практическими примерами.

Базовая настройка и включение

  1. Установите (если нужно) и проверьте статус:
sudo apt update
sudo apt install ufw
sudo ufw status verbose
  1. Разрешите SSH прежде чем включать UFW, чтобы не потерять доступ:
sudo ufw allow OpenSSH
# или явно
sudo ufw allow 22/tcp
  1. Установите политику по умолчанию и включите:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
sudo ufw status verbose

Эта конфигурация подойдёт для сервера: блокируются все входящие соединения, разрешается исходящий трафик.

Никогда не отключайте UFW на продакшене без замены на другой механизм (например, cloud‑firewall) или fail2ban.

Включите логирование для отладки: sudo ufw logging on — логи пишутся в /var/log/ufw.log.

Как открыть нужные порты — практические примеры

UFW понимает сервисы из профилей (/etc/ufw/applications.d) и порты:

  • Веб‑серверы:
sudo ufw allow 80/tcp    # HTTP
sudo ufw allow 443/tcp   # HTTPS
# или по профилю:
sudo ufw allow 'Nginx Full'
  • SSH с ограничением по IP:
sudo ufw allow from 203.0.113.0/24 to any port 22 proto tcp
  • База данных только для локальной сети:
sudo ufw allow from 192.168.1.0/24 to any port 3306 proto tcp
  • Игровые сервера или нестандартные порты:
sudo ufw allow 25565/udp

Проверка списка правил:

sudo ufw status numbered

Удаление правила по номеру:

sudo ufw delete <номер>

Продвинутые настройки и интеграция

  • Ограничение SSH от брутфорса:
sudo ufw limit OpenSSH

Это временно блокирует IP после серии неудачных попыток.

  • Интеграция с fail2ban: установите fail2ban и включите работу с UFW в /etc/fail2ban/jail.local для автоматической блокировки злоумышленников.
  • Docker: по умолчанию Docker обходит UFW (меняет iptables). Решение — править /etc/ufw/before.rules или управлять правилами через Docker‑сеть вручную.

Отладка и тестирование

  • Логи: sudo tail -f /var/log/ufw.log
  • Тест соединения локально: telnet localhost 80 или nc -zv your-ip 22
  • Список сервисов: sudo ufw app list
  • Перезагрузить правила: sudo ufw reload
  • Сброс (внимательно): sudo ufw reset

Частые ошибки

  • Включили UFW без разрешённого SSH — потеря доступа.
  • Открыли порт без ограничения по IP для базы данных.
  • Не учли Docker: правила кажутся применёнными, но трафик проходит мимо.
  • Отключили UFW в продакшене без запасной защиты.

FAQ

  • Нужно ли включать UFW на десктопе? Да, если вы запускаете сервисы или подключаетесь к публичной сети — те же принципы.
  • Как вернуть правило, если ошибся? Используйте sudo ufw status numbered и sudo ufw delete <номер>.
  • Как разрешить диапазон портов? sudo ufw allow 10000:20000/tcp.

Для продакшена комбинируйте UFW с fail2ban, AppArmor и автоматическими обновлениями — это даст практичную многоуровневую защиту. Тестируйте изменения на тестовой машине перед применением в бою.