Как настроить межсетевой экран SLES 15 с помощью firewall-cmd

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

Данное руководство основано на руководстве SUSE SLES 15 SP7 по безопасности и усилению защиты, а также на справочнике команд firewalld, проверенном 7 октября 2026 года. Более ранние пакеты обновлений и обновленные системы SLES 12 могут иметь другие состояния или устаревшую конфигурацию брандмауэра. Изображения терминала показывают примеры, а не результаты, полученные с реального сервера; замените имена интерфейсов, зоны и службы значениями на вашем хосте.

1. Убедитесь, что firewalld запущен.

В документации SUSE указано, что firewalld установлен и включен по умолчанию в SLES 15. YaST обычно запускает его после установки и помещает интерфейсы в publicзону по умолчанию. Тем не менее, лучше проверить машину, а не предполагать, что настройки по умолчанию не изменились. Выполните эти команды от имени учетной записи, которой разрешено использовать sudo:

sudo systemctl status firewalld
sudo firewall-cmd --state

Диспетчер служб должен сообщать об firewalldактивности службы и firewall-cmd --stateо состоянии системы running. Если служба установлена, но остановлена, запустите ее и включите при загрузке системы:

sudo systemctl enable --now firewalld

Если пакет firewall-cmdотсутствует, проверьте, firewalldустановлен ли он и доступен ли в включенных репозиториях SUSE. Не устанавливайте и не заменяйте компоненты брандмауэра на управляемом сервере бездумно.

Пример работы терминала SLES: проверка состояния службы firewalld и отображение активной публичной зоны на eth0.
В тестовом терминале проверяется состояние firewalld и отображается пример активной публичной зоны с интерфейсом eth0.

2. Найдите зону, защищающую интерфейс сервера.

Firewalld группирует правила в зоны , которые представляют разные уровни доверия. publicЗона обычно используется для сетей, которым не доверяют. Сервис, открытый в одной зоне, не открывается автоматически во всех зонах, поэтому правильное правило в неправильной зоне может привести к недоступности вашего приложения.

sudo firewall-cmd --get-active-zones
sudo firewall-cmd --get-default-zone
sudo firewall-cmd --zone=public --list-all

Используйте вывод команды active-zone, чтобы найти зону, подключенную к интерфейсу, через который проходит клиентский трафик. Имя интерфейса может быть eth0, ens160, или другим. Если вам нужно проверить один интерфейс, выполните команду:

sudo firewall-cmd --get-zone-of-interface=eth0

Замените eth0на фактический интерфейс. Интерфейс, не назначенный явно зоне, обрабатывается зоной по умолчанию. Избегайте необдуманного изменения зоны по умолчанию: это может повлиять на интерфейсы, которые от нее зависят. На удаленном сервере определите зону SSH или другую зону управления и подтвердите ее правило доступа, прежде чем перезагружать настройки брандмауэра. Если существует, обеспечьте наличие консоли или пути восстановления внеполосным способом.

Пример работы терминала SLES, демонстрирующий общедоступную зону по умолчанию, интерфейс eth0, службу SSH и правила текущей зоны.
В списке зон отображается информация о том, какие интерфейсы и службы связаны с примером общедоступной зоны до внесения каких-либо изменений.

3. Выберите именованную службу или конкретный порт.

Служба firewalld — это именованное определение, которое может включать один или несколько портов и протоколов. Обычно проще разрешить доступ известной службе по имени, чем запоминать номер её порта. Перед использованием проверьте список установленных служб и изучите определение:

sudo firewall-cmd --get-services
sudo firewall-cmd --info-service=http

Для веб-сервера предопределенная httpслужба обычно охватывает TCP-порт 80; httpsдля веб-трафика TLS используется отдельная служба. В документации SLES показан тот же метод на основе служб с примерами, такими как DHCP. Используйте ту службу, которая требуется вашему приложению, и проверьте определение службы локально, если вы не уверены.

Если ни одна из предопределенных служб не подходит, откройте только необходимый порт и протокол. Например, приложение, прослушивающее TCP-порт 8443, может быть разрешено с помощью команды ` --add-port=8443/tcp.`. Открытие порта в брандмауэре не запускает приложение, не привязывает его к сети и не делает его безопасным; убедитесь, что сама служба настроена на прослушивание нужного адреса.

Сначала протестируйте временное правило.

