Datenverkehr und Firewall-Service-Pfade untersuchen

LinuxBeginner
Jetzt üben

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.