Гид по технологиям

Настройка файрвола UFW в Debian

5 min read Системное администрирование Обновлено 29 Dec 2025
UFW на Debian: установка и настройка файрвола
UFW на Debian: установка и настройка файрвола

Настройка файрвола UFW в Debian

UFW (Uncomplicated Firewall) — простой фронтенд для iptables/nftables, который облегчает управление сетевыми правилами в Debian. Установите пакет, определите базовые политики (входящие/исходящие), добавьте правила для сервисов и протестируйте доступность. В статье — пошаговые команды, проверки, откат и рекомендации по безопасности.

Что такое UFW

UFW (Uncomplicated Firewall) — это удобный интерфейс для управления правилами брандмауэра на Linux. Он упрощает работу с низкоуровневыми инструментами (iptables/nftables), предоставляя понятные команды для разрешения или блокировки трафика.

Определение в одну строку: UFW — инструмент для декларативного управления входящими и исходящими соединениями через понятные команды.

Важно: UFW сам по себе — не антивирус; он контролирует сеть, а не содержимое файлов.

Перед началом: термины и предпосылки

  • Правило (rule): инструкция, разрешающая или блокирующая трафик по порту, протоколу или IP.
  • Политика по умолчанию (default policy): поведение файрвола для непопадающего под правило трафика.
  • Сервисы: имена, сопоставляемые с портами из /etc/services (например, ssh → 22).

Требования: доступ к терминалу с правами sudo и базовое понимание сетевых портов.

Как установить UFW на Debian

Обновите список пакетов и установите ufw:

sudo apt update
sudo apt install ufw -y

После установки можно включить UFW:

sudo ufw enable

Установка UFW в Debian

Включение UFW в Debian

Примечание: команда enable активирует правила и сохраняет состояние между перезагрузками.

Базовая модель и политики по умолчанию

Рекомендованная базовая модель безопасности:

  • По умолчанию запрещать входящие соединения (deny incoming).
  • По умолчанию разрешать исходящие соединения (allow outgoing).

Установите эти политики:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Настройка политики по умолчанию

Важно: после изменения политик проверьте, что вы не потеряли доступ по SSH (если настраиваете удалённый сервер).

Основные команды и примеры правил

Разрешить порт по номеру:

sudo ufw allow 22

Разрешить порт по имени (если сервис зарегистрирован):

sudo ufw allow ssh

Запретить порт:

sudo ufw deny 443

Разрешить трафик с конкретного IP:

sudo ufw allow from 192.168.9.12

Заблокировать трафик с IP:

sudo ufw deny from 192.168.9.12

Разрешить диапазон адресов (пример сети):

sudo ufw allow from 192.168.0.0/24 to any port 3306 proto tcp

Разрешить конкретный порт для определённого интерфейса (например, только на eth0):

sudo ufw allow in on eth0 to any port 80 proto tcp

Перезапустить службу (применить изменения через systemd):

sudo systemctl restart ufw

Показать статус и активные правила:

sudo ufw status verbose
sudo ufw status numbered

Сброс всех правил к заводским (очистка):

sudo ufw reset

Удаление пакета:

sudo apt purge ufw gufw -y

Показ статуса UFW

Сброс правил UFW

Частые сценарии и примеры

  1. Оставить SSH доступ при запуске UFW (критично для удалённых серверов):
sudo ufw allow ssh
sudo ufw enable
  1. Разрешить веб-трафик (HTTP/HTTPS):
sudo ufw allow http
sudo ufw allow https
  1. Разрешить только исходящие HTTPS и DNS для сервера, блокируя всё остальное:
sudo ufw default deny incoming
sudo ufw default deny outgoing
sudo ufw allow out 443/tcp
sudo ufw allow out 53/udp
sudo ufw enable

Примечание: при строгих исходящих политиках следите за зависимостями сервисов (обновления, NTP).

Проверка и тесты (как убедиться, что всё работает)

  • Локальная проверка портов: ss -tuln | grep <порт>
  • С удалённой машины: nmap -Pn -p 22,80,443
  • Логи UFW: /var/log/ufw.log или через journalctl -u ufw

Пример команды для быстрого теста SSH:

ssh -vvv user@server.example.com

Откат и аварийное восстановление доступа

Если вы потеряли доступ по SSH после изменения правил:

  • Если есть консольный доступ (KVM/панель хостера) — подключитесь и выполните sudo ufw disable или sudo ufw reset.
  • Через другую сеть/адрес, у которого есть доступ — откатьте правило, используя sudo ufw delete <номер_правила> (номер можно получить через sudo ufw status numbered).

Команды для быстрого отключения:

sudo ufw disable
sudo ufw reset

Читер-лист команд (быстрое руководство)

# Установка и включение
sudo apt update
sudo apt install ufw -y
sudo ufw enable

