TAG 07: Der Netzwerk-Navigator

LinuxBeginner
Jetzt üben

Einführung

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

Ihr leitender Administrator ist in einem Meeting festgefahren und hat Sie mit der ersten Diagnose beauftragt. Das ist Ihre Chance zu glänzen! Ihre Mission ist es, den Netzwerkstatus des Servers systematisch zu untersuchen, die Ursache zu finden und die Verbindung wiederherzustellen. Bringen wir diesen Server wieder online!

Wichtiger Hinweis
Die folgenden Aufgaben können über den Umfang des Kurses Quick Start with Linux hinausgehen.
Falls Sie während der Herausforderung auf Schwierigkeiten stoßen:
  1. Überspringen Sie die Aufgabe vorübergehend und fahren Sie mit den nachfolgenden Guided Labs im Linux-Lernpfad fort.
  2. Tauschen Sie sich mit Labby aus oder sehen Sie sich die Lösung an.

Status der Netzwerkschnittstellen prüfen

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

Aufgaben

  • Verwenden Sie den ip-Befehl, um den Status und die Konfiguration aller Netzwerkschnittstellen anzuzeigen.

Anforderungen

  • Sie müssen den Befehl ip addr verwenden, um diese Prüfung durchzuführen.

Beispiele

Nachdem Sie den Befehl ausgeführt haben, sollten Sie eine Ausgabe sehen, die Netzwerkschnittstellen wie lo (Loopback) und eth0 (oder ähnlich) auflistet. Achten Sie auf den Status Ihrer Hauptschnittstelle – dort sollte UP stehen, was bedeutet, 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 ip-Befehl ist ein mächtiges Werkzeug mit vielen Unterbefehlen. Der Befehl zur Verwaltung von Adressen lautet addr.
  • Sie können ip addr show oder das kürzere Alias ip addr verwenden.

Verifizierung der IP-Adresskonfiguration

Schön, 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. Obwohl ip addr dies bereits anzeigt, verwenden wir zur doppelten Kontrolle einen weiteren Klassiker: ifconfig. Es ist immer gut, mehrere Werkzeuge für dieselbe Aufgabe zu kennen.

Aufgaben

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

Anforderungen

  • Sie müssen den Befehl ifconfig verwenden.

Beispiele

