15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen
25.12.2024

Überprüfung offener und abhörender Ports in Linux mit Netstat und SS

Die Überwachung offener und lauschender Ports auf einem Linux-System ist eine der grundlegendsten Praktiken zur Aufrechterhaltung der Serversicherheit, zur Diagnose von Netzwerkproblemen und zur effektiven Verwaltung Ihrer Infrastruktur. Unabhängig davon, ob Sie einen produktiven Webserver, eine VPS Hosting-Umgebung oder einen Dedicated Server betreiben, ist es wichtig zu verstehen, welche Ports genau offen sind und welche Dienste an sie gebunden sind. Dies gibt Ihnen die Sichtbarkeit, die Sie benötigen, um unbefugten Zugriff zu verhindern, Fehlkonfigurationen zu erkennen und unnötige Angriffsflächen zu beseitigen.

In diesem umfassenden Leitfaden zeigen wir Ihnen, wie Sie die Befehle netstat und ss verwenden, um offene und lauschende Ports auf einem beliebigen Linux-System zu überprüfen, ihre Stärken zu vergleichen und zusätzliche Tools wie lsof und nmap für tiefere Netzwerkanalysen vorzustellen.

Warum die Überwachung offener Ports wichtig ist

Jeder offene Port auf Ihrem Server stellt einen potenziellen Einstiegspunkt dar. Dienste, die falsch konfiguriert, veraltet oder einfach vergessen sind, können Ihr System für Exploits anfällig machen. Durch regelmäßige Audits Ihrer lauschenden Ports können Sie:

  • Nicht autorisierte Dienste auf unerwarteten Ports identifizieren
  • Eindringungsversuche oder kompromittierte Prozesse erkennen
  • Firewall-Regeln überprüfen, um sicherzustellen, dass sie wie beabsichtigt funktionieren
  • Bestätigen, dass neu bereitgestellte Anwendungen an die richtigen Schnittstellen gebunden sind
  • Ungenutzte Ports schließen, um Ihre Angriffsfläche zu reduzieren

Dies ist besonders wichtig für Administratoren, die Shared Web Hosting-Umgebungen oder Multi-Tenant-Server verwalten, auf denen mehrere Dienste gleichzeitig ausgeführt werden.

Ports und ihre Typen verstehen

Bevor wir uns den Tools zuwenden, ist es wichtig, die Terminologie zu verstehen, die Sie in der Befehlsausgabe antreffen werden.

BegriffBeschreibung
Offener PortEin Port, auf dem eine Anwendung aktiv auf eingehende Verbindungen wartet
Lauschender PortEin Port, der an einen Dienst gebunden ist, der auf Netzwerkverkehr wartet
TCP (Transmission Control Protocol)Verbindungsorientiert, zuverlässig, wird von HTTP, SSH, FTP usw. verwendet
UDP (User Datagram Protocol)Verbindungslos, schneller aber weniger zuverlässig, wird von DNS, NTP usw. verwendet

Ports mit netstat überprüfen

Was ist netstat?

netstat (Netzwerkstatistiken) ist ein klassisches Befehlszeilenprogramm, das detaillierte Informationen über Netzwerkverbindungen, Routing-Tabellen, Schnittstellenstatistiken und lauschende Ports liefert. Obwohl es auf modernen Distributionen offiziell zugunsten von ss veraltet ist, wird es immer noch häufig verwendet und ist auf vielen älteren Systemen zu finden.

netstat installieren

Der Befehl netstat ist Teil des Pakets net-tools, das möglicherweise nicht standardmäßig auf modernen Linux-Distributionen installiert ist.

Debian / Ubuntu:

sudo apt install net-tools

CentOS / RHEL / AlmaLinux / Rocky Linux:

sudo yum install net-tools

netstat verwenden, um offene und lauschende Ports zu überprüfen

Um alle lauschenden TCP- und UDP-Ports auf Ihrem System anzuzeigen, führen Sie den folgenden Befehl aus:

sudo netstat -tuln

Flag-Aufschlüsselung:

FlagBeschreibung
-tTCP-Ports anzeigen
-uUDP-Ports anzeigen
-lNur lauschende Ports anzeigen
-nNumerische Adressen anzeigen statt Hostnamen aufzulösen

Beispielausgabe

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  0.0.0.0:80        0.0.0.0:*         LISTEN
tcp6        0       0  :::443            :::*              LISTEN
udp         0       0  0.0.0.0:53        0.0.0.0:*

Die Ausgabespalten verstehen

  • Lokale Adresse — Die IP-Adresse und Portnummer, auf der der Dienst lauscht. 0.0.0.0 bedeutet, dass der Dienst auf allen verfügbaren Schnittstellen lauscht.
  • Externe Adresse — Die Remote-IP und der Port für aktive Verbindungen. Ein Sternchen (*) bedeutet, dass noch keine Verbindung hergestellt wurde.
  • Status — Der Verbindungsstatus. LISTEN zeigt an, dass der Port offen ist und auf eingehende Verbindungen wartet.

Spezifische Ports mit netstat filtern

Sie können die Ausgabe durch grep leiten, um einen bestimmten Port oder Dienst zu isolieren. Um beispielsweise zu überprüfen, ob etwas auf Port 80 (HTTP) lauscht:

sudo netstat -tuln | grep ":80"

Um Port 443 (HTTPS) zu überprüfen, was für Server mit installierten SSL-Zertifikaten wichtig ist:

sudo netstat -tuln | grep ":443"

Um auch den Prozessnamen und die PID anzuzeigen, die für jede Verbindung verantwortlich sind, fügen Sie das Flag -p hinzu:

sudo netstat -tulnp

