Linux

Настройка брандмауэра Linux: полное пошаговое руководство

В этом руководстве вы научитесь настроить брандмауэр в Linux, используя популярные инструменты UFW и firewalld. После выполнения инструкции вы сможете контролировать сетевой трафик и защитить систему.

Обновлено 22 июля 2026 г.
10-15 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 20.04Ubuntu 22.04Debian 11CentOS 8

Введение / Зачем это нужно

Брандмауэр — это первый рубеж защиты любой сети Linux-системы. Правильно настроенный брандмауэр позволяет фильтровать входящий и исходящий трафик, блокировать нежелательные подключения и разрешать только необходимые сервисы. В этом руководстве вы узнаете, как быстро настроить два самых популярных инструмента — UFW (Ubuntu Firewall) и firewalld — и контролировать их работу.

Требования / Подготовка

  • ОС: Ubuntu 20.04 LTS / 22.04 LTS, Debian 11, CentOS 8 (или любая современная дистрибутива на базе Debian/RHEL.
  • Права root (или sudo).
  • Подключение к интернету для установки пакетов.
  • Два инструмента: ufw (входит в стандартную поставку Ubuntu) и firewalld (доступен в репозиториях большинства дистрибутивов).

Перед началом убедитесь, что у вас есть необходимые пакеты:

# Проверка установки UFW
which ufw
# Проверка установки firewalld
which firewall-cmd

Пошаговая инструкция

Шаг 1: Установите и активируйте UFW

💡 Совет: Используйте UFW для быстрой базовой защиты в Ubuntu/Debian.

sudo apt update && sudo apt install ufw          # установка
sudo ufw default deny incoming                   # блокируем все входящие соединения
sudo ufw default allow outgoing                 # разрешаем исходящий трафик
sudo ufw enable                                 # активируем брандмауэр

Шаг 2: Добавьте правила для нужных портов

⚠️ Важно: Разрешите только те сервисы, которые вам действительно нужны (например, SSH для удаленного доступа, HTTP/HTTPS для веб-сервера).

sudo ufw allow ssh     # порт 22/tcp
sudo ufw allow http    # порт 80/tcp
sudo ufw allow https   # порт 443/tcp
sudo ufw reload        # перезагружаем правила

Шаг 3: Проверьте статус UFW

sudo ufw status verbose

Вы увидите список активных правил и статус службы.

Шаг 4: Установите и запустите firewalld

💡 Совет: Firewalld предоставляет более гибкую зоновую модель и динамическое управление правилами.

# Для CentOS/RHEL
sudo yum install firewalld

# Для Debian/Ubuntu (если требуется)
# sudo apt install firewalld

sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --set-default-zone=external

Шаг 5: Настройте правила firewalld

⚠️ Важно: Правила, добавленные с --permanent, сохраняются после перезагрузки системы.

# Постоянные правила
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-port=22/tcp

# Перезагрузка брандмауэра для применения правил
sudo firewall-cmd --reload

Проверка результата

После выполнения шагов убедитесь, что брандмауэр работает так, как ожидалось:

  • Для UFW:
    sudo ufw status numbered
    
  • Для firewalld:
    sudo firewall-cmd --list-all
    

Эти команды покажут активные правила и текущий зоновый статус.


Возможные проблемы

СимптомВероятная причинаРешение
Невозможно подключиться по SSH после настройкиПравило ssh не добавлено или загруженоsudo ufw allow ssh и sudo ufw reload или sudo firewall-cmd --permanent --add-service=ssh + sudo firewall-cmd --reload
Брандмауэр не запускается при загрузкеСлужба не включенаsudo systemctl enable ufw или sudo systemctl enable firewalld
Дублирующие правила вызывают конфликтыПовторное добавление одного и того же правилаИспользуйте sudo ufw delete allow 22/tcp или sudo firewall-cmd --remove-service=ssh --permanent перед повторным добавлением
Сервис работает локально, но недоступен извнеПравило для внешнего интерфейса отсутствуетВ firewalld убедитесь, что зона external выбрана: sudo firewall-cmd --set-active-zone=external

Если проблема сохраняется, проверьте системные логи:

# Для UFW
sudo ufw log on

# Для firewalld
journalctl -u firewalld -f

Эти инструменты помогут выявить точную причину сбоя и исправить конфигурацию.

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

Как проверить статус брандмауэра в Linux?
Почему не удается подключиться к серверу после настройки брандмауэра?
Как открыть несколько портов одновременно?
Как временно отключить брандмауэр?

Полезное

Установите и активируйте UFW
Добавьте правила для нужных портов
Проверьте статус UFW
Установите и запустите firewalld
Настройте правила firewalld