TAG 07: Der Netzwerk-Navigator

LinuxBeginner
Jetzt üben

Einführung

Willkommen, Netzwerk-Navigator! Du wurdest gerade als Junior-Systemadministrator bei einem schnell wachsenden Technologie-Startup eingestellt. Heute Morgen ist ein kritischer Webserver ausgefallen. Benutzer berichten, dass sie nicht auf das interne Portal des Unternehmens zugreifen können.

Dein leitender Administrator steckt in einem Meeting fest und hat dich mit der ersten Diagnose beauftragt. Jetzt ist deine Chance zu glänzen! Deine Mission ist es, den Netzwerkstatus des Servers systematisch zu untersuchen, die Ursache zu identifizieren und die Konnektivität wiederherzustellen. Bringen wir diesen Server wieder online!

Wichtiger Hinweis
Die kommenden Aufgaben könnten den Umfang des Kurses Quick Start with Linux überschreiten.
Falls du während der Challenge auf Schwierigkeiten stößt:
  1. Überspringe die Aufgabe vorübergehend und fahre mit den nachfolgenden geführten Labs im Linux-Lernpfad fort.
  2. Diskutiere mit Labby oder schau dir die Lösung an.

Status der Netzwerkschnittstelle prüfen

Dein erster Schritt als Netzwerk-Navigator besteht darin, grundlegende Informationen zu sammeln. Wird die Netzwerkhardware überhaupt erkannt und ist sie aktiv? Du musst den Status aller Netzwerkschnittstellen auf dem Server überprüfen. Das moderne Werkzeug für diese Aufgabe ist der Befehl ip.

Aufgaben

  • Verwende den Befehl ip, um den Status und die Konfiguration aller Netzwerkschnittstellen anzuzeigen.

Anforderungen

  • Du musst den Befehl ip addr verwenden, um diese Überprüfung durchzuführen.

Beispiele

Nachdem du den Befehl ausgeführt hast, solltest du eine Ausgabe sehen, die Netzwerkschnittstellen wie lo (Loopback) und eth0 (oder ähnlich) anzeigt. Achte auf den Status deiner Hauptschnittstelle – er sollte UP anzeigen, um zu signalisieren, dass sie aktiv ist.

## Erwartetes Ausgabeformat (Schnittstellennamen können variieren)
1: lo: 65536 qdisc noqueue state UNKNOWN group default qlen 1000 < LOOPBACK,UP,LOWER_UP > mtu
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: 1500 qdisc mq state UP group default qlen 1000 < BROADCAST,MULTICAST,UP,LOWER_UP > mtu
link/ether 00:16:3e:04:b0:40 brd ff:ff:ff:ff:ff:ff
inet 172.16.50.108/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
valid_lft 1892159216sec preferred_lft 1892159216sec

Hinweise

  • Der Befehl ip ist ein mächtiges Werkzeug mit vielen Unterbefehlen. Der Befehl zur Verwaltung von Adressen lautet addr.
  • Du kannst ip addr show oder den kürzeren Alias ip addr verwenden.

IP-Adresskonfiguration verifizieren

Okay, die Schnittstelle ist UP. Das ist ein guter Anfang. Aber hat sie auch eine IP-Adresse? Eine Schnittstelle ohne IP-Adresse kann nicht im Netzwerk kommunizieren. Während ip addr dies anzeigt, verwenden wir zur Sicherheit noch einen weiteren klassischen Befehl: ifconfig. Es ist immer gut, mehrere Werkzeuge für dieselbe Aufgabe zu kennen.

Aufgaben

  • Verwende den Befehl ifconfig, um die IP-Adresskonfiguration zu verifizieren.

Anforderungen

  • Du musst den Befehl ifconfig verwenden.

Beispiele

Die Ausgabe sollte deine Netzwerkschnittstellen mit ihren IP-Adressen anzeigen. Suche nach dem Feld inet unter deiner Hauptnetzwerkschnittstelle (wie eth0), um die IP-Konfiguration zu bestätigen.

