UFW — простой фаервол для Ubuntu и Debian, надстройка над системными правилами ядра. Принцип: закрыть всё входящее и открыть только то, чем вы действительно пользуетесь. В Ubuntu он обычно уже установлен, в Debian его нужно поставить.
Установка и правила
$ apt install -y ufw$ ufw default deny incoming$ ufw default allow outgoing$ ufw allow OpenSSH$ ufw allow 80/tcp$ ufw allow 443/tcpВключение и проверка
$ ufw enable$ ufw status verboseUFW спросит подтверждение, потому что включение может прервать соединения. Ответьте y. Правила сохраняются и действуют после перезагрузки.
Доступ только с определённых адресов
Служебные порты — базы данных, панели управления — лучше открывать только для своих IP:
$ ufw allow from 198.51.100.7 to any port 5432 proto tcpА для SSH полезно правило limit: оно временно блокирует адрес, который открывает слишком много соединений подряд.
$ ufw limit OpenSSHУдаление правил
$ ufw status numbered$ ufw delete 3Номера сдвигаются после каждого удаления, поэтому перед следующим удалением снова посмотрите список.
Проверьте результат
- ufw status verbose показывает Status: active и политику deny (incoming).
- В новом окне терминала SSH-подключение проходит.
- Порт, который не открыт, недоступен снаружи. Проверьте с другой машины: nc -zv 203.0.113.10 3306 должно завершиться ошибкой.
Частые ошибки
- Docker публикует порты контейнеров в обход UFW. Порт, открытый через ports: "5432:5432", будет доступен из интернета даже при deny. Публикуйте служебные порты на 127.0.0.1 — см. статью «Установка Docker».
- Одновременно включены UFW и собственные правила nftables или firewalld — правила конфликтуют. Используйте один инструмент.
- Потеряли доступ после включения — зайдите через VNC-консоль и выполните ufw allow OpenSSH.