Введение
Если сетевая служба недоступна, проверяйте путь доступа по уровням: состояние службы, прослушиваемый сокет, локальный запрос, правило брандмауэра и итоговый доступ. Это поможет избежать открытия портов в брандмауэре для службы, которая даже не прослушивает порт.
В этой лабораторной работе небольшая HTTP-служба прослушивает TCP-порт 8088, но firewalld блокирует этот порт. Вам предстоит проинспектировать путь доступа к службе и добавить недостающее постоянное правило брандмауэра.
Проверка состояния службы
На этом этапе вы подтвердите, что прикладная служба запущена, прежде чем переходить к проверке правил брандмауэра.
Перейдите в каталог проекта и создайте рабочую директорию.
cd /home/labex/project
mkdir -p firewall-path
Проверьте состояние службы.
systemctl is-active rhce-http-demo.service | tee firewall-path/service-state.txt
Прочитайте команду запуска службы.
systemctl show rhce-http-demo.service -p ExecStart | tee firewall-path/exec-start.txt
Служба активна, поэтому следующий вопрос заключается в том, прослушивает ли она ожидаемый порт.
Проверка прослушиваемого сокета
На этом этапе вы подтвердите, что хост прослушивает TCP-порт 8088.
Отобразите прослушиваемые TCP-сокеты для порта 8088.
sudo ss -ltnp 'sport = :8088' | tee firewall-path/socket.txt
Протестируйте службу через интерфейс loopback.
curl -s http://127.0.0.1:8088/ | tee firewall-path/loopback-response.txt
Служба отвечает локально, значит, само приложение работает корректно.
Поиск отсутствующего правила брандмауэра
На этом этапе вы проверите настройки firewalld для порта службы. Наличие локального сокета не означает автоматически, что брандмауэр разрешает доступ к этому порту.
Выведите список открытых портов в зоне по умолчанию.
sudo firewall-cmd --list-ports | tee firewall-path/ports-before.txt
Запросите статус порта 8088/tcp.
sudo firewall-cmd --query-port=8088/tcp | tee firewall-path/query-before.txt || true
Запрос должен вернуть no, что означает отсутствие правила в firewalld.
Открытие порта службы
На этом этапе вы добавите постоянное правило в firewalld и перезагрузите конфигурацию брандмауэра.
Добавьте правило для порта на постоянной основе.
sudo firewall-cmd --add-port=8088/tcp --permanent
Перезагрузите firewalld.
sudo firewall-cmd --reload
Снова запросите статус порта.
sudo firewall-cmd --query-port=8088/tcp | tee firewall-path/query-after.txt
Теперь брандмауэр разрешает доступ к порту службы.
Проверка полного пути доступа к службе
На этом этапе вы комплексно проверите службу, сокет, правило брандмауэра и получение ответа.
Проверьте состояние службы.
systemctl is-active rhce-http-demo.service
Выведите список портов брандмауэра.
sudo firewall-cmd --list-ports | tee firewall-path/ports-after.txt
Снова отправьте запрос к службе.
curl -s http://127.0.0.1:8088/ | tee firewall-path/final-response.txt
Путь доступа к приложению полностью восстановлен: служба активна, сокет прослушивается, правило брандмауэра добавлено, а HTTP-ответ получен успешно.
Резюме
Вы проверили путь доступа к службе по уровням: состояние службы, прослушиваемый сокет, локальный HTTP-ответ, поиск отсутствующего порта в firewalld, внесение постоянных изменений в брандмауэр и финальная проверка работоспособности.



