Introducción
Cuando un servicio de red no está accesible, es necesario verificar la ruta por capas: estado del servicio, socket en escucha, solicitud local, regla de firewall y, finalmente, el acceso externo. Esto evita que abra puertos en el firewall para un servicio que ni siquiera está en ejecución.
En este laboratorio, un pequeño servicio HTTP escucha en el puerto TCP 8088, pero firewalld no permite el tráfico a través de ese puerto. Usted inspeccionará la ruta del servicio y añadirá la regla de firewall permanente que falta.
Comprobar el estado del servicio
En este paso, confirmará que el servicio de la aplicación se está ejecutando antes de revisar las reglas del firewall.
Acceda al directorio del proyecto y cree un espacio de trabajo.
cd /home/labex/project
mkdir -p firewall-path
Compruebe el estado del servicio.
systemctl is-active rhce-http-demo.service | tee firewall-path/service-state.txt
Lea el comando de ejecución del servicio.
systemctl show rhce-http-demo.service -p ExecStart | tee firewall-path/exec-start.txt
El servicio está activo, por lo que la siguiente pregunta es si está escuchando en el puerto esperado.
Inspeccionar el socket en escucha
En este paso, confirmará que el host está escuchando en el puerto TCP 8088.
Muestre los sockets TCP en escucha para el puerto 8088.
sudo ss -ltnp 'sport = :8088' | tee firewall-path/socket.txt
Pruebe el servicio a través de la interfaz de loopback.
curl -s http://127.0.0.1:8088/ | tee firewall-path/loopback-response.txt
El servicio responde localmente, lo que significa que la aplicación funciona correctamente.
Encontrar la regla de firewall faltante
En este paso, comprobará si el puerto del servicio está configurado en firewalld. Que un socket local esté activo no significa automáticamente que el firewall permita el tráfico hacia ese puerto.
Enumere los puertos abiertos en la zona predeterminada.
sudo firewall-cmd --list-ports | tee firewall-path/ports-before.txt
Consulte el puerto 8088/tcp.
sudo firewall-cmd --query-port=8088/tcp | tee firewall-path/query-before.txt || true
La consulta debería devolver no, lo que indica que falta la regla en firewalld.
Abrir el puerto del servicio
En este paso, añadirá una regla permanente a firewalld y recargará el firewall.
Añada la regla de puerto permanente.
sudo firewall-cmd --add-port=8088/tcp --permanent
Recargue firewalld.
sudo firewall-cmd --reload
Vuelva a consultar el puerto.
sudo firewall-cmd --query-port=8088/tcp | tee firewall-path/query-after.txt
Ahora el firewall permite el tráfico en el puerto del servicio.
Verificar la ruta completa del servicio
En este paso, verificará el servicio, el socket, la regla del firewall y la respuesta de forma conjunta.
Compruebe el estado del servicio.
systemctl is-active rhce-http-demo.service
Muestre la lista de puertos del firewall.
sudo firewall-cmd --list-ports | tee firewall-path/ports-after.txt
Solicite el servicio nuevamente.
curl -s http://127.0.0.1:8088/ | tee firewall-path/final-response.txt
La ruta de la aplicación está completa: el servicio está activo, el socket está escuchando, la regla del firewall está presente y la respuesta HTTP funciona correctamente.
Resumen
Ha verificado la ruta de un servicio por capas: estado del servicio, socket en escucha, respuesta HTTP local, detección de puerto faltante en firewalld, reparación permanente del firewall y validación final de la respuesta.



