Android

So suchen Sie unter Linux nach offenen Ports

Zentrale Maildienste bereitstellen mit UCS (Univention Corporate Server)

Zentrale Maildienste bereitstellen mit UCS (Univention Corporate Server)

Inhaltsverzeichnis:

Anonim

Unabhängig davon, ob Sie Probleme mit der Netzwerkkonnektivität beheben oder eine Firewall konfigurieren, müssen Sie zunächst überprüfen, welche Ports auf Ihrem System tatsächlich geöffnet sind.

Dieser Artikel beschreibt verschiedene Ansätze, um herauszufinden, welche Ports auf Ihrem Linux-System nach außen geöffnet sind.

Was ist Open Port?

Ein Überwachungsport ist ein Netzwerkport, den eine Anwendung überwacht. Sie können eine Liste der Überwachungsports auf Ihrem System abrufen, indem Sie den Netzwerkstapel mit Befehlen wie ss , netstat oder lsof abfragen. Jeder Überwachungsport kann mithilfe einer Firewall geöffnet oder geschlossen (gefiltert) werden.

Im Allgemeinen ist ein offener Port ein Netzwerkport, der eingehende Pakete von entfernten Standorten akzeptiert.

Wenn Sie beispielsweise einen Webserver ausführen, der die Ports 80 und 443 abhört, und diese Ports in Ihrer Firewall geöffnet sind, kann jeder (außer blockierte IPS) mit seinem Browser auf Websites zugreifen, die auf Ihrem Webserver gehostet werden. In diesem Fall sind sowohl 80 als auch 443 offene Ports.

Offene Ports können ein Sicherheitsrisiko darstellen, da jeder offene Port von Angreifern verwendet werden kann, um eine Sicherheitsanfälligkeit auszunutzen oder andere Arten von Angriffen auszuführen. Sie sollten nur die Ports freigeben, die für die Funktionalität Ihrer Anwendung benötigt werden, und alle anderen Ports schließen.

Aktivieren Sie Open Ports mit nmap

Nmap ist ein leistungsstarkes Netzwerk-Scan-Tool, das einzelne Hosts und große Netzwerke scannen kann. Es wird hauptsächlich für Sicherheitsüberprüfungen und Penetrationstests verwendet.

Wenn verfügbar, sollte nmap Ihr erstes Tool sein, wenn es um das Scannen von Ports geht. Neben Port-Scanning kann nmap auch Mac-Adressen, Betriebssysteme, Kernel-Versionen und vieles mehr erkennen.

Der folgende Befehl, der von der Konsole ausgegeben wird, bestimmt, welche Ports auf TCP-Verbindungen vom Netzwerk warten:

sudo nmap -sT -p- 10.10.8.8

Das -sT weist nmap an, nach TCP-Ports und -p- nach allen 65535-Ports zu -p- . Wenn -p- nicht verwendet wird, -p- nmap nur 1000 Ports.

Starting Nmap 7.60 (https://nmap.org) at 2019-07-09 23:10 CEST Nmap scan report for 10.10.8.8 Host is up (0.0012s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 08:00:27:05:49:23 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds

Die Ausgabe oben zeigt, dass nur die Ports 22 , 80 und 8069 auf dem Zielsystem geöffnet sind.

Verwenden Sie -sU anstelle von -sT um nach UDP-Ports zu -sT :

sudo nmap -sU -p- 10.10.8.8

Weitere Informationen finden Sie auf der nmap-Manpage. Dort finden Sie Informationen zu allen anderen leistungsstarken Optionen dieses Tools.

Aktivieren Sie Open Ports mit netcat

Netcat (oder nc ) ist ein Befehlszeilentool, mit dem Daten über Netzwerkverbindungen mithilfe des TCP- oder UDP-Protokolls gelesen und geschrieben werden können.

Mit netcat Sie einen einzelnen Port oder einen netcat scannen.

Um beispielsweise auf einem Remotecomputer mit der IP-Adresse 10.10.8.8 im Bereich 20-80 nach offenen TCP-Ports zu 10.10.8.8 verwenden Sie den folgenden Befehl:

nc -z -v 10.10.8.8 20-80

Die Option -z weist nc an, nur nach offenen Ports zu suchen, ohne Daten zu senden, und die Option -v ausführlichere Informationen.

Die Ausgabe sieht ungefähr so ​​aus:

nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded!… Connection to 10.10.8.8 80 port succeeded!

nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded

Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!

Um nach UDP-Ports zu -u Option -u an den Befehl nc :

nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded

Aktivieren Sie die Option "Offene Ports mit Bash-Pseudogeräten"

Eine andere Möglichkeit, um zu überprüfen, ob ein bestimmter Port geöffnet oder geschlossen ist, ist die Verwendung des Pseudogeräts Bash-Shell /dev/tcp/.. oder /dev/udp/..

Bei der Ausführung eines Befehls auf einem /dev/$PROTOCOL/$HOST/$IP Pseudogerät öffnet Bash eine TCP- oder UDP-Verbindung zum angegebenen Host auf dem angegebenen Port.

Die folgende if..else-Anweisung überprüft, ob Port 443 auf kernel.org geöffnet ist:

if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi

Port is open

Wie funktioniert der obige Code?

Das Standardzeitlimit für die Verbindung mit einem Port über ein Pseudogerät ist sehr groß. Daher verwenden wir den Befehl timeout , um den Testbefehl nach 5 Sekunden zu beenden. Wenn die Verbindung zu kernel.org Port 443 hergestellt wurde, gibt der kernel.org true zurück.

Sie können auch die for-Schleife verwenden, um nach einem Portbereich zu suchen:

for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done

Die Ausgabe sieht ungefähr so ​​aus:

port 22 is open port 80 is open

Fazit

Wir haben Ihnen verschiedene Tools gezeigt, mit denen Sie nach offenen Ports suchen können. Es gibt auch andere Dienstprogramme und Methoden, um nach offenen Ports zu wget . Sie können beispielsweise das Python- socket Modul, curl , telnet oder wget .

Terminal