Главная
» Как сделать
»
Открывайте только тот веб-трафик, который необходим вашему серверу SLES 15.
Открывайте только тот веб-трафик, который необходим вашему серверу SLES 15.
Пример сценария: Представьте, что администратор подготавливает вымышленный сервер SLES 15 с именем web01 для размещения небольшого общедоступного веб-сайта. Цель — разрешить входящий HTTP-трафик через TCP-порт 80, сохранив при этом доступ к существующему пути администрирования SSH. Это иллюстративный пример, а не отчет о тестировании или утверждение о том, что каждая установка SLES 15 имеет одинаковые имена интерфейсов или служб.
В SLES 15 firewalldиспользуется стандартная структура брандмауэра, которая firewall-cmdуправляет им. Сначала определите активную зону и проверьте удаленный доступ; затем добавьте в эту зону минимально необходимую службу в постоянной конфигурации и перезагрузите систему. В руководстве SUSE по безопасности и усилению защиты SLES 15 SP7 описана эта зональная модель и различие между правилами, действующими во время выполнения, и постоянными правилами. Эти шаги предполагают, что firewalld установлен и запущен; для более старых обновленных систем может потребоваться отдельная проверка миграции.
1. Перед изменением правил проверьте службу и активную зону.
Подключитесь через консоль сервера или сеанс управления, который можно восстановить в случае прерывания сетевого доступа. Если вы подключены по SSH, держите этот сеанс открытым во время внесения изменений в настройки брандмауэра. Убедитесь, что firewalld запущен, и проверьте, какой зоне принадлежит интерфейс:
Первая команда должна вывести сообщение running. Команда active-zones перечисляет зоны, которым назначены интерфейсы или исходные адреса; она может отображать более одного. В вымышленном примере web01 предположим, что она сообщает publicоб интерфейсе ens192. Используйте зону, прикрепленную к входящему сетевому интерфейсу, в последующих командах. Не следует предполагать, что интерфейс называется eth0, и не следует предполагать, publicчто он активен только потому, что это распространенное значение по умолчанию.
На иллюстрации показан вид терминала для первоначальной проверки: firewalld сообщает о запуске, а ens192 отображается в публичной зоне.
Если служба не запущена, проверьте ее состояние перед запуском: sudo systemctl status firewalld. В стандартных установках SLES 15 firewalld установлен и включен по умолчанию, но профили образов, обновления или локальная политика могут отличаться. Если он установлен, но остановлен, запускайте и включайте его только после подтверждения того, что его текущая политика сохранит необходимый вам доступ: sudo systemctl enable --now firewalld. На удаленно управляемом хосте подтвердите доступ к консоли и ваши разрешения SSH перед активацией брандмауэра, правила которого неизвестны.
2. Подтвердите определение службы и сохраните SSH.
Служба firewalld — это именованный набор портов и протоколов. Перед открытием проверьте локальное определение:
В SLES предопределенная httpслужба соответствует TCP-порту 80. Список зон позволяет проверить разрешенные в данный момент службы и порты. Замените publicна активную зону, которую вы нашли. Если вы администрируете сервер через SSH, убедитесь, sshчто он разрешен в этой зоне, прежде чем продолжить. Поведение при установке SLES и существующая политика могут различаться, поэтому проверяйте, а не полагайтесь на предположения. Если установленный демон SSH прослушивает нестандартный порт, универсальная sshзапись службы может ему не соответствовать; сначала подтвердите фактический порт прослушивания демона и существующую политику брандмауэра.
Пример проверки сервиса: в определении HTTP-сервиса указан TCP-порт 80.
3. Добавьте HTTP-запрос навсегда, затем загрузите сохраненные правила.
Firewalld поддерживает отдельные конфигурации во время выполнения и постоянные конфигурации. Обычная команда изменяет только активные правила во время выполнения; --permanentона записывает сохраненную конфигурацию, но не активирует это изменение немедленно. Для web01 добавьте HTTP-сервис в зону, которой принадлежит его публичный интерфейс:
Используйте --zoneявное указание, чтобы правило не попало в непредусмотренную зону по умолчанию. Перезагрузка применяет постоянные правила к среде выполнения. Несохраненные изменения, внесенные только во время выполнения, отбрасываются во время перезагрузки, поэтому проверьте и сохраните любые временные правила, которые вам намеренно необходимы, прежде чем запускать их. Чтобы протестировать службу перед тем, как сделать ее постоянной, вы можете сначала запустить ее sudo firewall-cmd --zone=public --add-service=httpбез --permanent; если это работает, добавьте постоянное правило и перезагрузите. Тест, проведенный только во время выполнения, теряется после перезагрузки или перезапуска брандмауэра.
Показательная последовательность команд: сохранить разрешение HTTP в публичном доступе, затем перезагрузить firewalld, чтобы применить его.
Если вам нужен один порт, а не предопределенная служба, укажите как порт, так и протокол, например --add-port=8080/tcp. Делайте это только тогда, когда приложение фактически прослушивает этот порт. Разрешение брандмауэра не запускает веб-сервер, не создает правило группы безопасности облака и не настраивает вышестоящий маршрутизатор; все сетевые уровни должны разрешать трафик.
4. Проверьте права доступа и удалите правила, которые вам больше не нужны.
Результат должен включать httpоба списка служб, а проверка конфигурации должна завершиться без ошибок. Также убедитесь, что приложение прослушивает запросы локально, например sudo ss -lntp, с помощью команды `npm run src`, и протестируйте сайт с клиентского компьютера в целевой сети. Список настроек брандмауэра подтверждает наличие правила, а не сквозную доступность: DNS, облачный брандмауэр, маршрутизация и сам веб-сервер могут блокировать или отклонять запрос.
Примерный результат проверки: HTTP отображается среди служб общедоступной зоны, а SSH остается в списке.
Если HTTP больше не требуется, удалите сохраненное правило и перезагрузите его: sudo firewall-cmd --permanent --zone=public --remove-service=http, а затем sudo firewall-cmd --reload. После этого еще раз проверьте списки времени выполнения и постоянные списки. Избегайте сброса всех правил или переключения на доверенную зону для решения одной проблемы доступа; такие масштабные изменения могут привести к раскрытию доступа к несвязанным сервисам.