So listen Sie offene Ports unter Linux auf?

So listen Sie offene Ports unter Linux auf?

In Networking ist ein Port eine interessante Funktion. Dies ist eine Möglichkeit für den Netzwerkverkehr, die Ziel -App oder den Dienst zu identifizieren. Jeder Prozess/Service erhält seinen einzigartigen Port. Ein Port wird immer mit der IP -Adresse des Hosts zusammen mit dem Protokoll verknüpft.

Dies ist eine Lieblingsmetapher von mir, um zu beschreiben, was ein Port ist. Stellen Sie sich ein mit Fracht beladenes Schiff vor, das in ein entferntes Land reist. Welche Informationen sind erforderlich, um das Ziel ordnungsgemäß zu erreichen? Nehmen wir zum Einfachheit halber an, es braucht das Land (die IP -Adresse) und die Hafen Das Schiff wird andocken.

In diesem Handbuch finden Sie in der Auflistung der geöffneten Ports unter Linux.

Ports auf Linux

Ports dienen als Endpunkt der Kommunikation. Es ist eine 16-Bit-Zahl (0 bis 65535 in Dezimalzahl). Während der Bereich groß ist, werden die Ports in drei Kategorien eingeteilt. Jede Kategorie wird als der Bereich des Portwerts bezeichnet:

  • 0 bis 1023: Dies sind die „bekannten“ Ports, die auch als „System“ -Ports bezeichnet werden und für Systemprozesse reserviert sind, die eine Vielzahl von Netzwerkdiensten anbieten. Um sich mit einem „bekannten“ Port zu binden, muss ein Prozess über Superuser-Privilegien verfügen.
  • 1024 bis 49151: Dies sind die "registrierten" Ports, die auch als "Benutzer" -Ports bezeichnet werden und von IANA für bestimmte Dienste bezeichnet werden. Auf Anfrage kann ein Prozess Zugriff auf sie haben. Bei den meisten Systemen erfordert es keine Superuser -Berechtigungen, um diese Ports zu verwenden.
  • 49152 bis 65535: Dies sind die "dynamischen" Ports, die auch als "private" Ports bekannt sind. Diese Häfen können nicht bei IANA registriert werden. Diese Ports sind offen für private oder maßgeschneiderte Dienste und können automatisch als kurzlebige Ports zugewiesen werden (kurzlebige Ports, die von IP verwendet werden).

In Linux gibt es mehrere Möglichkeiten, die offenen Ports zu überprüfen. Standardmäßig bleibt jeder Port geschlossen, es sei denn, eine App verwendet sie. Wenn ein Port geöffnet ist, muss er einem Dienst/Prozess zugewiesen werden.

Listen Sie offene Ports auf

Es ist einfacher zu identifizieren, welche Ports verwendet werden und welche Ports geöffnet sind. Aus diesem Grund werden im folgenden Abschnitt Methoden enthält, um alle derzeit verwendeten Ports aufzulisten. In Linux stehen für die Aufgabe mehrere Tools zur Verfügung. Die meisten von ihnen kommen in jeder Linux-Distribution integriert.

Das Lernen, welche Ports derzeit geöffnet sind, kann in verschiedenen Szenarien nützlich sein. Es ist möglich, einen dedizierten Port für eine bestimmte Anwendung zu konfigurieren. Ein offener Port kann auch ein starker Hinweis auf das Eindringen im Netzwerk sein.

Die folgenden Methoden werden auf Ubuntu 20 demonstriert.04.1 LTS.

Listen Sie Protokolle auf und öffnen Sie Ports von /etc /diensten

Die Datei /etc /dienste enthält Informationen über die aktuell ausgeführten Dienste. Es ist eine große Datei, die so bereit ist, überwältigt zu werden.

$ cat /etc /dienste | weniger

Listen Sie die Öffnen von Ports mit Netstat auf

Das Netstat -Tool ist ein Dienstprogramm zur Anzeige von Netzwerkverbindungen für TCP, Routing -Tabellen und verschiedene Netzwerkschnittstellen. Es bietet auch Netzwerkprotokollstatistiken. Durch die Nutzung von Netstat können wir alle offenen Ports des Systems auflisten.

Führen Sie den folgenden Netstat -Befehl aus:

$ netstat -atu

Lassen Sie uns eine kurze Aufschlüsselung aller Flaggen haben, die wir in diesem Befehl verwendet haben.

  • A: Sagt Netstat, er solle alle Steckdosen zeigen
  • T: Fordert Netstat an, TCP -Ports aufzulisten
  • u: Fordert Netstat an, UDP -Ports aufzulisten

Hier ist eine weitere Variation des Netstat -Befehls:

$ netstat -lntu