Ports mit ss überprüfen

Was ist ss?

ss (Socket-Statistiken) ist der moderne Ersatz für netstat. Es ist schneller, effizienter und bietet umfangreichere Ausgaben – besonders auf Systemen mit einer hohen Anzahl gleichzeitiger Verbindungen. Der Befehl ss ist standardmäßig auf praktisch allen modernen Linux-Distributionen enthalten und erfordert keine zusätzliche Installation.

ss verwenden, um offene und lauschende Ports zu überprüfen

Die Syntax von ss ähnelt stark der von netstat, was den Übergang unkompliziert macht:

ss -tuln

Flag-Aufschlüsselung:

FlagBeschreibung
-tTCP-Sockets anzeigen
-uUDP-Sockets anzeigen
-lNur lauschende Sockets anzeigen
-nNumerische Adressen anzeigen

Beispielausgabe

Netid  State   Recv-Q  Send-Q  Local Address:Port   Peer Address:Port
tcp    LISTEN  0       128     0.0.0.0:22            0.0.0.0:*
tcp    LISTEN  0       511     0.0.0.0:80            0.0.0.0:*
tcp    LISTEN  0       511        [::]:443             [::]:*
udp    UNCONN  0       0       0.0.0.0:53            0.0.0.0:*

Erweiterte Verwendung von ss

Der Befehl ss bietet eine Reihe von erweiterten Filter- und Anzeigeoptionen, die weit über das hinausgehen, was netstat bieten kann.

Nur lauschende TCP-Ports anzeigen

ss -tl

Nur lauschende UDP-Ports anzeigen

ss -ul

Prozessnamen und PIDs anzeigen

Um genau zu identifizieren, welcher Prozess einen bestimmten Port verwendet, verwenden Sie das Flag -p:

ss -tulnp

Dies ist einer der nützlichsten Befehle zur Fehlerbehebung – er zeigt den Prozessnamen und die PID neben jedem lauschenden Socket an, sodass sofort klar ist, welche Anwendung welchen Port besitzt.

Beispielausgabe mit Flag -p

Netid  State   Local Address:Port   Process
tcp    LISTEN  0.0.0.0:80           users:(("nginx",pid=1234,fd=6))
tcp    LISTEN  0.0.0.0:22           users:(("sshd",pid=987,fd=3))
tcp    LISTEN  0.0.0.0:3306         users:(("mysqld",pid=2345,fd=21))

Nach einem bestimmten Port filtern

Um zu überprüfen, welcher Prozess auf Port 8080 lauscht:

ss -tulnp | grep ":8080"

Alle etablierten TCP-Verbindungen anzeigen

ss -tn state established

Zusammenfassungsstatistiken anzeigen

ss -s

Dies bietet eine schnelle Zusammenfassung der Gesamtsockets nach Typ und Status – nützlich, um ungewöhnliche Verbindungsvolumina zu erkennen.

netstat vs. ss: Ein direkter Vergleich

Funktion`netstat``ss`
LeistungLangsamer auf ausgelasteten SystemenDeutlich schneller
StandardverfügbarkeitErfordert net-tools-PaketAuf modernen Distributionen vorinstalliert
FilteroptionenGrundlegend (grep erforderlich)Erweiterte integrierte Filter
ProzessinformationenVerfügbar mit -pVerfügbar mit -p
AusgabedetailStandardDetailliertere Socket-Informationen
Empfohlen fürÄltere Systeme, VertrautheitModerne Linux-Umgebungen

Wann netstat verwendet werden sollte

  • Auf älteren Linux-Systemen, auf denen ss nicht verfügbar ist
  • Bei der Arbeit mit Skripten oder Dokumentationen, die auf netstat-Syntax basieren
  • Für schnelle Überprüfungen auf Systemen, auf denen net-tools bereits installiert ist

Wann ss verwendet werden sollte

  • Auf jeder modernen Linux-Distribution (Ubuntu 20.04+, CentOS 8+, Debian 10+ usw.)
  • Wenn Sie schnellere Ausgaben auf hochfrequentierten Servern benötigen
  • Für erweiterte Filterung und detaillierte Socket-Analyse

Zusätzliche Tools für Port-Audits

Neben netstat und ss sind mehrere andere Dienstprogramme wertvoll für ein gründliches Port-Audit.

lsof verwenden

lsof (offene Dateien auflisten) behandelt Netzwerk-Sockets als Dateien, was es zu einer weiteren leistungsstarken Möglichkeit macht, um zu identifizieren, welcher Prozess einen bestimmten Port verwendet.

Um zu überprüfen, welcher Prozess an Port 80 gebunden ist:

sudo lsof -i :80

Um alle lauschenden Ports zu überprüfen:

sudo lsof -i -P -n | grep LISTEN

Beispielausgabe:

COMMAND   PID     USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
nginx    1234     root   6u  IPv4   23456      0t0  TCP *:80 (LISTEN)
sshd      987     root   3u  IPv4   12345      0t0  TCP *:22 (LISTEN)

nmap verwenden

nmap ist ein leistungsstarkes Netzwerk-Scan-Tool, das offene Ports sowohl lokal als auch auf Remote-Hosts erkennen kann. Es ist besonders nützlich, um Ihre Firewall-Konfiguration aus einer externen Perspektive zu überprüfen.

Installieren Sie nmap, falls noch nicht vorhanden:

sudo apt install nmap       # Debian/Ubuntu
sudo yum install nmap       # CentOS/RHEL

Scannen Sie alle TCP-Ports auf dem lokalen Computer:

sudo nmap -sT localhost

Scannen Sie auf offene Ports unter einer

15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen