Einführung
Wenn ein Netzwerkdienst nicht erreichbar ist, sollten Sie den Pfad schichtweise überprüfen: Servicestatus, lauschender Socket, lokale Anfrage, Firewall-Regel und schließlich der Zugriff von außen. Dies verhindert, dass Sie Firewall-Ports für einen Dienst öffnen, der gar nicht aktiv ist.
In diesem Lab lauscht ein kleiner HTTP-Dienst auf dem TCP-Port 8088, aber firewalld lässt diesen Port nicht zu. Sie werden den Service-Pfad untersuchen und die fehlende dauerhafte Firewall-Regel hinzufügen.
Servicestatus überprüfen
In diesem Schritt bestätigen Sie, dass der Anwendungsdienst läuft, bevor Sie sich die Firewall-Regeln ansehen.
Wechseln Sie in das Projektverzeichnis und erstellen Sie einen Arbeitsbereich.
cd /home/labex/project
mkdir -p firewall-path
Überprüfen Sie den Servicestatus.
systemctl is-active rhce-http-demo.service | tee firewall-path/service-state.txt
Lesen Sie den Befehl zum Starten des Dienstes aus.
systemctl show rhce-http-demo.service -p ExecStart | tee firewall-path/exec-start.txt
Der Dienst ist aktiv. Die nächste Frage ist also, ob er auf dem erwarteten Port lauscht.
Lauschenden Socket untersuchen
In diesem Schritt bestätigen Sie, dass der Host auf dem TCP-Port 8088 lauscht.
Zeigen Sie die lauschenden TCP-Sockets für Port 8088 an.
sudo ss -ltnp 'sport = :8088' | tee firewall-path/socket.txt
Testen Sie den Dienst über Loopback.
curl -s http://127.0.0.1:8088/ | tee firewall-path/loopback-response.txt
Der Dienst antwortet lokal, die Anwendung selbst funktioniert also einwandfrei.
Fehlende Firewall-Regel finden
In diesem Schritt überprüfen Sie firewalld auf den Service-Port. Ein lokaler Socket bedeutet nicht automatisch, dass die Firewall den Port zulässt.
Listen Sie die offenen Ports in der Standardzone auf.
sudo firewall-cmd --list-ports | tee firewall-path/ports-before.txt
Fragen Sie den Port 8088/tcp ab.
sudo firewall-cmd --query-port=8088/tcp | tee firewall-path/query-before.txt || true
Die Abfrage sollte no zurückgeben, was bedeutet, dass die Regel in firewalld fehlt.
Service-Port öffnen
In diesem Schritt fügen Sie eine dauerhafte firewalld-Regel hinzu und laden die Firewall neu.
Fügen Sie die dauerhafte Port-Regel hinzu.
sudo firewall-cmd --add-port=8088/tcp --permanent
Laden Sie firewalld neu.
sudo firewall-cmd --reload
Fragen Sie den Port erneut ab.
sudo firewall-cmd --query-port=8088/tcp | tee firewall-path/query-after.txt
Die Firewall lässt nun den Service-Port zu.
Vollständigen Service-Pfad verifizieren
In diesem Schritt verifizieren Sie den Dienst, den Socket, die Firewall-Regel und die Antwort gemeinsam.
Überprüfen Sie den Servicestatus.
systemctl is-active rhce-http-demo.service
Zeigen Sie die Liste der Firewall-Ports an.
sudo firewall-cmd --list-ports | tee firewall-path/ports-after.txt
Fragen Sie den Dienst erneut ab.
curl -s http://127.0.0.1:8088/ | tee firewall-path/final-response.txt
Der Anwendungspfad ist nun vollständig: Dienst aktiv, Socket lauscht, Firewall-Regel vorhanden und HTTP-Antwort erfolgreich.
Zusammenfassung
Sie haben einen Service-Pfad schichtweise überprüft: Servicestatus, lauschender Socket, lokale HTTP-Antwort, fehlender firewalld-Port, dauerhafte Firewall-Reparatur und abschließende Validierung der Antwort.



