Введение / Зачем это нужно
UFW (Uncomplicated Firewall) — это удобный инструмент для защиты серверов под Linux. Он скрывает сложность iptables за простым CLI, что особенно ценно для начинающих администраторов и владельцев самостоятельных серверов. После настройки UFW вы сможете контролировать входящие/исходящие соединения, открыть нужные порты и закрыть всё остальное, минимизируя риск взлома или нежелательного трафика.
Требования / Подготовка
- Доступ root (или sudo) на целевом узле.
- ОС на базе Debian/Ubuntu (должны работать указанные версии).
- Пакет
ufwне установлен (инсталляция выполняется в шаге 1).
Пошаговая инструкция
Шаг 1: Установка и активация UFW
Сначала установите пакет:
sudo apt update
sudo apt install ufw
Затем активируйте брандмауэр. Вас спросят о подтверждении — введите y:
sudo ufw enable
Шаг 2: Разрешение необходимых портов
Откройте порты, которые нужны для работы ваших сервисов. Пример для SSH и веб-сервера:
# SSH (удалённый доступ)
sudo ufw allow 22/tcp
# HTTP
sudo ufw allow 80/tcp
# HTTPS (если используется)
sudo ufw allow 443/tcp
Вы также можете разрешить по IP:
sudo ufw allow from 192.168.1.100 to any port 22 proto tcp
Шаг 3: Блокировка ненужного трафика
Задайте правила по умолчанию:
# Блокировать все входящие соединения
sudo ufw default deny incoming
# Разрешить исходящие соединения (обычно безопасно)
sudo ufw default allow outgoing
Теперь UFW автоматически заблокирует все остальные входящие запросы.
Шаг 4: Проверка настроек
Просмотрите активные правила в кратком виде:
sudo ufw status
Для подробного вывода (включая состояния) используйте:
sudo ufw status verbose
В выводе должно быть указано Status: active. Если что-то не так, отключите UFW (sudo ufw disable) и проверьте логи.
Шаг 5: Перезагрузка сервера (необязательно)
После изменения правил перезагрузите сервер, чтобы убедиться, что всё применено:
sudo reboot
После перезагрузки проверьте статус снова (sudo ufw status), чтобы подтвердить, что брандмауэр работает.
Проверка результата
- Подключитесь к серверу по SSH — правило на порт 22 должно быть разрешено.
- Откройте браузер и перейдите на сервер по IP — порт 80 должен быть доступен.
- Попробуйте подключиться к закрытому порту (например, 23/tcp). Соединение должно быть отклонено.
- Проверьте исходящий трафик: обычно исходящие соединения разрешены без дополнительных правил.
Возможные проблемы
- Ошибка «Команда не найдена» при вводе
ufw– пакет не установлен. Выполнитеsudo apt install ufw. ufwпросит подтвердить отключение – если вы случайно ввелиsudo ufw enableнесколько раз, используйтеsudo ufw resetдля сброса всех правил.- Порт всё равно закрыт – удостоверьтесь, что правило добавлено (
sudo ufw status) и что нет конфликтующих правил, добавленных вручную в/etc/ufw/user.rules. - После перезагрузки UFW выключен – убедитесь, что автозагрузка включена:
sudo ufw enableи проверьтеsudo ufw status.
⚠️ Важно: После изменения правил брандмауэра всегда проверяйте, что не заблокировали себя. Сохраните рабочий SSH-коннект, прежде чем закрывать входящие соединения.