GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So prüfen (scannen) Sie offene Ports in Linux

Egal, ob Sie Probleme mit der Netzwerkverbindung beheben oder eine Firewall konfigurieren, eines der ersten Dinge, die Sie überprüfen sollten, ist, welche Ports tatsächlich auf Ihrem System geöffnet sind.

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

Was ist Open Port #

Ein Abhörport ist ein Netzwerkport, den eine Anwendung abhört. Sie können eine Liste der lauschenden Ports auf Ihrem System erhalten, indem Sie den Netzwerkstapel mit Befehlen wie ss abfragen , netstat oder lsof . Jeder Listening-Port 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 betreiben, der Ports 80 abhört und 443 und diese Ports auf Ihrer Firewall offen sind, kann jeder (außer blockierte IPs) mit seinem Browser auf Websites zugreifen, die auf Ihrem Webserver gehostet werden. In diesem Fall beide 80 und 443 sind offene Ports.

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

Überprüfen Sie offene Ports mit nmap #

Nmap ist ein leistungsstarkes Tool zum Scannen von Netzwerken, das einzelne Hosts und große Netzwerke scannen kann. Es wird hauptsächlich für Sicherheitsaudits und Penetrationstests verwendet.

Falls verfügbar, nmap sollte Ihr erstes Werkzeug sein, wenn es um das Scannen von Ports geht. Neben Port-Scanning, nmap kann auch die Mac-Adresse, den Betriebssystemtyp, die Kernel-Versionen und vieles mehr erkennen.

Der folgende von der Konsole ausgegebene Befehl bestimmt, welche Ports auf TCP-Verbindungen aus dem Netzwerk lauschen:

sudo nmap -sT -p- 10.10.8.8

Das -sT teilt nmap mit zum Scannen nach TCP-Ports und -p- um nach allen 65535 Ports zu scannen. Wenn -p- nmap wird nicht verwendet scannt nur die 1000 beliebtesten 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 obige Ausgabe zeigt, dass nur die Ports 22 , 80 und 8069 auf dem Zielsystem geöffnet werden.

Um nach UDP-Ports zu suchen, verwenden Sie -sU statt -sT :

sudo nmap -sU -p- 10.10.8.8

Weitere Informationen finden Sie auf der nmap-Manpage und lesen Sie mehr über alle anderen leistungsstarken Optionen dieses Tools.

Überprüfen Sie offene Ports mit netcat #

Netcat (oder nc ) ist ein Befehlszeilentool, das Daten über Netzwerkverbindungen mit TCP- oder UDP-Protokollen lesen und schreiben kann.

Mit netcat Sie können einen einzelnen Port oder einen Portbereich scannen.

Beispielsweise zum Scannen nach offenen TCP-Ports auf einem Remote-Computer mit der IP-Adresse 10.10.8.8 im Bereich 20-80 Sie würden den folgenden Befehl verwenden:

nc -z -v 10.10.8.8 20-80

Das -z Option teilt nc mit um nur nach offenen Ports zu scannen, ohne Daten zu senden und das -v ist für ausführlichere Informationen.

Die Ausgabe sieht in etwa 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 [tcp/ssh] succeeded!
...
Connection to 10.10.8.8 80 port [tcp/http] succeeded!

Wenn Sie möchten, dass nur die Zeilen mit den offenen Ports auf dem Bildschirm gedruckt werden, filtern Sie die Ergebnisse mit grep Befehl.

nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!
Connection to 10.10.8.8 80 port [tcp/http] succeeded!

Um nach UDP-Ports zu suchen, geben Sie -u ein Option zum nc Befehl:

nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded
Der 2>&1 Konstrukt leitet den Standardfehler auf die Standardausgabe um.

Überprüfen Sie offene Ports mit dem Bash-Pseudogerät #

Eine andere Möglichkeit zu prüfen, ob ein bestimmter Port geöffnet oder geschlossen ist, ist die Verwendung der Bash-Shell /dev/tcp/.. oder /dev/udp/.. Pseudo-Gerät.

Beim Ausführen eines Befehls auf einem /dev/$PROTOCOL/$HOST/$IP Pseudo-Gerät, öffnet Bash eine TCP- oder UDP-Verbindung zum angegebenen Host am angegebenen Port.

Die folgende if..else-Anweisung prüft, ob Port 443 auf kernel.org ist offen:

if timeout 5 bash -c '</dev/tcp/kernel.org/443 &>/dev/null'
then
  echo "Port is open"
else
  echo "Port is closed"
fi
Port is open

Wie funktioniert der obige Code?

Wenn Sie sich mit einem Pseudo-Gerät mit einem Port verbinden, ist das Standard-Timeout riesig, also verwenden wir das timeout Befehl, um den Testbefehl nach 5 Sekunden zu beenden. Wenn die Verbindung zu kernel.org hergestellt wird Port 443 Der Testbefehl gibt wahr zurück.

Um nach einem Portbereich zu suchen, verwenden Sie die for-Schleife:

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

Die Ausgabe sieht in etwa so aus:

port 22 is open
port 80 is open

Schlussfolgerung #

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

Wenn Sie Fragen oder Anmerkungen haben, hinterlassen Sie bitte unten einen Kommentar.


Linux
  1. So überprüfen Sie die Redhat-Version

  2. So finden Sie die Liste aller offenen Ports in Linux heraus

  3. So suchen Sie unter Linux mit netstat, lsof und nmap nach offenen Ports

  4. Wie schließt man Ports unter Linux?

  5. So überprüfen Sie das Abhören / Öffnen von Ports mit Netstat unter Linux

Wie man unter Debian 10 nach offenen Ports sucht

So überprüfen Sie, ob ein Port auf einem Remote-Linux-System geöffnet ist

So finden und schließen Sie offene Ports in Linux

So verwenden Sie Netcat zum Scannen offener Ports in Linux

So überprüfen Sie alle offenen Ports in Ihrem Linux-System

Wie überprüfe ich offene Ports in Linux?