- Freitag, 27. Juli 2018
- Uncategorized
Wenn Sie Tutorials über Serverkonfiguration und Firewalls lesen, werden Sie oft auf IP-Adressen in diesem Format stoßen:
Der erste Teil ist Ihnen vielleicht bekannt, der Teil nach dem Doppelpunkt (:) jedoch nicht. Diese Zahl (8080) steht für einen Netzwerkanschluss.
Eine IP-Adresse ist eine eindeutige Zahlenfolge, die eine Schnittstelle in einem Netzwerk, häufig im Internet, darstellt. Mit einer IP-Adresse kann das Netz Datenpakete an die Netzwerkschnittstelle eines bestimmten Geräts weiterleiten, z. B. eines Servers, eines Routers oder sogar Ihres Telefons.
Auf diesen Geräten laufen viele Programme, die Daten aus dem Netz empfangen und an andere Geräte senden möchten. Aber die IP-Adresse sagt dem empfangenden Gerät nichts darüber, für welches Programm die Daten bestimmt sind. Das ist die Aufgabe des Netzwerk-Ports.
In jedem Datenpaket, das über eine TCP- oder UDP-Verbindung (einschließlich HTTP (Web), SSH, FTP, DNS und die meisten anderen bekannten Protokolle) gesendet wird, gibt es eine Quell- und eine Ziel-Portnummer.
Diese Nummern stehen nicht für ein Gerät oder einen physischen Port wie einen Ethernet-Port oder einen Lightning-Port. Sie sind ein Softwarekonstrukt, das einen Prozess, der einen Dienst bereitstellt, mit Datenpaketen verbindet, die den entsprechenden Zielport haben.
Ein Prozess ist ein Stück Software, das auf dem Server läuft. Ein Webserver ist ein Prozess, ebenso wie SSH-Server, FTP-Server und DNS-Server. Jedes Programm, das auf einem Server läuft, ist ein Prozess.
Das Betriebssystem eines Servers verwendet Ports, um sicherzustellen, dass die Daten vom richtigen Prozess empfangen werden, indem sie oft an einen für diesen Zweck zugewiesenen Speicherbereich weitergeleitet werden. Prozesse sind an einen bestimmten Port gebunden, und – im Falle von TCP-Verbindungen – kann nur ein Prozess an jeden Port gebunden sein. Wenn mehr als ein Prozess an einen Port gebunden ist, kommt es zu einem Konflikt, und die Daten werden möglicherweise nicht an den richtigen Prozess geliefert.
Ports werden durch Zahlen dargestellt, die von 0 bis 65535 reichen, der größten Zahl, die in eine vorzeichenlose 16-Bit-Ganzzahl passt. Einige dieser Nummern sind mit bestimmten Arten von Diensten verbunden. Die Ports 0 bis 1024 werden als bekannte Ports bezeichnet und sind üblicherweise mit den gängigsten Arten von Netzwerkdiensten verbunden. Webserver verwenden Port 80, SSH-Server Port 22 usw.
Ports von 1024 bis 49151 sind registrierte Ports. Sie können von Organisationen bei der ICANN zur Verwendung mit ihrer Software registriert werden. Ports oberhalb von 49151 sind private Ports, die für beliebige Zwecke verwendet werden können.
Wenn Sie den folgenden Befehl auf Ihrem CentOS-Server ausführen, können Sie eine Liste der Ports und der Dienste sehen, denen sie entsprechen.
less /etc/services
Die Funktionsweise von Ports zu verstehen, ist unter verschiedenen Umständen nützlich. Zum Beispiel zielen viele Brute-Force-Bots auf SSH-Server über Port 22. Vielleicht möchten Sie SSH mit einem anderen Port verknüpfen, damit Ihr Server nicht mit Tausenden von unzulässigen Login-Anfragen konfrontiert wird. Sie können den SSH-Port auf einen der privaten Ports (über 49151) ändern, indem Sie die Einstellung „Port“ in „/etc/ssh/sshd_config“ bearbeiten. Brute-Force-Bots werden dann nicht mehr in der Lage sein, den Port zu finden. Wenn Sie den SSH-Port ändern, stellen Sie sicher, dass Sie sich merken, was Sie geändert haben, sonst können Sie sich nicht mehr einloggen.
Ports sind auch nützlich für die Konfiguration von Firewalls und für den Betrieb von Entwicklungsservern: es ist üblich, Port 8080 als Alternative zu Port 80 für Webserver zu verwenden.
In einem zukünftigen Artikel werden wir uns ansehen, wie Ports verwendet werden, um CentOS-Server mit der iptables-Firewall zu sichern.