Wie man einen Port in Linux öffnet

0 Aktien
0
0
0
0

Einführung

Ein Port ist ein Kommunikationsendpunkt. In einem Betriebssystem wird ein Port für Datenpakete bestimmter Prozesse oder Netzwerkdienste geöffnet oder geschlossen.

Normalerweise identifizieren Ports einen bestimmten Netzwerkdienst, der ihnen zugewiesen ist. Dies kann durch manuelle Konfiguration des Dienstes zur Verwendung eines anderen Ports geändert werden, im Allgemeinen können jedoch die Standardeinstellungen verwendet werden.

Die ersten 1024 Ports (Portnummern 0 bis 1023) werden als bekannte Portnummern bezeichnet und sind für die gängigsten Dienste reserviert. Dazu gehören SSH (Port 22), HTTP (Port 80) und HTTPS (Port 443).

Portnummern über 1024 werden als ephemere Ports bezeichnet.

  • Die Ports 1024 bis 49151 werden als registrierte/Benutzerports bezeichnet.
  • Die Ports 49152 bis 65535 werden als dynamische/private Ports bezeichnet.

In diesem Tutorial öffnen Sie einen temporären Port unter Linux, da die meisten gängigen Dienste bekannte Ports verwenden.

Voraussetzungen
  • Vertrautheit mit der Nutzung des Terminals

Liste aller offenen Ports

Bevor Sie in Linux einen Port öffnen, sollten Sie die Liste aller offenen Ports überprüfen und einen temporären Port auswählen, der nicht auf dieser Liste steht.

Verwenden Sie den Befehl netstat, um alle offenen Ports aufzulisten, einschließlich TCP und UDP, die die gebräuchlichsten Protokolle für die Paketübertragung auf der Netzwerkschicht sind.

netstat -lntu

Dies wird gedruckt:

  • Alle Listening-Sockets (-l)
  • Portnummer (-n)
  • TCP-Ports (-t)
  • UDP-Ports (-u)
Output
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 ::1:5432 :::* LISTEN
tcp6 0 0 ::1:6379 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
udp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN

Überprüfen Sie, ob Sie mit dem Befehl `ss` eine konsistente Ausgabe erhalten, indem Sie die Listening-Sockets mit offenen Ports auflisten:

ss -lntu

Dies wird gedruckt:

Output
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.1:5432 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.1:27017 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.1:6379 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.53%lo:53 0.0.0.0:*
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
tcp LISTEN 0 128 [::1]:5432 0.0.0.0:*
tcp LISTEN 0 128 [::1]:6379 0.0.0.0:*
tcp LISTEN 0 128 [::]:22 0.0.0.0:*

Dies liefert mehr oder weniger die gleichen offenen Ports wie netstat.

Öffnen Sie einen Port in Linux, um TCP-Verbindungen zu ermöglichen.

Öffnen Sie nun einen geschlossenen Port und lassen Sie ihn auf TCP-Verbindungen warten.

Für dieses Tutorial öffnen Sie Port 4000. Sollte dieser Port auf Ihrem System nicht geöffnet sein, können Sie einen anderen geschlossenen Port wählen. Dieser muss lediglich größer als 1023 sein.

Stellen Sie mit dem Befehl netstat sicher, dass Port 4000 nicht belegt ist:

netstat -na | grep :4000

Oder der Befehl ss:

ss -na | grep :4000

Die Ausgabe sollte leer bleiben. Prüfen Sie daher, ob sie derzeit nicht verwendet wird, damit Sie manuell Portregeln zur iptables-Systemfirewall hinzufügen können.

Für Ubuntu-Benutzer und ufw-basierte Systeme

Nutzen Sie ufw – einen Kommandozeilenclient für eine problemlose Firewall.

Ihre Befehle ähneln folgenden:

sudo ufw allow 4000
Für CentOS- und Firewall-basierte Systeme

Verwenden Sie firewall-cmd – den Befehlszeilenclient für den firewalld-Daemon.