Die Ausgabe sollte Ihre Netzwerkschnittstellen zusammen mit ihren IP-Adressen anzeigen. Suchen Sie nach dem Feld inet unter Ihrer Hauptnetzwerkschnittstelle (z. B. 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 Sie vorinstalliert haben.
  • Wenn Sie ifconfig ohne Argumente ausführen, werden alle aktiven Schnittstellen angezeigt.

Testen der Konnektivität zu entfernten Hosts

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 an dieser Stelle könnte auf ein Problem mit dem Gateway oder den DNS-Einstellungen hindeuten. Der Befehl ping ist das perfekte Werkzeug für diesen Test.

Aufgaben

  • Testen Sie die Internetverbindung des Servers, indem Sie genau 3 ICMP-Pakete an den öffentlichen DNS-Server von Google unter 8.8.8.8 senden.

Anforderungen

  • Sie müssen den Befehl ping verwenden.
  • Sie müssen die Anzahl der gesendeten Pakete auf 3 begrenzen.
  • Die Ziel-IP-Adresse muss 8.8.8.8 sein.

Beispiele

Wenn die Verbindung funktioniert, sollten Sie Antworten von der Ziel-IP-Adresse mit Zeitangaben sehen. Die Zusammenfassung am Ende sollte 3 gesendete 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 normalerweise unendlich weiter, bis Sie ihn stoppen.
  • Verwenden Sie die Option -c, um die Anzahl (count) der zu sendenden Pakete festzulegen.

Offene Netzwerk-Ports inspizieren

Die Verbindung steht! 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 "lauscht" er auf dem richtigen Port auf Verbindungen? Der Befehl ss (Socket Statistics) ist ein modernes und schnelles Werkzeug, um dies zu untersuchen.

Aufgaben

  • Das interne Portal soll auf Port 8000 laufen. Verwenden Sie den Befehl ss, um zu prüfen, ob ein Prozess auf TCP-Verbindungen an Port 8000 wartet.

Anforderungen

  • Sie müssen den Befehl ss verwenden.
  • Ihr Befehl sollte so aufgebaut sein, dass er lauschende (listening) TCP-Sockets anzeigt.

Beispiele

Wenn ein Prozess auf Port 8000 lauscht, sollten Sie eine Ausgabe sehen, die Informationen über den lauschenden Socket enthält. Suchen Sie 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: Zeigt TCP-Sockets an.
    • -l: Zeigt lauschende (listening) Sockets an.
    • -n: Zeigt numerische Portnummern anstelle von Dienstnamen an.
    • -p: Zeigt den Prozess an, der den Socket verwendet.
  • Sie können diese Flags kombinieren, z. B. ss -tlnp.
  • Um einen bestimmten Port zu finden, können Sie die Ausgabe von ss an den Befehl grep weiterleiten. Beispiel: ss -tlnp | grep 8000.

Konfiguration grundlegender Firewall-Regeln

Sie haben alles bestätigt: Die Schnittstelle ist aktiv, die IP ist gesetzt, die Internetverbindung funktioniert und die Anwendung lauscht auf dem richtigen Port. Es bleibt nur noch ein Hauptverdächtiger: die Firewall. Wahrscheinlich blockiert sie den eingehenden Datenverkehr zum Portal. Ihre letzte Aufgabe ist es, die Firewall so zu konfigurieren, dass der Zugriff auf das Portal verweigert wird. Wir verwenden ufw (Uncomplicated Firewall), ein benutzerfreundliches Frontend zur Verwaltung von Firewall-Regeln.

Aufgaben

  1. Fügen Sie eine Firewall-Regel hinzu, um eingehenden Datenverkehr auf Port 8000 zu verweigern (deny).
  2. Fügen Sie eine Firewall-Regel hinzu, um eingehenden SSH-Verkehr (Port 22) zu erlauben (allow).
  3. Aktivieren Sie die Firewall, um die neuen Regeln anzuwenden.

Anforderungen

  • Sie müssen für alle Operationen den Befehl ufw verwenden.
  • Sie müssen sudo verwenden, da das Ändern von Firewall-Regeln Administratorrechte erfordert.

Beispiele

Nach der Konfiguration der Firewall-Regeln sollte sudo ufw status anzeigen, dass die Firewall aktiv ist, Port 8000 verweigert wird und SSH (Port 22) erlaubt ist.

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

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

Beim Hinzufügen der Regel sollten Sie sehen:

Rules updated
Rules updated (v6)

Beim Aktivieren der Firewall sollten Sie sehen:

Firewall is active and enabled on system startup

Hinweise

  • Die Syntax für ufw ist sehr intuitiv. Um Verkehr auf einem Port zu verweigern, nutzen Sie ufw deny <port>.
  • Sie können den Verkehr auf Port 8000 mit ufw deny 8000 blockieren.
  • SSH-Verkehr erlauben Sie gezielt mit ufw allow ssh oder ufw allow 22.
  • Kritischer Warnhinweis: Wenn Sie den SSH-Port (22) nicht explizit öffnen, wird die Validierung fehlschlagen, da das System für die Überprüfung auf eine SSH-Verbindung angewiesen ist.
  • Wichtiger Warnhinweis: Ändern Sie keine Firewall-Regeln für andere Ports willkürlich, da dies zum Ausfall der Online-VM führen kann.
  • Nach dem Hinzufügen Ihrer Regeln müssen Sie die Firewall mit ufw enable aktivieren.

Zusammenfassung

Hervorragende Arbeit, Navigator! Durch die systematische Überprüfung der Netzwerkschnittstellen, die Verifizierung der IP-Konfiguration, das Testen der Konnektivität, die Inspektion offener Ports und schließlich die Konfiguration der Firewall haben Sie das Problem erfolgreich diagnostiziert und gelöst. Das interne Portal ist (theoretisch) wieder unter Ihrer Kontrolle, und Sie haben sich den Respekt Ihres Teams verdient.

Sie haben einen sicheren Umgang mit grundlegenden Linux-Netzwerkwerkzeugen wie ip, ifconfig, ping, ss und ufw bewiesen. Dieser logische, schrittweise Prozess der Fehlersuche ist eine entscheidende Fähigkeit für jeden Systemadministrator und wird in Ihrer Karriere von unschätzbarem Wert sein. Machen Sie weiter so!

✨ 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