UFW — руководство по настройке брандмауэра в Linux
Быстрые ссылки
Настройка UFW
Открытие портов через UFW
Белые списки и ограничение скорости через UFW
Включение UFW
Управление и удаление правил

UFW, сокращение от “uncomplicated firewall”, — это фронтенд для более сложной утилиты
iptablesЦель UFW — упростить управление брандмауэром: легко открывать и закрывать порты и контролировать, какой трафик разрешён.
Настройка UFW
UFW обычно предустановлен в Ubuntu. Если он не установлен, установите через менеджер пакетов:
sudo apt-get install ufwВ других дистрибутивах используйте соответствующий пакетный менеджер — UFW широко доступен. Проверить статус брандмауэра можно командой:
sudo ufw statusЕсли UFW не настраивали, он покажет “Inactive”.
Хорошая отправная точка для любого брандмауэра — закрыть все входящие соединения и разрешить исходящие. Это не разорвет текущую SSH-сессию до включения брандмауэра.
sudo ufw default deny incoming
sudo ufw default allow outgoingТак вы получите чистое состояние и начнёте добавлять правила поверх базовой политики.
Открытие портов через UFW
Чтобы открыть порт, используйте ufw allow. Например, откроем порт 22:
sudo ufw allow 22При добавлении правила можно оставить комментарий для будущего себя:
sudo ufw allow 8080/tcp comment 'Open port for Express API'Многие приложения устанавливают профили для UFW (SSH — типичный пример). Можно разрешать приложения по имени:
sudo ufw allow sshСписок доступных приложений покажет:
sudo ufw app listА подробности профиля —
sudo ufw app info [name]Чтобы разрешить диапазон портов, используйте двоеточие и укажите протокол. Пример: только TCP на портах 3000–3100:
sudo ufw allow 3000:3100/tcpПо умолчанию входящие пакеты отбрасываются, поэтому не нужно вручную закрывать каждый порт. Если хотите отклонять исходящий порт, укажите направление:
sudo ufw reject out 3001Белые списки и ограничение скорости через UFW
Можно назначать особые права для отдельных IP-адресов. Например, разрешить весь трафик с конкретного IP:
sudo ufw allow 192.168.1.1Чтобы добавить правило только для определённого порта и протокола, используйте полный синтаксис:
sudo ufw allow proto tcp from 192.168.1.1 to any port 22Не рекомендуется жёстко фиксировать SSH по IP, если у вас нет резервного доступа. IP-адреса меняются. Альтернатива — поднять VPN-сервер в приватной сети и разрешать доступ только с его адреса.
Для блоков адресов используйте CIDR-нотацию:
sudo ufw allow 192.168.0.0/24Ограничение скорости (rate limiting) помогает блокировать очевидно злоумышленнические подключения, например, при попытках bruteforce SSH. По умолчанию UFW ограничивает 6 подключений за 30 секунд и ориентирован на SSH:
sudo ufw limit sshВключение UFW
После настройки правил включите UFW. Важное: убедитесь, что порт SSH (обычно 22) открыт, иначе вы заблокируете себя удалённо.
Если хотите, временно отключите автозапуск UFW, чтобы сброс решал возможные проблемы:
sudo systemctl disable ufwВключите UFW:
sudo ufw enableПроверьте статус:
sudo ufw statusЕсли всё в порядке и вы не потеряли доступ, включите автозапуск на загрузке:
sudo systemctl enable ufwПосле любого изменения перезагрузите правила:
sudo ufw reloadЛоги можно включить, чтобы события попадали в /var/log/:
sudo ufw logging onУправление и удаление правил
Чтобы удалить правило, сначала узнайте его номер:
sudo ufw status numbered
Номера начинаются с 1. Удаление по номеру:
sudo ufw delete [number]Не удаляйте правило, которое держит открытым порт 22. При необходимости используйте подтверждение через “–dry-run”.
После изменений снова выполните:
sudo ufw reloadКонтрольный список перед включением UFW
- [ ] Проверить, что SSH открыт:
sudo ufw statusилиsudo ufw allow ssh - Установить базовые политики: deny incoming, allow outgoing
- Прописать все сервисы, требующие доступа (HTTP, HTTPS, базы данных в приватной сети)
- Настроить белые списки для административных IP при необходимости
- Включить логирование, если нужно аудирование
- Тестировать доступ с другой сессии до закрытия текущей
Мини‑методология для безопасной настройки UFW
- Оцените сервисы: перечислите, какие порты нужны для внешнего доступа.
- Назначьте политику по умолчанию: deny incoming, allow outgoing.
- Добавьте минимально допустимые правила по необходимости.
- Протестируйте доступ локально и удалённо, не закрывая текущую SSH-сессию.
- Включите UFW, затем мониторьте логи и корректируйте правила.
Когда UFW не подходит
- Вам нужен тонкий контроль над сетевыми таблицами и сложные NAT/маршрутизация — iptables/nftables дают больше гибкости.
- На высоконагруженных шлюзах с миллионами соединений UFW может стать узким местом по сравнению с продвинутыми решениями.
- Для политики на уровне приложения (например, подробное поведение Layer 7) UFW не даёт инструментов; нужен прокси/ингресс.
Альтернативные подходы
- iptables / nftables — для детального контроля и производительности.
- firewalld — динамическое управление зонами в CentOS/Fedora.
- Аппаратные и облачные брандмауэры (security groups в облаках) — для защиты на уровне облачной сети.
Этапы зрелости безопасности (упрощённая шкала)
- Уровень 0: UFW не установлен.
- Уровень 1: Базовая политика (deny incoming, allow outgoing), SSH открыт.
- Уровень 2: Правила для сервисов, логирование включено.
- Уровень 3: Белые списки, rate limiting, мониторинг и тесты восстановления доступа.
Критерии приёмки
- SSH доступ сохранён после включения UFW.
- Открыты только необходимые внешние порты.
- Логи пишутся в /var/log/ и проверяемы.
- Есть документированная стратегия резервного доступа (консоль/витальная сеть/VPN).
Простая диаграмма принятия решения
flowchart TD
A[Нужен ли внешний доступ?] -->|Нет| B[Оставить deny incoming]
A -->|Да| C[Какие сервисы?]
C --> D{Только стандартные порты}
D -->|Да| E[Добавить правила по порту/по профилю]
D -->|Нет| F[Определить диапазоны и белые списки]
E --> G[Тестировать доступ]
F --> G
G --> H[Включить UFW и мониторить]1‑строчный глоссарий
- UFW: фронтенд для iptables, упрощающий правила брандмауэра.
- CIDR: нотация для описания блоков IP-адресов.
- Rate limit: ограничение частоты подключений для защиты от brute force.
Роли и чеклисты
Администратор сети:
- Убедиться в наличии резервного доступа.
- Составить список необходимых портов.
- Настроить белые списки и rate limiting.
DevOps-инженер:
- Автоматизировать правила в конфигурации (Ansible/Terraform).
- Добавлять комментарии к правилам для трассировки.
- Настроить мониторинг и оповещения по логам.
Оператор поддержки:
- Проверять
sudo ufw status numberedперед удалением правил. - Тестировать удаление с резервной сессии.
Тестовые сценарии и приёмка
- Тест 1: После включения UFW порт 22 остаётся доступен извне.
- Тест 2: HTTP (80) доступен, если правило добавлено.
- Тест 3: Превышение 6 подключений за 30 сек к SSH приводит к ограничению доступа при включённом rate limit.
Риски и смягчения
- Риск: блокировка административного доступа. Смягчение: всегда проверять SSH и иметь резервный канал.
- Риск: неправильная белая запись. Смягчение: использовать CIDR аккуратно и документировать изменения.
Короткое резюме
UFW делает настройку базового брандмауэра быстрой и безопасной. Начните с политики по умолчанию, добавьте минимально необходимые правила, включите логирование и обязательно протестируйте доступ перед отключением текущей сессии. Для сложной сетевой логики выбирайте iptables/nftables или облачные security groups.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone