Linux Netzwerküberwachung

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Dieses Lab konzentriert sich auf die Netzwerküberwachung in Linux mithilfe des Befehlszeilentools netstat. Die Netzwerküberwachung ist für Systemadministratoren unerlässlich, um die Verbindungen, Dienste und Verkehrsmuster auf ihren Systemen zu verstehen.

Im Laufe dieses Labs werden Sie lernen, wie Sie das netstat-Werkzeug verwenden, um aktive Netzwerkverbindungen, lauschende Dienste und Netzwerkschnittstellenstatistiken anzuzeigen. Diese Fähigkeiten sind grundlegend für die Fehlerbehebung bei Netzwerkproblemen, die Überwachung der Systemleistung und die Gewährleistung der Netzwerksicherheit.

Am Ende dieses Labs können Sie netstat effektiv nutzen, um Einblicke in die Netzwerkaktivitäten auf einem Linux-System zu erhalten. Dies ist eine wertvolle Fähigkeit für jeden Systemadministrator oder IT-Fachmann.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 100% ist. Es hat eine positive Bewertungsrate von 100% von den Lernenden erhalten.

Netzwerkverbindungen mit netstat verstehen

Der Befehl netstat ist ein leistungsstarkes Netzwerktool, das Netzwerkverbindungen, Routingtabellen, Schnittstellenstatistiken und vieles mehr anzeigt. In diesem Schritt lernen Sie, wie Sie netstat verwenden, um aktive Netzwerkverbindungen anzuzeigen.

Zunächst wechseln wir in das Projektverzeichnis, in dem wir arbeiten werden:

cd /home/labex/project

Was ist netstat?

Der Befehl netstat (Netzwerkstatistiken) zeigt verschiedene netzwerkbezogene Informationen wie Netzwerkverbindungen, Routingtabellen, Schnittstellenstatistiken und vieles mehr an. Es ist ein wertvolles Werkzeug, um die Netzwerkaktivitäten Ihres Systems zu verstehen.

Anzeigen aktiver Verbindungen

Führen wir den netstat-Befehl mit bestimmten Optionen aus, um aktive TCP-Verbindungen anzuzeigen:

netstat -nat > connections.txt

In diesem Befehl:

  • -n zeigt Adressen und Portnummern in numerischer Form an, anstatt sie in Hostnamen oder Dienstnamen aufzulösen
  • -a zeigt alle Sockets an (sowohl lauschende als auch nicht-lauschende)
  • -t zeigt nur TCP-Verbindungen an
  • > connections.txt leitet die Ausgabe in eine Datei namens connections.txt um

Nun lassen wir uns den Inhalt der von uns erstellten Datei anzeigen:

cat connections.txt

Die Ausgabe sollte in etwa so aussehen:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN

Die Ausgabe verstehen

  • Proto: Das verwendete Protokoll (in diesem Fall TCP)
  • Recv-Q: Die Anzahl der Bytes, die nicht von dem an diesen Socket angeschlossenen Benutzerprogramm kopiert wurden
  • Send-Q: Die Anzahl der Bytes, die nicht vom Remotehost bestätigt wurden
  • Local Address: Die Adresse und Portnummer des lokalen Endes des Sockets
  • Foreign Address: Die Adresse und Portnummer des Remoteendes des Sockets
  • State: Der Zustand des Sockets (LISTEN, ESTABLISHED usw.)

Der Zustand LISTEN zeigt an, dass der Dienst läuft und auf eingehende Verbindungen an diesem bestimmten Port wartet.

Überwachung von lauschenden Diensten

In diesem Schritt lernen Sie, wie Sie feststellen können, welche Dienste auf Ihrem System auf eingehende Verbindungen warten. Diese Informationen sind für die Sicherheitsüberprüfung und die Fehlerbehebung von netzwerkbezogenen Problemen von entscheidender Bedeutung.

Identifizierung lauschender Dienste

Verwenden wir den netstat-Befehl, um speziell nach Diensten zu suchen, die sich im LISTEN-Zustand befinden:

netstat -natu | grep LISTEN > listening_services.txt

In diesem Befehl:

  • -n zeigt numerische Adressen an
  • -a zeigt alle Sockets an
  • -t berücksichtigt TCP-Verbindungen
  • -u berücksichtigt UDP-Verbindungen
  • | grep LISTEN filtert die Ausgabe, um nur Zeilen anzuzeigen, die "LISTEN" enthalten
  • > listening_services.txt speichert die Ausgabe in einer Datei

Nun lassen wir uns den Inhalt der Datei anzeigen:

cat listening_services.txt

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN

Verständnis lauschender Dienste

Jede Zeile in der Ausgabe repräsentiert einen Dienst, der derzeit Verbindungen akzeptiert:

  • Dienste, die auf 0.0.0.0 lauschen, akzeptieren Verbindungen von jeder Netzwerkschnittstelle
  • Dienste, die auf 127.0.0.1 lauschen, akzeptieren nur Verbindungen vom lokalen Rechner
  • Dienste, die auf ::: lauschen, sind IPv6-Adressen, die Verbindungen von jeder Netzwerkschnittstelle akzeptieren

Die Portnummern (z. B. 22 für SSH oder 631 für den CUPS-Druckdienst) geben an, welcher Dienst lauscht. Beispielsweise:

  • Port 22: SSH-Dienst
  • Port 80: HTTP (Web)-Dienst
  • Port 443: HTTPS-Dienst
  • Port 631: CUPS-Druckdienst

Diese Informationen helfen Ihnen zu verstehen, welche Dienste auf Ihrem System zugänglich sind, was für Sicherheitsbewertungen und die Fehlerbehebung von großem Wert ist.

Analyse von Netzwerkschnittstellenstatistiken

In diesem Schritt lernen Sie, wie Sie Statistiken für Ihre Netzwerkschnittstellen anzeigen können. Diese Statistiken liefern wertvolle Informationen über die Leistung und Nutzung Ihrer Netzwerkschnittstellen.

Anzeigen von Schnittstellenstatistiken

Verwenden wir netstat, um Statistiken für alle Netzwerkschnittstellen anzuzeigen:

netstat -i > interface_stats.txt

In diesem Befehl:

  • -i zeigt eine Tabelle aller Netzwerkschnittstellen an
  • > interface_stats.txt speichert die Ausgabe in einer Datei

Nun lassen wir uns den Inhalt der Datei anzeigen:

cat interface_stats.txt

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0      1500   123456      0      0 0        98765      0      0      0 BMRU
lo       65536     789      0      0 0          789      0      0      0 LRU

Verständnis von Netzwerkschnittstellenstatistiken

Die Ausgabe liefert wichtige Statistiken zu jeder Netzwerkschnittstelle:

  • Iface: Der Name der Netzwerkschnittstelle

    • eth0: Typischerweise die erste Ethernet-Schnittstelle
    • lo: Die Loopback-Schnittstelle, die für lokale Verbindungen verwendet wird
  • MTU: Maximum Transmission Unit (Maximale Übertragungseinheit) - die größte Paketgröße, die übertragen werden kann

    • Standard-Ethernet verwendet typischerweise 1500 Bytes
    • Die Loopback-Schnittstelle hat typischerweise eine größere MTU (65536)
  • RX-OK: Anzahl der fehlerfrei empfangenen Pakete

  • RX-ERR: Anzahl der fehlerhaft empfangenen Pakete

  • RX-DRP: Anzahl der verworfenen empfangenen Pakete

  • RX-OVR: Anzahl der Überläufe bei empfangenen Paketen

  • TX-OK: Anzahl der fehlerfrei gesendeten Pakete

  • TX-ERR: Anzahl der fehlerhaft gesendeten Pakete

  • TX-DRP: Anzahl der verworfenen gesendeten Pakete

  • TX-OVR: Anzahl der Überläufe bei gesendeten Paketen

  • Flg: Flags, die den Schnittstellenstatus anzeigen

    • B: Broadcast-Adresse festgelegt
    • M: Multicast aktiviert
    • R: Die Schnittstelle ist aktiv
    • U: Die Schnittstelle ist eingeschaltet

Diese Statistiken helfen Ihnen, die Netzwerkleistung zu überwachen und potenzielle Probleme wie Paketverluste oder Übertragungsfehler zu identifizieren.

Zusätzliche Befehle für Netzwerkstatistiken

Für eine umfassendere Ansicht der Netzwerkstatistiken können Sie auch verwenden:

netstat -s | head -20 > protocol_stats.txt

Dieser Befehl zeigt Protokollstatistiken für TCP, UDP, IP, ICMP und andere Protokolle an. Wir verwenden head -20, um die Ausgabe auf die ersten 20 Zeilen zu beschränken, um die Lesbarkeit zu verbessern.

Lassen wir uns diese Datei anzeigen:

cat protocol_stats.txt

Dies liefert detaillierte Statistiken darüber, wie jedes Protokoll funktioniert, und hilft Ihnen, potenzielle Netzwerkprobleme auf Protokollebene zu identifizieren.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den netstat-Befehl verwenden können, um verschiedene Aspekte der Netzwerkaktivität auf einem Linux-System zu überwachen. Die wichtigsten Fähigkeiten, die Sie erworben haben, umfassen:

  1. Anzeigen aktiver Netzwerkverbindungen, um zu verstehen, welche Verbindungen auf Ihrem System hergestellt sind.

  2. Identifizieren lauschender Dienste, um festzustellen, welche Ports geöffnet und möglicherweise dem Netzwerk zugänglich sind.

  3. Analysieren von Netzwerkschnittstellenstatistiken, um die Leistung und den Zustand Ihrer Netzwerkschnittstellen zu überwachen.

Diese Fähigkeiten sind für Systemadministratoren, Netzwerkingenieure und Sicherheitsexperten unerlässlich, die Netzwerkprobleme verstehen und beheben müssen. Der netstat-Befehl liefert wertvolle Einblicke in die Netzwerkaktivitäten Ihres Systems und hilft Ihnen, optimale Leistung und Sicherheit aufrechtzuerhalten.

Obwohl netstat in vielen modernen Linux-Distributionen als veraltet angesehen wird und durch Tools wie ss und ip ersetzt wird, bietet das Verständnis von netstat eine solide Grundlage für Netzwerküberwachungskonzepte, die auf all diesen Tools anwendbar sind.