## Erwartete Ausgabe mit IP-Konfiguration
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.50.108  netmask 255.255.255.0  broadcast 172.16.50.255
        ether 00:16:3e:04:b0:40  txqueuelen 1000  (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0

Hinweise

  • Der Befehl ifconfig ist Teil des Pakets net-tools, das wir bereits für dich installiert haben.
  • Wenn du ifconfig ohne Argumente ausführst, werden alle aktiven Schnittstellen angezeigt.

Konnektivität zu Remote-Hosts testen

Der Server hat eine aktive Schnittstelle und eine IP-Adresse. Der nächste logische Schritt ist zu prüfen, ob er die Außenwelt erreichen kann. Ein Fehler hier könnte auf ein Problem mit dem Gateway oder den DNS-Einstellungen hinweisen. Der Befehl ping ist das perfekte Werkzeug für diesen Test.

Aufgaben

  • Teste die Konnektivität des Servers zum Internet, indem du genau 3 ICMP-Pakete an den öffentlichen DNS-Server von Google unter 8.8.8.8 sendest.

Anforderungen

  • Du musst den Befehl ping verwenden.
  • Du musst die Anzahl der gesendeten Pakete auf 3 begrenzen.
  • Die Ziel-IP-Adresse muss 8.8.8.8 sein.

Beispiele

Wenn die Konnektivität funktioniert, solltest du Antworten von der Ziel-IP-Adresse mit Zeitinformationen sehen. Die Zusammenfassung am Ende sollte 3 übertragene und 3 empfangene Pakete mit 0% Paketverlust anzeigen.

## Erwartetes erfolgreiches Ausgabemuster
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=4.33 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=4.30 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=119 time=4.30 ms

--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 4.298/4.309/4.329/0.014 ms

Hinweise

  • Der Befehl ping läuft unendlich lange, es sei denn, du weist ihn an zu stoppen.
  • Verwende die Option -c, um die Anzahl (count) der zu sendenden Pakete anzugeben.

Offene Netzwerkports untersuchen

Die Konnektivität ist gut! Warum ist das interne Portal dann immer noch nicht erreichbar? Das Problem könnte bei der Anwendung selbst liegen. Läuft der Webserver-Prozess tatsächlich und wartet auf Verbindungen am richtigen Port? Der Befehl ss (Socket Statistics) ist ein modernes und schnelles Werkzeug, um dies zu untersuchen.

Aufgaben

  • Das interne Portal sollte auf Port 8000 laufen. Verwende den Befehl ss, um zu prüfen, ob ein Prozess auf TCP-Verbindungen am Port 8000 wartet.

Anforderungen

  • Du musst den Befehl ss verwenden.
  • Dein Befehl sollte so aufgebaut sein, dass er lauschende TCP-Sockets anzeigt.

Beispiele

Wenn ein Prozess auf Port 8000 lauscht, solltest du eine Ausgabe sehen, die Informationen über den lauschenden Socket enthält. Suche nach einer Zeile, die Port 8000 in der Spalte "Local Address" anzeigt.

## Erwartete Ausgabe, die einen lauschenden Prozess auf Port 8000 zeigt
LISTEN 0      5            0.0.0.0:8000       0.0.0.0:*    users:(("python3",pid=3765,fd=3))

Hinweise

  • Der Befehl ss hat mehrere nützliche Flags:
    • -t: Zeige TCP-Sockets an.
    • -l: Zeige lauschende (listening) Sockets an.
    • -n: Zeige numerische Portnummern anstelle von Dienstnamen.
    • -p: Zeige den Prozess an, der den Socket verwendet.
  • Du kannst diese Flags kombinieren, z. B. ss -tlnp.
  • Um einen bestimmten Port zu finden, kannst du die Ausgabe von ss an den Befehl grep weiterleiten. Zum Beispiel: ss -tlnp | grep 8000.

Grundlegende Firewall-Regeln konfigurieren

Du hast alles bestätigt: Die Schnittstelle ist aktiv, die IP ist gesetzt, die Internetverbindung funktioniert und die Anwendung lauscht am richtigen Port. Es bleibt nur noch ein Hauptverdächtiger: die Firewall. Es ist wahrscheinlich, dass sie den eingehenden Datenverkehr zum Portal blockiert. Deine letzte Aufgabe ist es, die Firewall so zu konfigurieren, dass der Datenverkehr das Portal wieder erreichen kann. Wir verwenden ufw (Uncomplicated Firewall), ein benutzerfreundliches Frontend zur Verwaltung von Firewall-Regeln.

Aufgaben

  1. Füge eine Firewall-Regel hinzu, um eingehenden Datenverkehr auf Port 8000 zu erlauben.
  2. Füge eine Firewall-Regel hinzu, um eingehenden SSH-Datenverkehr (Port 22) zu erlauben.
  3. Aktiviere die Firewall, um die neuen Regeln anzuwenden.

Anforderungen

  • Du musst für alle Vorgänge den Befehl ufw verwenden.
  • Du musst sudo verwenden, da das Ändern von Firewall-Regeln administrative Privilegien erfordert.

Beispiele

Nach der Konfiguration der Firewall-Regeln sollte die Ausführung von sudo ufw status zeigen, dass die Firewall aktiv ist und Port 8000 sowie SSH (Port 22) erlaubt sind.

## Erwartete Ausgabe nach Aktivierung der Firewall mit Port 8000 und SSH erlaubt
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
8000                       ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
8000 (v6)                  ALLOW       Anywhere (v6)

Beim Hinzufügen der Regel solltest du sehen:

Rules updated
Rules updated (v6)

Beim Aktivieren der Firewall solltest du sehen:

Firewall is active and enabled on system startup

Hinweise

  • Die Syntax für ufw ist sehr einfach. Um Datenverkehr auf einem Port zu erlauben, verwende ufw allow <port>.
  • Du kannst Datenverkehr auf Port 8000 mit ufw allow 8000 erlauben.
  • Du kannst SSH-Datenverkehr spezifisch mit ufw allow ssh oder ufw allow 22 erlauben.
  • Kritische Warnung: Wenn du den SSH-Port (22) nicht ordnungsgemäß öffnest, schlägt die Überprüfung fehl, da die Überprüfung für die SSH-Konnektivität auf diesen Port angewiesen ist.
  • Wichtige Warnung: Ändere die Firewall-Regeln für andere Ports nicht willkürlich, da dies zu Fehlern bei der virtuellen Maschine führen kann.
  • Nachdem du deine Regeln hinzugefügt hast, musst du die Firewall mit ufw enable aktivieren.

Zusammenfassung

Hervorragende Arbeit, Navigator! Durch das systematische Überprüfen der Netzwerkschnittstellen, das Verifizieren der IP-Konfiguration, das Testen der Konnektivität, das Untersuchen offener Ports und schließlich das Konfigurieren der Firewall hast du das Problem erfolgreich diagnostiziert und gelöst. Das interne Portal ist wieder online und du hast dir den Respekt deines Teams verdient.

Du hast ein solides Verständnis grundlegender Linux-Netzwerk-Tools wie ip, ifconfig, ping, ss und ufw bewiesen. Dieser logische, schrittweise Prozess zur Fehlerbehebung ist eine entscheidende Fähigkeit für jeden Systemadministrator und wird in deiner Karriere von unschätzbarem Wert sein. Arbeite weiter an deinen Fähigkeiten!

✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben✨ Lösung prüfen und üben