Статус
bash
# кратко: включён ли и какие правила
sudo ufw status
# подробно: плюс политики по умолчанию и уровень логов
sudo ufw status verbose
# с номерами — нужно для удаления и вставки правил
sudo ufw status numbered
# правила, добавленные командами (работает и при выключенном UFW)
sudo ufw show addedРазрешить
bash
# порт по TCP
sudo ufw allow 8080/tcp
# порт по UDP (например, WireGuard)
sudo ufw allow 51820/udp
# диапазон портов (протокол обязателен)
sudo ufw allow 6000:6007/tcp
# всё с одного IP
sudo ufw allow from 203.0.113.10
# всё из подсети
sudo ufw allow from 203.0.113.0/24
# конкретный порт только с одного IP
sudo ufw allow from 203.0.113.10 to any port 5432 proto tcp
# порт только на одном сетевом интерфейсе
sudo ufw allow in on eth0 to any port 80 proto tcp
# с комментарием — потом проще разобраться
sudo ufw allow 443/tcp comment 'HTTPS'Запретить
UFW проверяет правила сверху вниз и применяет первое совпавшее. Поэтому запрет для конкретного IP нужно ставить выше разрешающих правил — командой insert.
bash
# заблокировать IP целиком, поставив правило первым
sudo ufw insert 1 deny from 198.51.100.7
# заблокировать подсеть
sudo ufw insert 1 deny from 198.51.100.0/24
# закрыть порт явно (обычно не нужно при deny incoming)
sudo ufw deny 3306/tcp
# reject вместо deny: клиент сразу получит отказ, а не таймаут
sudo ufw reject 25/tcpУдалить правило
bash
# способ 1: по номеру
sudo ufw status numbered
sudo ufw delete 3
# способ 2: повторив правило со словом delete
sudo ufw delete allow 8080/tcpПосле удаления номера правил сдвигаются. Удаляя несколько правил по номеру, каждый раз заново смотрите status numbered или удаляйте с конца.
Профили приложений
bash
# список доступных профилей
sudo ufw app list
# какие порты входят в профиль
sudo ufw app info OpenSSH
# разрешить по профилю
sudo ufw allow 'Nginx Full'Включение, выключение, сброс
bash
# включить (с вопросом / без вопроса — для скриптов)
sudo ufw enable
sudo ufw --force enable
# выключить (правила сохраняются)
sudo ufw disable
# перечитать конфигурацию
sudo ufw reload
# посмотреть, что сделает команда, не применяя её
sudo ufw --dry-run allow 80/tcp
# удалить ВСЕ правила и выключить UFW
sudo ufw resetufw reset удаляет все правила, включая SSH. Если после сброса снова включить UFW без правила для SSH — доступ будет потерян.
Логирование
bash
# уровни: off, low, medium, high, full
sudo ufw logging low
# смотреть лог в реальном времени
sudo tail -f /var/log/ufw.logКак читать вывод статуса
| В выводе | Что означает |
|---|---|
ALLOW IN | Входящие подключения разрешены |
LIMIT IN | Разрешены, но IP с 6+ подключениями за 30 секунд временно блокируется |
DENY IN | Пакеты молча отбрасываются — клиент ждёт до таймаута |
REJECT IN | Клиент сразу получает отказ |
Anywhere | С любого адреса IPv4 |
(v6) | Копия правила для IPv6 |
deny (routed) / disabled (routed) | Политика для транзитного трафика (маршрутизация, контейнеры). Для обычного VPS не важна |