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

Öffnen eines Ports unter Linux

Bevor wir lernen, einen Port unter Linux zu öffnen, wollen wir verstehen, was Netzwerkports sind. Ein Hafen ist ein Kommunikationsendpunkt. Innerhalb eines Betriebssystems ermöglicht ein Port die Datenpakete bestimmten Prozessen oder Netzwerkdiensten.

Typischerweise identifizieren Ports einen ihnen zugewiesenen Netzwerkdienst. Dies kann geändert werden, indem der Dienst manuell so konfiguriert wird, dass er einen anderen Port verwendet, aber im Allgemeinen können die Standardeinstellungen verwendet werden.

Die erste 1024 Ports (Ports 0-1023 ) werden als bekannte Portnummern bezeichnet und sind für die am häufigsten verwendeten Dienste reserviert, darunter SSH (Port 22), HTTP und HTTPS (Port 80 und 443) usw. Portnummern über 1024 werden als ephemer bezeichnet Häfen .

Unter flüchtigen Ports, Portnummern 1024-49151 werden Registriert/Benutzer genannt Häfen. Die restlichen Ports:49152-65535 werden als Dynamisch/Privat bezeichnet Häfen.

In diesem Tutorial zeigen wir, wie wir einen kurzlebigen Port unter Linux öffnen können, da die gängigsten Dienste die bekannten Ports verwenden.

Alle offenen Ports auflisten

Bevor wir einen Port unter Linux öffnen, prüfen wir zunächst die Liste aller offenen Ports und wählen einen flüchtigen Port zum Öffnen aus dieser Liste aus.

Wir können die netstat verwenden Befehl, um alle offenen Ports aufzulisten, einschließlich der von TCP , UDP , das sind die gebräuchlichsten Protokolle für die Paketübertragung in der Vermittlungsschicht.

HINWEIS :Wenn Ihre Distribution nicht über netstat verfügt , es ist kein Problem. Sie können den ss verwenden Befehl zum Anzeigen offener Ports über lauschende Sockets.

netstat -lntu

Dadurch werden alle Zuhörer gedruckt Sockets (-l ) zusammen mit der Nummer des Ports (-n ), mit TCP Ports (-t ) und UDP Ports (-u ) ebenfalls in der Ausgabe aufgeführt.

Um sicherzustellen, dass wir konsistente Ausgaben erhalten, überprüfen wir dies mit dem ss Befehl, um lauschende Sockets mit einem offenen Port aufzulisten.

ss -lntu

Dies gibt mehr oder weniger die gleichen offenen Ports wie netstat , also können wir loslegen!

Öffnen eines Ports unter Linux, um TCP-Verbindungen zuzulassen

Lassen Sie uns einen geschlossenen Port öffnen und ihn auf TCP hören lassen Verbindungen, für dieses Beispiel.

Seit Port 4000 in meinem System nicht verwendet wird, entscheide ich mich, Port 4000 zu öffnen . Wenn dieser Port in Ihrem System nicht offen ist, können Sie gerne einen anderen geschlossenen Port wählen. Stellen Sie nur sicher, dass es größer als 1023 ist !

Um sicherzugehen, stellen wir erneut sicher, dass Port 4000 nicht verwendet wird, indem wir netstat verwenden oder das ss Befehl.

netstat -na | grep :4000
ss -na | grep :4000

Die Ausgabe muss leer bleiben, um zu bestätigen, dass sie derzeit nicht verwendet wird, damit wir die Portregeln manuell zur System-iptables-Firewall hinzufügen können .

Für Ubuntu-Benutzer und ufw-Firewall-basierte Systeme

Ubuntu hat eine Firewall namens ufw , das sich um diese Regeln für Ports und Verbindungen kümmert, anstelle der alten iptables Firewall. Wenn Sie ein Ubuntu-Benutzer sind, können Sie den Port direkt mit ufw öffnen

sudo ufw allow 4000

Sie können die nächsten Schritte überspringen und Ihren neu geöffneten Port direkt testen!

Für CentOS- und Firewalld-basierte Systeme

Für diese Systemtypen, wenn Sie firewalld haben Als primäre Firewall wird empfohlen, dass Sie firewall-cmd verwenden um Ihre Firewall-Regeln zu aktualisieren, anstelle der alten iptables Firewall.

firewall-cmd --add-port=4000/tcp

HINWEIS:Dadurch wird die firewalld zurückgesetzt Regeln, die bei einem Neustart standardmäßig verwendet werden. Wenn Sie diese Einstellung also dauerhaft ändern möchten, fügen Sie --permanent hinzu Flag zum Befehl.

firewall-cmd --add-port=4000/tcp --permanent

Sie können die nächsten Schritte überspringen und Ihren neu geöffneten Port direkt testen!

Für andere Linux-Distributionen

Fügen wir also diesen neuen Port zu unseren System-iptables-Regeln hinzu, indem wir iptables verwenden Befehl.

Wenn dieser Befehl noch nicht installiert ist, holen Sie ihn sich über Ihren Paketmanager.

iptables -A INPUT -p tcp --dport 4000 -j ACCEPT

Dadurch wird die Firewall auf anhängen eingestellt (-A ) die neue Regel zum Akzeptieren von Eingangspaketen per Protokoll (-p ) TCP wo der Zielhafen ist (--dport ) ist 4000 , und gibt den Sprung als Ziel an (-j ) als AKZEPTIEREN .