Для короткого теста примените правило к конфигурации во время выполнения. Изменения во время выполнения вступают в силу немедленно, но теряются после перезагрузки брандмауэра или перезапуска службы, если вы не сохраните их навсегда. Firewalld поддерживает правило с ограничением по времени, что полезно, если вы хотите, чтобы тест автоматически завершался:

sudo firewall-cmd --zone=public --add-service=http --timeout=5m

Для разовой проверки порта используйте --add-port=8443/tcp --timeout=5mвместо --add-service=http. Выберите зону, которая фактически содержит интерфейс сервера; не копируйте, publicесли ваш хост использует другую зону.

Пример использования терминала SLES: добавление HTTP-сервиса на постоянной основе в публичную зону и перезагрузка firewalld.
Приведенная команда добавляет HTTP-сервис в постоянную конфигурацию общедоступной зоны, а затем перезагружает firewalld для его применения.

4. Сохраните правило и перезагрузите firewalld.

Когда вы будете готовы сохранить правило, добавьте его в постоянную конфигурацию. Следующий пример разрешает HTTP в публичной зоне:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload

Для HTTPS повторите команду permanent с параметром --add-service=https. Для пользовательского порта приложения используйте команду, например:

sudo firewall-cmd --permanent --zone=public --add-port=8443/tcp
sudo firewall-cmd --reload

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

Существует также рабочий процесс, ориентированный на выполнение во время работы: протестируйте правило во время выполнения, подтвердите работоспособность службы, затем добавьте то же правило --permanentи перезагрузите систему. Избегайте использования --runtime-to-permanentв качестве ярлыка, если вы не собираетесь сохранять все текущие правила, действующие во время выполнения, включая временные изменения, внесенные другими администраторами или программным обеспечением.

Как можно убедиться, что изменение сработало?

Проверьте как активное правило во время выполнения, так и сохраненное правило. Для HTTP-сервиса в общедоступной зоне выполните:

sudo firewall-cmd --zone=public --query-service=http
sudo firewall-cmd --permanent --zone=public --list-services
sudo firewall-cmd --check-config

Запрос должен вернуть yes, постоянный список служб должен включать http, и проверка конфигурации должна завершиться успешно. Для правила порта используйте --query-port=8443/tcpи --list-portsв эквивалентных командах. Также проверьте с отдельного клиента, который может связаться с сервером; локальный запрос через брандмауэр подтверждает наличие правила, а не корректность DNS, маршрутизации, вышестоящих брандмауэров или прослушивателя приложений.

Пример работы терминала SLES, подтверждающий разрешение HTTP в режиме выполнения и в постоянных конфигурациях, а также проверяющий конфигурацию firewalld.
Команды проверки проверяют активное правило службы, сохраненный список служб и синтаксис постоянной конфигурации.

Типичные проблемы и безопасные способы их решения

  • Правило присутствует, но соединения по-прежнему прерываются по таймауту: убедитесь, что оно добавлено в зону, прикрепленную к интерфейсу, обращенному к клиенту. Затем проверьте, прослушивает ли приложение ожидаемый адрес и порт, и проверьте работу вышестоящего сетевого брандмауэра.
  • Правило работало до перезагрузки: вероятно, оно было добавлено только во время выполнения. Добавьте его --permanentи перезагрузите систему, затем запросите обе конфигурации.
  • Доступ по SSH находится под угрозой: проверьте службы активной зоны и постоянные службы перед перезагрузкой. Если SSH требуется, но отсутствует, добавьте sshслужбу в соответствующую зону на постоянной основе перед перезагрузкой. Не закрывайте текущую удаленную сессию, пока не проверите второе соединение.
  • Вы выполняете миграцию с более старой версии SUSE: в SLES 15 SuSEfirewall2 был заменен на firewalld. SUSE предупреждает, что профили устаревших брандмауэров имеют ограниченную обратную совместимость; ознакомьтесь с руководством по миграции, а не предполагайте, что все старые правила были переведены.
  • Правила, по-видимому, противоречат друг другу: firewalld предназначен для управления правилами брандмауэра хоста. SUSE предостерегает от изменения одних и тех же правил по отдельности с помощью таких инструментов, как iptables, поскольку это может привести к путанице в активной конфигурации.

