Ein umfassender Leitfaden: SSH-Portnummern und die Funktionsweise von SSH
Im modernen digitalen Zeitalter nimmt die Häufigkeit von Cyberangriffen rapide zu, darunter Bedrohungen wie Datenlecks, Hacking und Identitätsdiebstahl. Um diesen Verbrechen vorzubeugen, benötigt jedes Unternehmen Techniken wie SSH, um eine sichere Datenübertragung zwischen Geräten oder Computersystemen zu gewährleisten. In diesem Artikel erfahren Sie mehr über das SSH-Protokoll, die SSH-Portnummer, den Standard-SSH-Port und dessen Funktionsweise im Detail. Darüber hinaus werden Sie verschiedene Verschlüsselungsmethoden, Authentifizierungsprozesse, Befehle und Schlüsselkomponenten kennenlernen, die eine sichere Kommunikation über Netzwerke gewährleisten.
Was ist SSH?
SSH steht für Secure Shell und ist ein sicheres und robustes Netzwerkprotokoll, das eine sichere Möglichkeit für den Zugriff auf und die Verwaltung von Remote-Servern bietet. Das SSH-Protokoll ist der Ersatz für unsichere Protokolle wie FTP und Telnet. Die Hauptaufgabe von SSH besteht darin, einen sicheren Kommunikationskanal für den Zugriff auf Remote-Geräte herzustellen.
Die Kernfunktionen von SSH-Protokollen sind Datenverschlüsselung, Integritätsprüfungen und Identitätsauthentifizierung, die wir im Folgenden kurz beschreiben:
1. SSH verschlüsselt Daten während der Übertragung, um sie vor böswilligen Benutzern zu schützen.
2. Es nutzt verschiedene Authentifizierungstechniken, wie Passwörter und kryptografische Schlüssel, um die Identität von Benutzern und Geräten zu gewährleisten.
3. SSH stellt sicher, dass Daten während der Kommunikation nicht verändert wurden, indem es die Integrität der übertragenen Daten überprüft.
Systemadministratoren nutzen SSH häufig, um Remote-Server sicher zu verwalten und verschiedene administrative Aufgaben auszuführen. Es hilft auch bei der Übertragung von Dateien über SFTP (SSH File Transfer Protocol), was eine sichere Datenübertragung zwischen Systemen gewährleistet. Darüber hinaus ermöglicht es Benutzern, sichere Kanäle für verschiedene Anwendungen wie Datenbankzugriff oder das Surfen im Internet einzurichten.
Was ist ein Port in SSH?
Ein „Port“ im Netzwerk ist ein logischer oder virtueller Endpunkt für die Kommunikation innerhalb eines Computers oder Netzwerks. Ports ermöglichen es verschiedenen Diensten und Anwendungen, dieselbe physische Netzwerkverbindung zu nutzen und dabei separate Kommunikationskanäle aufrechtzuerhalten.
Bekannte Ports im Bereich von (0–1023) werden als „reservierte Ports“ für bestimmte Dienste bezeichnet, wie beispielsweise HTTP (Port 80), HTTPS (Port 443), FTP (Port 21) und SSH (Port 22). Diese standardisierten Zuweisungen tragen dazu bei, die Konsistenz über Netzwerke hinweg sicherzustellen.
Der SSH-Port dient als spezifischer Endpunkt für Verbindungen nach dem Secure-Shell-Protokoll auf einem Computer. Standardmäßig verwendet SSH Port 22, wenn Sie unter Linux Befehle ausführen, um über das Netzwerk zwischen zwei Servern zu kommunizieren.
Die gesamte Kommunikation läuft über eine festgelegte Portnummer, doch Sie können diesen Port ändern und ihn einer beliebigen anderen verfügbaren SSH-Portnummer zuweisen. Sie bieten eine sichere und verschlüsselte Möglichkeit, Remote-Server oder -Geräte zu verwalten oder darauf zuzugreifen, und gewährleisten so eine sichere Kommunikation über potenziell unsichere Netzwerke.
Wie funktioniert SSH (Secure Shell) auf Port 22?
SSH basiert auf einem Client-Server-Modell und ermöglicht eine sichere und verschlüsselte Kommunikation über Netzwerkverbindungen. Es wird häufig in Befehlszeilentools wie Fernanmeldungsanwendungen und Terminals verwendet. Linux-Benutzer bevorzugen die Verwendung des SSH-Ports für Fernzugriff und Serververwaltungsaufgaben. Daher stellt sich folgende Frage: Wie funktioniert SSH auf Port 22?
SSH nutzt Port 22, um einen sicheren und verschlüsselten Kommunikationskanal zwischen einem Client und einem Server herzustellen. Lassen Sie uns die Funktionsweise von SSH im Detail betrachten!
Schritt 1: Aufbau einer Verbindung
Der erste Schritt besteht darin, eine Verbindungsanfrage zwischen dem Client und dem Server zu initiieren. Wenn ein Benutzer oder Client eine SSH-Verbindung zu einem Server herstellen möchte, leitet er den Prozess ein, indem er eine Verbindungsanfrage an den Server sendet.
Als Reaktion darauf konfiguriert der Server Port 22 und wartet dort auf Anfragen für eingehende SSH-Verbindungen. Außerdem bestätigt er die Initiierung durch den Client und antwortet darauf.
Client und Server führen einen Verschlüsselungs-Handshake durch, bei dem beide Informationen austauschen, um eine sichere Verbindung herzustellen. Um die nachfolgende Kommunikation zu schützen, wählen sie im Rahmen dieses Prozesses gemeinsam Verschlüsselungsmethoden aus und tauschen kryptografische Schlüssel aus. Nach diesem Prozess wird ein gemeinsamer geheimer Schlüssel generiert, der zwischen beiden Geräten – dem Client als Benutzer und dem Remote-Server – geteilt wird.
Schritt 2: Benutzerauthentifizierung
Nach dem oben genannten Schritt nutzt der Client die gewählte Authentifizierungsmethode, um seine Identität gegenüber dem Server zu bestätigen. Die primären Methoden zur Authentifizierung von SSH-Benutzern sind Passwörter und SSH-Schlüssel.
Clients übertragen verschlüsselte Passwörter sicher an den Server. Dies kann die Bereitstellung eines kryptografischen Schlüssels, die Eingabe eines Passworts oder die Verwendung einer anderen von SSH unterstützten Authentifizierungsmethode beinhalten. Dennoch hängt die Sicherheit von Passwörtern von der vom Benutzer gewählten Komplexität ab. Die Verwendung von Passwörtern wird in manchen Fällen als riskante Authentifizierungsmethode angesehen.
Allerdings gelten Passwörter im Allgemeinen als weniger sicher im Vergleich zur Verwendung von SSH-Schlüsselpaaren (öffentlich-privat), die eine asymmetrische Verschlüsselung beinhalten. In diesem Prozess gewährt der Server dem Client-System Zugriff, sobald der Client die bereitgestellte Nachricht mit dem entsprechenden Schlüssel erfolgreich entschlüsselt hat.
Nach dem Authentifizierungsprozess wird ein sicherer Kanal zwischen dem Client und dem Server hergestellt. Dies gewährleistet den Datenschutz, da alle zwischen ihnen ausgetauschten Informationen verschlüsselt sind, wodurch es unbefugten Stellen unmöglich ist, die Kommunikation abzufangen oder mitzuhören.
Schritt 3: Einen sicheren Kanal herstellen und die Sitzung initiieren
Sobald der sichere Kanal hergestellt ist, wird eine SSH-Sitzung initiiert. Innerhalb dieser Sitzung kann der Client sicher mit dem Server interagieren und Aufgaben wie das Senden von Dateien, das Ausführen von Befehlen und andere autorisierte Aktionen durchführen.
Alle Befehle, Dateien und Daten, die während dieser Sitzung zwischen dem Client und dem Server ausgetauscht werden, sind verschlüsselt und durch den sicheren Kanal geschützt. Diese Verschlüsselung gewährleistet die Integrität der Daten und verhindert jegliche Manipulation während der Datenübertragung.
Wenn der Benutzer die SSH-Sitzung beendet, kann er die Verbindung schließen. Das Schließen des sicheren Kanals stellt sicher, dass keine weitere Kommunikation möglich ist, bis eine neue Sitzung initiiert wird.
Die Funktionsweise von SSH auf Port 22 umfasst die Gewährleistung einer sicheren Datenübertragung zwischen Client und Server, die Authentifizierung des Clients und die Einrichtung eines sicheren, verschlüsselten Kommunikationskanals. SSH genießt aufgrund der Implementierung von Verschlüsselung und sicheren Authentifizierungsmethoden großes Vertrauen und wird häufig für sicheren Fernzugriff und sichere Kommunikation genutzt.
Wie generiert man einen SSH-Schlüssel?
SSH bietet Benutzern eine sichere Möglichkeit, Befehle auf Remote-Servern auszuführen, Portweiterleitung zu ermöglichen, Tunnel einzurichten und verschiedene Aufgaben auszuführen. Es unterstützt mehrere Authentifizierungsmethoden, wobei die Passwortauthentifizierung und die auf öffentlichen Schlüsseln basierende Authentifizierung zu den gängigsten gehören.
Die auf öffentlichen Schlüsseln basierende Authentifizierung gilt allgemein als sicherer und bequemer als die Passwortauthentifizierung, da sie für erhöhte Sicherheit auf digitale Signaturen setzt.
Wenn Sie die SSH-Schlüssel-basierte Authentifizierung verwenden, können Sie auf Ihrem Linux-System mit den folgenden Schritten einen SSH-Schlüssel generieren:
Schritt 1: Überprüfen Sie die alte SSH-Schlüsseldatei
Beginnen Sie damit, einen SSH-Schlüssel auf dem Ubuntu-Client-Rechner zu erstellen, der für die Verbindung mit dem Server verwendet wird. Bevor Sie den SSH-Schlüssel generieren, müssen Sie unbedingt prüfen, ob auf Ihrem Client-System bereits ein SSH-Schlüsselpaar vorhanden ist. Dies ist wichtig, da so vermieden wird, dass das alte Schlüsselpaar durch ein neues überschrieben wird. Sie können das Vorhandensein der SSH-Schlüsseldatei auf Ihrem Client-Rechner mit dem folgenden Befehl überprüfen:
$ ls -l ~/.ssh/id_*.pub
Schritt 2: Erstellen eines SSH-Schlüsselpaars
Sollte die Fehlermeldung „No such file or directory“ (Keine solche Datei oder kein solches Verzeichnis) angezeigt werden, deutet dies darauf hin, dass auf Ihrem Rechner kein SSH-Schlüssel vorhanden ist. Fahren Sie in diesem Fall mit dem nächsten Schritt fort. Erstellen Sie das SSH-Schlüsselpaar auf dem Ubuntu-Client-Rechner, indem Sie den folgenden Befehl ausführen, um ein neues Schlüsselpaar mit 4096 Bit zu erstellen, wobei die E-Mail-Adresse des Benutzers als Kommentar verwendet wird:
$ ssh-keygen
oder
$ ssh-keygen -t rsa -b 4096 -C „[email protected]“
Durch die Ausführung des oben genannten Befehls „ssh-keygen“ wird ein standardmäßiges 3072-Bit-RSA-Schlüsselpaar erstellt. Um den SSH-Schlüssel am Standardort im Unterverzeichnis „.ssh/“ zu speichern, drücken Sie einfach die Eingabetaste.
Anschließend werden Sie aufgefordert, eine Passphrase einzugeben, um eine zusätzliche Sicherheitsebene hinzuzufügen. Beachten Sie jedoch, dass Sie diese Passphrase bei jeder Anmeldung an einem Remote-Rechner eingeben müssen. Wenn Sie es vorziehen, das Feld mit der Standardeinstellung leer zu lassen, drücken Sie die Eingabetaste. Daraufhin wird der gesamte Ausgabebildschirm wie unten gezeigt auf dem Terminal angezeigt:
Überprüfen Sie die erfolgreiche Generierung des SSH-Schlüsselpaars auf dem Client-Rechner mit dem folgenden Befehl:
$ ls ~/.ssh/id_*
Das generierte SSH-Schlüsselpaar sollte auf dem Terminal angezeigt werden. Dies bedeutet, dass Sie das SSH-Schlüsselpaar auf dem Ubuntu-Client-Rechner erfolgreich generiert haben.
Schritt 3: Verbindung zum Remote-Server herstellen
Übertragen Sie als Nächstes den generierten öffentlichen SSH-Schlüssel auf den Remote-Ubuntu-Server, den Sie verwalten möchten. Verwenden Sie das Tool „ssh-copy-id“, da dies die empfohlene Methode zum Kopieren des öffentlichen Schlüssels auf den Remote-Server ist. Führen Sie den unten angegebenen Befehl auf dem Client-Rechner aus, um den öffentlichen Schlüssel mühelos auf Ihren Remote-Ubuntu-Server zu kopieren:
$ ssh-copy-id Benutzername@Server-IP-Adresse
Ersetzen Sie diese Server-IP-Adresse durch die IP-Adresse Ihres Systems.
Bei der ersten Systemverbindung werden möglicherweise mehrere Eingabeaufforderungen in Ihrem Terminal angezeigt. Geben Sie „yes“ ein und drücken Sie dann die Eingabetaste, um den Vorgang fortzusetzen. Der Server überprüft und validiert den zuvor auf dem Client-Rechner generierten SSH-Schlüssel. Sie können diesen generierten öffentlichen SSH-Schlüssel auch manuell mit dem folgenden Befehl auf einen Server kopieren:
$ cat ~/.ssh/id_rsa.pub | ssh Benutzername@Server-IP „mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys“
Ändern oder ersetzen Sie auch hier den Benutzernamen und die Server-IP durch die Angaben Ihres Servers.
Schritt 4: Melden Sie sich mit dem SSH-Schlüssel auf dem Remote-Server an
Um sich über SSH auf dem Remote-Server anzumelden, verwenden Sie den folgenden Befehl:
$ ssh Benutzername@ServerIP
Wenn Sie keine sichere Passphrase für den privaten Schlüssel festgelegt haben, können Sie sich sofort auf dem Remote-Server anmelden. In einem anderen Szenario, in dem Sie eine sichere Passphrase festgelegt haben, werden Sie während des Anmeldevorgangs aufgefordert, diese einzugeben.
Schritt 5: Deaktivieren der SSH-Passwortauthentifizierung
Wenn Sie die SSH-Passwortauthentifizierung deaktivieren möchten, um eine zusätzliche Sicherheitsebene zu schaffen, melden Sie sich vor der Deaktivierung mit sudo-Rechten bei Ihrem Remote-Server an. Öffnen Sie die SSH-Konfigurationsdatei „/etc/ssh/sshd_config“ mit folgendem Befehl:
$ sudo nano /etc/ssh/sshd_config
Navigieren Sie nun zu der folgenden Zeile und setzen Sie sie auf „no“.
PasswordAuthentication no
Speichern Sie diese Konfigurationsdatei und schließen Sie sie.
Nachdem Sie die Änderungen vorgenommen haben, ist es an der Zeit, den SSH-Dienst auf Ihrem Server neu zu starten oder neu zu laden, indem Sie den folgenden Befehl ausführen:
$ sudo systemctl restart ssh
Stellen Sie sicher, dass SSH auf Ihrem Server ordnungsgemäß funktioniert, bevor Sie die aktuelle Sitzung beenden. Wenn alles wie erwartet funktioniert, bedeutet dies, dass die SSH-Passwortauthentifizierung auf Ihrem Server deaktiviert ist.
Befehle zur Verwaltung von SSH auf dem Linux-System
Um einen OpenSSH-Server zu installieren, verwenden Sie den folgenden Befehl:
$ sudo apt install openssh-server
Um den SSH-Dienst zu starten und zu beenden, verwenden Sie die folgenden Befehle:
$ sudo systemctl start ssh
$ sudo systemctl stop ssh
Um den Status des SSH-Dienstes zu überprüfen und festzustellen, ob er auf Ihrem System läuft oder nicht, verwenden Sie:
$ sudo systemctl status ssh
Um den SSH-Dienst zu aktivieren, verwenden Sie diesen Befehl:
$ sudo systemctl enable ssh
Um den SSH-Dienst neu zu laden oder neu zu starten, führen Sie diesen Befehl aus:
$ sudo systemctl restart ssh
Um eine Verbindung zum SSH-Server herzustellen, verwenden Sie den folgenden Befehl:
$ ssh username@remotehost or IP-address
Wie konfiguriert man den SSH-Port 22 in der UFW-Firewall?
Stellen Sie sicher, dass die UFW (Uncomplicated Firewall) auf Ihrem Ubuntu-System aktiviert und aktiv ist. Falls sie nicht aktiviert ist, verwenden Sie den folgenden Befehl, um die UFW zu aktivieren:
$ sudo ufw enable
Sobald die UFW aktiviert ist, erteilen Sie mit dem folgenden Befehl die Berechtigung für SSH-Datenverkehr auf Port 22 in der UFW-Firewall:
$ sudo ufw allow 22/tcp
Wenn Sie den SSH-Server auf Ihrem System deaktivieren möchten, können Sie Port 22 mit dem folgenden Befehl deaktivieren oder blockieren:
$ sudo ufw deny 22/tcp
Um den Zugriff auf den SSH-Dienst zu deaktivieren, führen Sie die folgenden Befehle aus:
$ sudo systemctl stop ssh --now
$ sudo systemctl disable ssh --now
SSH-Implementierungen für Linux und Windows
Verschiedene SSH-Implementierungen und -Clients finden breite Anwendung auf unterschiedlichen Betriebssystemen:
- OpenSSH (Unix-basierte Systeme): OpenSSH dient als Standard-SSH-Implementierung für Unix-basierte Systeme wie Linux und macOS. OpenSSH ist für seine Zuverlässigkeit und Sicherheit bekannt und auf den meisten Unix-basierten Plattformen vorinstalliert.
- PuTTY (Windows): PuTTY ist ein beliebter SSH-Client, der für Windows entwickelt wurde. Er bietet eine benutzerfreundliche Oberfläche für sichere Verbindungen zu Remote-Servern. Darüber hinaus stellt PuTTY Zusatztools wie PuTTYgen für die Verwaltung von SSH-Schlüsseln bereit.
- SSH in PowerShell (Windows): In den letzten Jahren hat Microsoft OpenSSH in Windows PowerShell integriert. Diese Integration vereinfacht die Nutzung von SSH für Windows-Benutzer und macht Anwendungen von Drittanbietern überflüssig.
Wie lautet die Standard-SSH-Portnummer?
Wie bereits erwähnt, verwendet SSH standardmäßig Port 22. Jede SSH-Verbindung wird über den SSH-Port 22 hergestellt. Die Verwendung von Port 22 als Standard vereinfacht die Konfiguration für Benutzer und gewährleistet einen standardisierten Ansatz für SSH-Verbindungen.
In einigen Fällen gilt die Übertragung wichtiger Daten über diesen Port jedoch als unsicher. Daher wird empfohlen, die Standard-SSH-Portnummer 22 aufgrund bestimmter Sicherheitsprobleme auf eine andere Portnummer zu ändern.
Es stehen 65.536 Kommunikationsports zur Verfügung, um eine Verbindung zwischen Geräten herzustellen. Sie können einen davon auswählen, wenn Sie Ihre SSH-Portnummer ändern möchten. Dies ist ein kluger Ansatz, um Ihre Server vor Brute-Force-Angriffen zu schützen.
Wie ändert man den Standard-SSH-Port 22 in eine andere Portnummer?
Wenn Sie wichtige Kommunikation betreiben, die Sicherheit erfordert, ist es ratsam, die Standard-SSH-Portnummer zu ändern, um das Risiko von Brute-Force-Angriffen zu verringern. Da alle Angreifer wissen, dass Port 22 die Standard-SSH-Portnummer ist, wird er zu einem Hauptziel für Angriffe und öffnet Hackern die Tür für den Zugriff auf die von Ihnen bereitgestellten Daten. Durch die Verwendung eines anderen SSH-Ports können Sie das SSH-Protokoll effektiv für erhöhte Sicherheit nutzen.
Befolgen Sie die folgenden Schritte, um den SSH-Port 22 auf einen anderen Port zu ändern:
Schritt 1: Erstellen Sie eine Sicherungskopie der Datei „sshd_config“
Sie können den Standard-SSH-Port ganz einfach ändern, indem Sie die Portnummer in der Datei „sshd_config“ bearbeiten. Es ist jedoch wichtig, vor Änderungen an der Konfigurationsdatei eine Sicherungskopie Ihrer Datei zu erstellen. Verwenden Sie dazu den folgenden Befehl:
$ cp /etc/ssh/sshd_config /etc/ssh/sshd_backup_config
Der obige Befehl erstellt eine Kopie dieser Datei im selben Verzeichnis.
Schritt 2: Ändern des SSH-Standardports 22
Um den SSH-Standardport 22 zu ändern, öffnen Sie die Datei „ssh_config“ und führen Sie den folgenden Befehl aus:
$ sudo nano /etc/ssh/sshd_config
Der obige Befehl öffnet diese Konfigurationsdatei im Terminal-Fenster im Nano-Editor. Suchen Sie die folgende Codezeile:
#Port 22
Entfernen Sie das führende „#“-Symbol, um diese Zeile zu aktivieren, und ersetzen Sie diesen Port durch eine andere Nummer. Wir möchten beispielsweise die SSH-Portnummer auf 45571 ändern.
Port 45571
Es ist wichtig, diesen Port in Ihrer Firewall zuzulassen oder hinzuzufügen.
Schritt 3: Starten Sie den SSH-Dienst neu
Nachdem Sie den Port zur Firewall hinzugefügt haben, starten Sie den SSH-Dienst neu, um die Änderungen zu übernehmen.
$ sudo service sshd restart
Sobald Sie Ihr Gerät neu starten, werden die vorgenommenen Änderungen wirksam. Denken Sie daran, dass eine wichtige Sicherheitsmaßnahme darin besteht, die Standard-SSH-Portnummer unmittelbar nach der Anschaffung eines Linux-VPS zu ändern. Sie können diese Änderungen bequem testen, ohne sich aus Ihrer aktuellen SSH-Sitzung abmelden zu müssen.
Schritt 4: Testen des SSH-Ports
Sobald Sie den Standard-SSH-Port 22 geändert haben, geben Sie die Portnummer an, wenn Sie eine Verbindung vom Client-Rechner zum Server herstellen.
$ ssh Benutzername@userIP -p 45571
Nun hat sich Ihr Standard-SSH-Port geändert und ist auf Port 45571 eingestellt.
Fazit
In diesem Artikel haben wir gelernt, wie SSH auf Port 22 funktioniert und wie wir den Standard-SSH-Port auf eine andere Portnummer ändern können. Darüber hinaus haben wir verschiedene SSH-Befehle ausgeführt, die Ihnen helfen sollen, den SSH-Dienst und die Portnummer besser zu verstehen.
Ich hoffe, dass Sie nach dem Lesen dieses Tutorials in der Lage sind, Ihr System mit einem SSH-Server zu verbinden, und dass Sie die Portnummer problemlos ändern können, um Ihr System vor böswilligen Benutzern zu schützen.
Blog