UFW (Uncomplicated Firewall) — обёртка над iptables/nftables, штатно идущая в Ubuntu. Разберём базовую настройку файрвола для типового веб-сервера: SSH + Nginx (80/443), всё остальное закрыто по умолчанию.
Устанавливаем и проверяем статус
В большинстве версий Ubuntu UFW уже стоит из коробки, но на всякий случай:
sudo apt install ufw -y
sudo ufw status verbose
Важно: сначала разрешаем SSH
Это самый частый способ отрубить себе доступ к серверу — включить UFW с политикой «запретить всё» и забыть разрешить SSH. Прежде чем включать файрвол, обязательно разрешите порт, на котором у вас висит SSH:
# если SSH на стандартном 22 порту
sudo ufw allow 22/tcp
# если SSH перевешен на нестандартный порт, например 2222
sudo ufw allow 2222/tcp
Разрешаем веб-трафик
Для Nginx в Ubuntu есть готовые профили UFW, можно разрешать не по номеру порта, а по имени профиля:
sudo ufw app list
# посмотреть, что входит в профиль
sudo ufw app info "Nginx Full"
# разрешить HTTP + HTTPS одной командой
sudo ufw allow "Nginx Full"
Если сертификата ещё нет и HTTPS пока не поднят, можно временно разрешить только HTTP:
sudo ufw allow "Nginx HTTP"
Задаём политику по умолчанию и включаем
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
Система спросит подтверждение, что может порвать текущее SSH-соединение — раз мы уже разрешили нужный порт выше, отвечаем «y».
Проверяем итоговый список правил:
sudo ufw status numbered
Полезные команды на каждый день
# удалить правило по номеру (номер смотрим в status numbered)
sudo ufw delete 3
# разрешить доступ конкретному IP на конкретный порт (например, к панели БД)
sudo ufw allow from 203.0.113.10 to any port 3306
# ограничить количество попыток подключения (защита от брутфорса SSH)
sudo ufw limit 22/tcp
# полностью выключить файрвол
sudo ufw disable
# посмотреть логи блокировок
sudo tail -f /var/log/ufw.log
ufw limit— недооценённая штука: она не просто открывает порт, а автоматически блокирует IP, если с него идёт больше 6 попыток подключения за 30 секунд. Для SSH, торчащего в интернет, это простая и бесплатная защита от перебора паролей без установки fail2ban.