# Базовые политики
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Разрешить сервисы/порты
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow from 10.0.0.0/8 to any port 3306

# Просмотр и удаление
sudo ufw status verbose
sudo ufw status numbered
sudo ufw delete 2

# Откат
sudo ufw reset

# Удаление пакета
sudo apt purge ufw gufw -y

Рекомендации по безопасности и hardening

  • Всегда добавляйте правило для SSH перед включением UFW на удалённом сервере.
  • Используйте сквозную аутентификацию (ключи SSH) и отключите пароли, если возможно.
  • Ограничьте доступ по IP для административных сервисов (порталы управления, базы данных).
  • Включите логирование и периодически просматривайте /var/log/ufw.log.
  • Рассмотрите использование fail2ban совместно с UFW для автоматической блокировки брутфорса.

Сравнение и альтернативы

  • iptables: более гибкий и низкоуровневый, но сложнее в управлении.
  • nftables: современная замена iptables, предоставляет мощный набор возможностей; UFW в некоторых системах работает поверх nftables.
  • Gufw: графическая оболочка для UFW, удобна на рабочих станциях.

Выбор: UFW подходит для большинства серверных задач, когда нужна простая и предсказуемая политика. Для тонкой настройки или высокопроизводительных сценариев стоит рассмотреть прямую работу с nftables/iptables.

Роль‑ориентированный чек‑лист

  • Системный администратор:

    • Добавить правило для SSH и протестировать.
    • Установить политики по умолчанию.
    • Настроить логирование.
  • Девопс/инженер приложения:

    • Открыть только необходимые порты для сервиса.
    • Ограничить доступ к базам данных по сети.
    • Автоматизировать правила в infra‑repo (Ansible/Terraform).
  • Инженер по безопасности:

    • Провести аудит правил и логов.
    • Настроить интеграцию с SIEM/лог‑агрегатором.
    • Внедрить fail2ban и мониторинг попыток взлома.

Критерии приёмки

  • UFW включён и активен.
  • Политики по умолчанию заданы: входящие запрещены, исходящие разрешены (или другие согласованные политики).
  • Все необходимые сервисы доступны с ожидаемых IP/сетей.
  • Логи собираются и анализируются.

Модель принятия решений (Mermaid)

flowchart TD
  A[Нужен ли внешний доступ?] -->|Да| B[Какие сервисы доступны?]
  A -->|Нет| C[Закрыть входящие полностью]
  B --> D{Только SSH?}
  D -->|Да| E[Разрешить SSH, тестировать]
  D -->|Нет| F[Разрешить нужные порты по списку]
  F --> G[Ограничить по IP, если возможно]
  E --> H[Включить UFW]
  G --> H
  C --> H

Частые ошибки и когда UFW может не подойти

  • Ошибка: включение UFW на удалённом сервере без добавления правила для SSH — приводит к потере доступа.
  • UFW не обеспечивает фильтрацию приложений на уровне L7 (HTTP-инспекция) — для этого нужны WAF/proxy.
  • Для очень сложной балансировки и динамических политик (microsegmentation) лучше решения на уровне SDN/контейнерной сети.

Краткое руководство по миграции с iptables/nftables

  • Экспортируйте текущие правила и протестируйте эквивалентные правила в UFW.
  • Перенесите критичные правила по одному, проверяя доступность сервисов.
  • Тестируйте в staging среде перед production.

Часто задаваемые вопросы

Как проверить, какие правила разрешают доступ по порту?

Выполните:

sudo ufw status verbose
sudo ufw status numbered

Как разрешить доступ только для подсети?

sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp

Можно ли управлять UFW программно?

Да — вы можете вызывать команды ufw из скриптов или применять конфигурации через инструменты управления конфигурацией (Ansible, Salt, Puppet).

Сводка

UFW — быстрый и надёжный способ настроить базовую защиту сети на Debian. Начните с корректных политик по умолчанию, обязательно оставьте доступ по SSH при удалённой настройке и тестируйте изменения. Для сложных сценариев используйте nftables/iptables или специализированные сетевые решения.

Дополнительные ресурсы: изучите логи /var/log/ufw.log и интегрируйте UFW в процессы CI/CD для повторяемости конфигурации.

Удаление UFW в Debian

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

GraphQL + MongoDB: Apollo Server шаги
API

GraphQL + MongoDB: Apollo Server шаги

Исправление проблем Mac App Store
macOS

Исправление проблем Mac App Store

Удаление bloatware в Windows 10 быстро
Windows

Удаление bloatware в Windows 10 быстро

Python виртуальные окружения: настройка и команды
Python

Python виртуальные окружения: настройка и команды

Списки контактов на iPhone — создание и управление
iPhone

Списки контактов на iPhone — создание и управление

Многозадачность и жесты iPadOS
iPadOS

Многозадачность и жесты iPadOS