Чтобы удалить ненужную постоянную службу или порт, используйте соответствующий параметр --remove-serviceили --remove-portопцию с --permanent, затем перезагрузите страницу и снова проверьте. Например, удалите HTTP из публичной зоны с помощью , sudo firewall-cmd --permanent --zone=public --remove-service=httpа затем sudo firewall-cmd --reload.

Перед завершением проверьте себя.

  • firewalldОн запущен и работает при загрузке сервера.
  • Вы определили активную зону для интерфейса, принимающего трафик.
  • В этой зоне разрешен доступ только для того сервиса или порта, которые необходимы приложению.
  • Удаленное администрирование по-прежнему разрешено до и после перезагрузки.
  • Правило отображается в запросах во время выполнения и в постоянных запросах, и проверка конфигурации проходит успешно.
  • Проверка соединения с другого хоста подтверждает доступность приложения.

Подробную информацию о конкретной версии см. в руководстве по брандмауэру SUSE SLES 15 SP7 , руководстве по firewall-cmd и примечаниях firewalld о настройке во время выполнения и постоянной настройке , а также об открытии порта или службы .

Оставить комментарий

Как безопасно восстановить потерянные разделы и данные с жесткого диска

Как безопасно восстановить потерянные разделы и данные с жесткого диска

Узнайте, как восстановить потерянные разделы и файлы с помощью TestDisk и PhotoRec. Защитите исходный диск, проведите безопасное сканирование и сохраните восстановленные данные на другой диск.

Как сканировать QR-коды на настольном компьютере с Linux

Как сканировать QR-коды на настольном компьютере с Linux

Сканируйте QR-коды в Linux с помощью CoBang, используя веб-камеру или файл изображения. См. варианты установки, шаги настройки и решения проблем с доступом к камере Flatpak.

Как изменить настройки веб-камеры в Linux с помощью Cameractrls

Как изменить настройки веб-камеры в Linux с помощью Cameractrls

Изменяйте настройки веб-камеры в Linux с помощью Cameractrls: настраивайте экспозицию, цвет, подавление мерцания и другие поддерживаемые параметры, а затем проверяйте совместимые видеорежимы.

Как установить PhpStorm на Linux: Toolbox, Tar.gz, Snap и AUR

Как установить PhpStorm на Linux: Toolbox, Tar.gz, Snap и AUR

Установите PhpStorm на Linux с помощью JetBrains Toolbox или автономного архива tar.gz, а также через Snap и Arch AUR. Java уже включена в комплект.

Как создать резервную копию CD-ROM в формате ISO в Linux

Как создать резервную копию CD-ROM в формате ISO в Linux

Создайте образ CD-ROM ISO в Linux с помощью GNOME Disks или dd. Определите оптический привод, отслеживайте процесс копирования, проверяйте образ и узнавайте, когда поврежденный диск или аудиодиск требует использования другого инструмента.

Как вырезать изображение в Linux с помощью GIMP

Как вырезать изображение в Linux с помощью GIMP

Удаление фона фотографии в Linux с помощью GIMP: обведите контур объекта, удалите выделенный фон, сохранив прозрачность, и экспортируйте многоразовый PNG-файл.

Как установить Cisco Packet Tracer на Linux

Как установить Cisco Packet Tracer на Linux

Загрузите Cisco Packet Tracer 9.0.1 для Ubuntu 64-бит, установите DEB-пакет с помощью APT, примите лицензионное соглашение в Терминале и войдите в систему, чтобы начать лабораторную работу.

Скачайте FlightGear бесплатно: официальное руководство по установке

Скачайте FlightGear бесплатно: официальное руководство по установке

Скачайте FlightGear бесплатно с официального сайта. Сравните пакеты для Windows, macOS и Linux, установите файлы данных и совершите свой первый полет.

Настольное приложение Google Tasks: как им пользоваться на компьютере

Настольное приложение Google Tasks: как им пользоваться на компьютере

Откройте Google Задачи в браузере, добавьте ярлык Chrome или запустите приложение, и управляйте задачами с указанием даты через Календарь и Gmail.

OKSampler: Бесплатный и простой музыкальный сэмплер для клавишных ритмов.

OKSampler: Бесплатный и простой музыкальный сэмплер для клавишных ритмов.

OKSampler сопоставляет MP3-клипы с клавишами клавиатуры и может зацикливать аудио. Узнайте, что делает эта старая бесплатная программа, на чем заканчиваются ее старые функции и что нужно проверить перед загрузкой.