Главная / Шпаргалка

Шпаргалка команд UFW

Всё, что нужно для ежедневной работы с файрволом. Каждый блок можно скопировать целиком — строки с # это комментарии, терминал их проигнорирует.

Статус

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 reset

ufw 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 не важна