Um die Firewall-Regeln zu aktualisieren, starten Sie iptables neu Dienst.

sudo service iptables restart

ODER mit systemctl wenn du es hast.

sudo systemctl restart iptables

Testen Sie den neu geöffneten Port für TCP-Verbindungen

Jetzt haben wir erfolgreich ein neues TCP geöffnet port (Port 4000 in meinem Fall), testen wir es.

Zuerst starten wir netcat (nc ) und lauschen auf Port 4000, während Sie die Ausgabe von ls senden an jeden verbundenen Client. Nachdem also ein Client eine TCP-Verbindung auf Port 4000 geöffnet hat, erhält er die Ausgabe von ls .

ls | nc -l -p 4000

Dadurch lauscht netcat auf Port 4000. Lassen Sie diese Sitzung vorerst in Ruhe.

Öffnen Sie eine weitere Terminalsitzung auf demselben Computer.

Da ich einen TCP-Port geöffnet habe, verwende ich telnet um auf TCP-Konnektivität zu prüfen. Wenn der Befehl nicht vorhanden ist, installieren Sie ihn erneut mit Ihrem Paketmanager.

Format für Telnet :

telnet [hostname/IP address] [port number]

Geben Sie also Ihre Server-IP und die Portnummer ein, die 4000 lautet in meinem Fall, und führen Sie diesen Befehl aus.

telnet localhost 4000

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

Sie erhalten eine ähnliche Ausgabe, die anzeigt, dass eine Verbindung mit dem lauschenden Programm (nc ).

Wie Sie sehen können, ist die Ausgabe von ls (while.sh in meinem Fall) wurde ebenfalls an den Client gesendet, was auf eine erfolgreiche TCP-Verbindung hinweist!

Um Ihnen zu zeigen, dass der Port tatsächlich offen ist, können wir nmap verwenden um dies zu überprüfen.

nmap localhost -p 4000

Tatsächlich wurde unser Hafen geöffnet! Wir haben erfolgreich einen neuen Port auf unserem Linux-System geöffnet!

HINWEIS :nmap listet nur geöffnete Ports auf, die eine aktuell lauschende Anwendung haben. Wenn Sie keine lauschende Anwendung wie netcat verwenden, wird der Port 4000 als geschlossen angezeigt, da derzeit keine Anwendung an diesem Port lauscht. Ebenso funktioniert Telnet auch nicht, da es auch eine lauschende Anwendung benötigt, an die es sich binden kann. Das ist der Grund, warum nc ist so ein nützliches Werkzeug. Dies simuliert solche Umgebungen in einem einfachen Befehl.

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

Regeln müssen nach jedem Neustart aktualisiert werden

Der in diesem Artikel vorgestellte Ansatz aktualisiert die Firewall-Regeln nur vorübergehend, bis das System heruntergefahren/neu gestartet wird. Daher müssen ähnliche Schritte wiederholt werden, um denselben Port nach einem Neustart wieder zu öffnen.

Für ufw-Firewall

Der ufw Regeln sind nicht wird beim Neustart zurückgesetzt, wenn Sie also ein Ubuntu-Benutzer sind, brauchen Sie sich um diesen Teil keine Gedanken zu machen!

Dies liegt daran, dass es in den Bootvorgang integriert ist und der Kernel die Firewall-Regeln mit ufw speichert , über entsprechende Konfigurationsdateien.

Für Firewalld

Wie bereits erwähnt, firewalld leidet ebenfalls unter dem gleichen Problem, aber dies kann vermieden werden, indem ein --permananent angehängt wird Flag zum Anfangsbefehl, wenn ein Port geöffnet oder eine andere Regel gesetzt wird.

Beispielsweise können Sie den TCP-Port 4000 öffnen dauerhaft mit dem folgenden Befehl:

firewall-cmd --zone=public --add-port=400/tcp --permanent

Für iptables

Für die iptables Firewall, obwohl sich diese Unannehmlichkeiten nicht vermeiden lassen, konnten wir den Aufwand minimieren.

Wir können die iptables speichern Regeln in eine Konfigurationsdatei wie /etc/iptables.conf .

sudo iptables-save | sudo tee -a /etc/iptables.conf

Wir können es dann nach dem Neustart aus der Konfigurationsdatei abrufen, indem wir den folgenden Befehl verwenden:

sudo iptables-restore < /etc/iptables.conf

Jetzt die iptables Die Regeln sind jetzt aktualisiert und unsere Ports sind wieder geöffnet!

Schlussfolgerung

In diesem Tutorial haben wir Ihnen gezeigt, wie Sie unter Linux einen neuen Port öffnen und für eingehende Verbindungen einrichten können.


Linux
  1. Wie schließt man Ports unter Linux?

  2. Effizient testen, ob ein Port unter Linux offen ist?

  3. So öffnen Sie einen Port unter Linux

  4. wie man netstat auf einem bestimmten Port in Linux verwendet

  5. Auflisten ungenutzter SATA-Ports unter Linux

So suchen Sie unter Linux nach Listening Ports (Ports in use)

So führen Sie einen Port-Scan unter Linux durch

So finden und schließen Sie offene Ports in Linux

So verwenden Sie Netcat zum Scannen offener Ports in Linux

So pingen Sie eine Portnummer in Linux an

Wie überprüfe ich offene Ports in Linux?