Inspecter le trafic et les chemins de service du pare-feu

LinuxBeginner
Pratiquer maintenant

Introduction

Lorsqu'un service réseau est inaccessible, vérifiez le chemin par couches : état du service, socket en écoute, requête locale, règle de pare-feu, puis accès final. Cela vous évite d'ouvrir des ports de pare-feu pour un service qui n'est même pas en cours d'exécution.

Dans ce laboratoire, un petit service HTTP écoute sur le port TCP 8088, mais firewalld n'autorise pas ce port. Vous allez inspecter le chemin du service et ajouter la règle de pare-feu permanente manquante.

Vérifier l'état du service

Dans cette étape, vous confirmerez que le service de l'application est en cours d'exécution avant d'examiner les règles du pare-feu.

Accédez au répertoire du projet et créez un espace de travail.

cd /home/labex/project
mkdir -p firewall-path

Vérifiez l'état du service.

systemctl is-active rhce-http-demo.service | tee firewall-path/service-state.txt

Lisez la commande du service.

systemctl show rhce-http-demo.service -p ExecStart | tee firewall-path/exec-start.txt

Le service est actif, la question suivante est donc de savoir s'il écoute sur le port attendu.

Inspecter le socket en écoute

Dans cette étape, vous confirmerez que l'hôte écoute bien sur le port TCP 8088.

Affichez les sockets TCP en écoute pour le port 8088.

sudo ss -ltnp 'sport = :8088' | tee firewall-path/socket.txt

Testez le service via l'interface de bouclage (loopback).

curl -s http://127.0.0.1:8088/ | tee firewall-path/loopback-response.txt

Le service répond localement, l'application elle-même fonctionne donc correctement.

Trouver la règle de pare-feu manquante

Dans cette étape, vous vérifierez si le port du service est configuré dans firewalld. Un socket local ne signifie pas automatiquement que le pare-feu autorise le port.

Listez les ports ouverts dans la zone par défaut.

sudo firewall-cmd --list-ports | tee firewall-path/ports-before.txt

Interrogez le port 8088/tcp.

sudo firewall-cmd --query-port=8088/tcp | tee firewall-path/query-before.txt || true

La requête devrait renvoyer no, ce qui signifie que la règle est absente de firewalld.

Ouvrir le port du service

Dans cette étape, vous ajouterez une règle firewalld permanente et rechargerez le pare-feu.

Ajoutez la règle de port permanente.

sudo firewall-cmd --add-port=8088/tcp --permanent

Rechargez firewalld.

sudo firewall-cmd --reload

Interrogez à nouveau le port.

sudo firewall-cmd --query-port=8088/tcp | tee firewall-path/query-after.txt

Le pare-feu autorise désormais le port du service.

Vérifier le chemin complet du service

Dans cette étape, vous vérifierez ensemble le service, le socket, la règle de pare-feu et la réponse.

Vérifiez l'état du service.

systemctl is-active rhce-http-demo.service

Affichez la liste des ports du pare-feu.

sudo firewall-cmd --list-ports | tee firewall-path/ports-after.txt

Sollicitez à nouveau le service.

curl -s http://127.0.0.1:8088/ | tee firewall-path/final-response.txt

Le chemin de l'application est complet : le service est actif, le socket est en écoute, la règle de pare-feu est présente et la réponse HTTP fonctionne.

Résumé

Vous avez vérifié le chemin d'un service par couches : état du service, socket en écoute, réponse HTTP locale, port firewalld manquant, réparation permanente du pare-feu et validation finale de la réponse.