Im Befehl sind zwei neue Flags verwendet. Was meinen sie?

  • l: Fordert Netstat an, nur die Hörstecke zu drucken
  • N: Fordert Netstat an, die Portnummer anzuzeigen

Verwenden Sie die PID des Prozesses, bei dem ein Port verwendet wird, das Flag „-P“:

$ netstat -lntup

Listen Sie die Öffnungsanschlüsse mit SS auf

Das SS -Tool ist ein Dienstprogramm zur Untersuchung von Socket. Die Verwendung ist Netstat ähnlich.

Führen Sie den folgenden SS -Befehl aus, um die geöffneten Ports aufzulisten:

$ ss -lntu

Die Flaggen ähneln Netstat. Die Funktionen, die sie beschreiben, sind ebenfalls ziemlich ähnlich.

  • l: Fordert SS an, Hörhöhlen anzuzeigen
  • N: Sagt SS, nicht zu versuchen, Dienstnamen zu beheben
  • T: Fordert SS an, TCP -Steckdosen anzuzeigen
  • u: Sagt SS, UDP -Sockets anzuzeigen

Listen Sie die Öffnen von Ports mit LSOF auf

Der Befehl LSOF besteht darin, offene Dateien aufzulisten. Es kann jedoch auch zum Anzeigen der offenen Ports verwendet werden.

Führen Sie den folgenden LSOF -Befehl aus:

$ lsof -i

Um die offenen Ports eines bestimmten Protokolls zu erhalten (TCP, UDP usw.) Definieren Sie es dann nach der Flagge „-i“ und verwenden Sie:

$ lsof -i

Listen Sie die Öffnen von Ports mit NMAP auf

Das NMAP -Tool ist leistungsfähig für die Netzwerkforschung und Sicherheits-/Port -Scaning. Es kann alle offenen Ports im System melden.

Führen Sie den folgenden NMAP -Befehl aus, um die öffnen TCP -Ports aufzulisten. Hier ist die IP -Adresse des Host -Computers:

$ sudo nmap -st -p- localhost

Hier gibt es zwei Teile des Befehlsarguments.

  • -st: In diesem Abschnitt wird NMAP angewiesen, nach TCP -Ports zu scannen.
  • -P- : Dies fordert NMAP an, alle 65535 Anschlüsse zu scannen. Wenn nicht verwendet, scannen NMAP standardmäßig nur 1000 Ports.

Wenn Sie die öffnen UDP -Ports auflisten müssen, führen Sie den folgenden NMAP -Befehl aus:

$ sudo nmap -su -p- localhost

Verwenden Sie den folgenden Befehl, um sowohl die offenen TCP- als auch die UDP -Ports zu erhalten:

$ sudo nmap -n -pn -st -su -p- localhost

Listen Sie die Öffnen von Ports mit NetCAT auf

Das NetCat -Tool ist ein Befehlszeilen -Dienstprogramm zum Lesen und Schreiben von Daten über Netzwerkverbindungen über die TCP- und UDP -Protokolle hinweg. Dieses Tool kann auch zum Auflisten offener Ports verwendet werden. Es kann Tests an einem bestimmten Port oder einer Reihe von Ports durchführen.

Der folgende Befehl netcat scannt den Port von 1 auf 1000. Der Befehl netcat führt den Scan im TCP -Protokoll standardmäßig aus:

$ nc -z -v localhost 1-1000

Es kann auch auf die gesamte Liste der möglichen Ports erweitert werden:

$ nc -z -v localhost 1-65535

Lassen Sie uns eine kurze Aufschlüsselung der Flaggen haben.

  • z: Fordert NetCat an, nur nach offenen Ports zu scannen, ohne Daten zu senden
  • v: Fordert NetCat in den ausführlichen Modus an

Um nur die offenen Ports aus dieser Liste zu erhalten, filtern Sie die Ausgabe mit GREP für den Begriff „erfolgreich“ mit GREP, um „erfolgreich“ zu sein.

$ nc -z -v localhost 0-65535 2> & 1 | Grep gelang es

Wenn Sie den Scan im UDP-Protokoll durchführen möchten, fügen Sie das Flag "-U" hinzu.

$ nc -z -v -u localhost 0-65535 2> & 1 | Grep gelang es

Abschließende Gedanken

Wie gezeigt, gibt es unzählige Möglichkeiten zum Scannen nach offenen Ports unter Linux. Ich schlage vor, alle Methoden auszuprobieren, bevor Sie sich entscheiden, welches für den Meister. Wenn Sie regelmäßig ein bestimmtes Tool wie NetCat oder NMAP verwenden, ist das Beherrschen der zugehörigen Methoden am vorteilhaftesten.

Happy Computing!