Ihre Befehle ähneln folgenden:

firewall-cmd --add-port=4000/tcp
Für andere Linux-Distributionen

Verwenden Sie iptables, um die IPv4-Paketfilterregeln des Systems zu ändern.

iptables -A INPUT -p tcp --dport 4000 -j ACCEPT
Testen Sie den neu geöffneten Port für TCP-Verbindungen

Nachdem Sie nun erfolgreich einen neuen TCP-Port geöffnet haben, ist es an der Zeit, ihn zu testen.

Starten Sie zunächst netcat (nc) und lauschen Sie (-l) auf Port (-p) 4000, während Sie die Ausgabe von ls an jeden verbundenen Client senden:

ls | nc -l -p 4000

Nachdem ein Client eine TCP-Verbindung auf Port 4000 geöffnet hat, empfängt er die Ausgabe von ls. Verlassen Sie diese Sitzung vorerst.

Öffnen Sie eine weitere Terminal-Sitzung auf demselben Gerät.

Da Sie einen TCP-Port geöffnet haben, überprüfen Sie die TCP-Verbindung mit Telnet. Falls der Befehl nicht verfügbar ist, installieren Sie ihn über Ihren Paketmanager.

Geben Sie die IP-Adresse und die Portnummer Ihres Servers ein (in diesem Beispiel 4000) und führen Sie folgenden Befehl aus:

telnet localhost 4000

Dieser Befehl versucht, eine TCP-Verbindung auf localhost auf Port 4000 zu öffnen.

Sie erhalten eine ähnliche Ausgabe wie diese, die anzeigt, dass eine Verbindung zum abhörenden Programm (nc) hergestellt wurde:

Output
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
while.sh

Die Ausgabe von ls (in diesem Beispiel while.sh) wird ebenfalls an den Client gesendet, was auf eine erfolgreiche TCP-Verbindung hinweist.

Verwenden Sie nmap, um zu prüfen, ob der Port geöffnet ist (-p):

nmap localhost -p 4000

Dieser Befehl prüft auf offene Ports:

Output
Starting Nmap 7.60 ( https://nmap.org ) at 2020-01-18 21:51 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Other addresses for localhost (not scanned): ::1
PORT STATE SERVICE
4000/tcp open remoteanything
Nmap done: 1 IP address (1 host up) scanned in 0.25 seconds

Der Port wurde geöffnet. Sie haben erfolgreich einen neuen Port auf Ihrem Linux-System geöffnet.

Dies ist jedoch nur vorübergehend, da die Änderungen bei jedem Neustart des Systems zurückgesetzt werden.

Nachhaltige Regeln

Die in diesem Artikel vorgestellte Methode aktualisiert die Firewall-Regeln nur temporär, bis das System heruntergefahren oder neu gestartet wird. Daher müssen dieselben Schritte nach dem Neustart wiederholt werden, um denselben Port wieder zu öffnen.

Für die UFW-Firewall

ufw-Regeln werden beim Neustart nicht zurückgesetzt. Dies liegt daran, dass ufw in den Bootvorgang integriert ist und der Kernel Firewall-Regeln mithilfe von ufw speichert, indem er die entsprechenden Konfigurationsdateien anwendet.

Für Firewalls

Wenn Sie den Port zur permanenten Firewall-Konfiguration hinzufügen und die Änderungen sofort anwenden möchten, können Sie die Flags --permanent und --reload verwenden:

sudo firewall-cmd --permanent --add-port=4000/tcp 
sudo firewall-cmd --reload
Für iptables

Sie müssen die Konfigurationsregeln speichern und den Befehl iptables-persistent verwenden.

Ergebnis

In diesem Tutorial haben Sie gelernt, wie man in Linux einen neuen Port öffnet und ihn für eingehende Verbindungen konfiguriert. Sie haben außerdem netstat, ss, telnet, nc und nmap verwendet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte Ihnen auch gefallen