Как быстро настроить UFW и открыть нужные порты в Ubuntu
В двух словах: включите UFW, заранее разрешив SSH, установите политику deny incoming / allow outgoing и откройте только нужные порты командой sudo ufw allow <порт/протокол>. Ниже — готовая пошаговая инструкция с практическими примерами.
Базовая настройка и включение
- Установите (если нужно) и проверьте статус:
sudo apt update
sudo apt install ufw
sudo ufw status verbose
- Разрешите SSH прежде чем включать UFW, чтобы не потерять доступ:
sudo ufw allow OpenSSH
# или явно
sudo ufw allow 22/tcp
- Установите политику по умолчанию и включите:
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 и автоматическими обновлениями — это даст практичную многоуровневую защиту. Тестируйте изменения на тестовой машине перед применением в бою.