Linux

Основы firewall-cmd: настройка брандмауэра Linux за 5 минут

В этом руководстве вы узнаете, как быстро настроить брандмауэр firewall-cmd на системе Linux. Пошаговые команды помогут открыть необходимые порты, заблокировать нежелательный трафик и защитить сервер.

Обновлено 26 июня 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 22.04CentOS 9Debian 12

Введение

Брандмауэр firewall-cmd — это современный инструмент для управления firewalld в дистрибутивах Linux. Он позволяет быстро открывать порты, разрешать сервисы и блокировать нежелательный трафик. После выполнения этого руководства у вас будет готовый брандмауэр, настроенный всего за несколько минут, и вы сможете защитить свой сервер от внешних угроз.

Требования

  • Система на базе Linux (Ubuntu 22.04, CentOS 9, Debian 12 или любая другая дистрибутива с firewalld).
  • Права администратора (sudo).
  • Установленный пакет firewalld (обычно включён по умолчанию в современных дистрибутивах).

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

Шаг 1: Включить и запустить firewalld

Проверьте, установлен ли firewalld: sudo systemctl status firewalld. Если служба остановлена, запустите её: sudo systemctl start firewalld. Убедитесь, что она автоматически запускается после перезагрузки: sudo systemctl enable firewalld.

Шаг 2: Добавить постоянное правило для сервиса

Чтобы открыть порт навсегда, выполните: sudo firewall-cmd --zone=public --add-port=80/tcp --permanent. Примените изменения командой sudo firewall-cmd --reload.

Шаг 3: Добавить временное правило

Для временного разрешения доступа используйте: sudo firewall-cmd --zone=public --add-port=8080/tcp --temporary. Это правило сохраняется только до перезагрузки системы.

::in-article-ad::

Шаг 4: Проверить активные правила

Просмотрите все действующие правила: sudo firewall-cmd --zone=public --list-all. Для просмотра постоянных правил добавьте --permanent, например sudo firewall-cmd --zone=public --list-all --permanent.

Шаг 5: Отключить ненужный сервис

Если служба больше не нужна, удалите её правило: sudo firewall-cmd --zone=public --remove-service=ssh --permanent. После чего выполните sudo firewall-cmd --reload.

Шаг 6: Сбросить правила до значений по умолчанию

Чтобы удалить все пользовательские правила, сбросьте конфигурацию: sudo firewall-cmd --clear-rules. Для полного сброса используйте sudo firewall-cmd --set-default-zone=public.

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

После выполнения шагов проверьте, что порт открыт: sudo firewall-cmd --zone=public --query-port=80/tcp. Если вы видите yes, правило действует. Для постоянных правил используйте --permanent в конце команды.

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

  • Служба firewalld не запускается – проверьте системные логи: sudo journalctl -u firewalld. Частая причина — конфликт с другими сетевыми инструментами (например, iptables).
  • Команда firewall-cmd не найдена – установите пакет: sudo apt install firewalld (Debian/Ubuntu) или sudo yum install firewalld (RHEL/CentOS).
  • Правило не вступает в силу – убедитесь, что вы добавили --permanent, если нужно постоянное изменение, и выполнили sudo firewall-cmd --reload.

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

Почему firewalld не запускается после установки?
Как временно разрешить доступ к порту без создания постоянного правила?
Можно ли управлять firewalld из удалённой машины?
Что делать, если команда `firewall-cmd` не найдена?

Полезное

Включить и запустить firewalld
Добавить постоянное правило для сервиса
Добавить временное правило
Проверить активные правила
Отключить ненужный сервис
Сбросить правила до значений по умолчанию

Эта статья помогла вам решить проблему?