OpenSSH ist eine Sammlung von Netzwerkdienstprogrammen, die es ermöglichen, Netzwerkdienste sicher über ein ungesichertes Netzwerk zu betreiben. OpenSSH ist weit verbreitet und bietet eine sichere Methode für die Remote-Verwaltung von Servern und den Transfer von Dateien. Im Folgenden wird erklärt, wie OpenSSH zur Einrichtung eines abhörsicheren Shellzugriffs verwendet werden kann.
Installation und Konfiguration auf dem Server
Viele Linux-Distributionen haben OpenSSH bereits vorinstalliert. Falls dies bei Ihrer Distribution nicht der Fall ist, können Sie OpenSSH über den Paketmanager Ihrer Distribution installieren. Bei Ubuntu wäre das beispielsweise:
sudo apt-get update
sudo apt-get install openssh-serverNach der Installation muss der SSH-Dienst konfiguriert werden. Die Konfigurationsdatei für den SSH-Dienst befindet sich in der Regel unter /etc/ssh/sshd_config. Hier können Sie verschiedene Parameter wie den Port, auf dem der Dienst laufen soll, oder die Authentifizierungsmethode einstellen. Zum Bearbeiten dieser Datei benötigen Sie Root-Rechte:
sudo nano /etc/ssh/sshd_configIn dieser Datei können Sie die Zeile “PermitRootLogin” auf “no” setzen, um zu verhindern, dass sich Benutzer mit dem Root-Konto über SSH anmelden können. Dies ist eine wichtige Sicherheitsmaßnahme.
Nachdem Sie Ihre Änderungen vorgenommen haben, speichern Sie die Datei und starten Sie den SSH-Dienst neu, um die Änderungen wirksam werden zu lassen:
sudo service ssh restartEinrichtung auf dem Client
Auf der Client-Seite müssen Sie ebenfalls sicherstellen, dass OpenSSH installiert ist. Auf einem Ubuntu-System können Sie das wie folgt tun:
sudo apt-get update
sudo apt-get install openssh-clientSobald OpenSSH installiert ist, können Sie eine Verbindung zu einem Server herstellen, indem Sie den Befehl ssh gefolgt vom Benutzernamen und der IP-Adresse des Servers verwenden:
ssh user@server-ipVerwendung von Schlüsseln zur Authentifizierung
Eine der sichersten Methoden zur Authentifizierung beim Zugriff auf einen Server über SSH ist die Verwendung von Schlüsselpaaren. Anstatt ein Passwort einzugeben, verwenden Sie ein privates Schlüsselpaar, das nur Ihnen bekannt ist, und einen öffentlichen Schlüssel, der auf dem Server gespeichert ist.
Um ein neues Schlüsselpaar zu erzeugen, verwenden Sie den Befehl ssh-keygen auf dem Client-Computer:
ssh-keygen -t rsa -b 4096Dies erzeugt ein neues Schlüsselpaar mit einer Länge von 4096 Bit. Sie werden aufgefordert, ein sicheres Passwort für den privaten Schlüssel einzugeben. Dieses Passwort wird benötigt, um den privaten Schlüssel zu verwenden.
Um Ihren öffentlichen Schlüssel auf den Server zu übertragen, können Sie den Befehl ssh-copy-id verwenden:
ssh-copy-id user@server-ipJetzt können Sie sich ohne Passwort, nur mit Ihrem privaten Schlüssel, am Server anmelden.
Diese Einrichtung stellt sicher, dass Ihr Shellzugriff
abhörsicher ist und bietet eine starke Verteidigung gegen mögliche Angriffe. Es ist jedoch wichtig, sich daran zu erinnern, dass die Sicherheit ein fortlaufender Prozess ist und dass Sie stets wachsam sein und Ihre Systeme regelmäßig aktualisieren sollten.
SSH (Secure Shell) ermöglicht eine sichere Verbindung zwischen zwei Netzwerkgeräten. Eine der Funktionen von SSH ist die Möglichkeit der Port-Weiterleitung, auch als SSH-Tunneling bezeichnet. Dies kann nützlich sein, um sichere Kommunikationen für andere Protokolle wie HTTP zu ermöglichen, oder um Zugang zu einem internen Netzwerk von außerhalb zu erhalten.
Es gibt drei Arten der SSH Port-Weiterleitung:
Lokale Port-Weiterleitung (Outbound SSH Tunneling): Leitet einen Port auf Ihrem lokalen Computer zu einem Port auf dem Server weiter.
Entfernte Port-Weiterleitung (Inbound SSH Tunneling): Leitet einen Port auf dem Server zu einem Port auf Ihrem lokalen Computer weiter.
Dynamische Port-Weiterleitung (SOCKS Proxy over SSH): Erstellt einen SOCKS-Proxyserver, der die Daten auf Ports auf der Grundlage der benötigten Ressourcen weiterleitet.
Hier ist ein Beispiel für jede Art von Port-Weiterleitung:
Lokale Port-Weiterleitung:
ssh -L lokal_port:remote_host:remote_port benutzername@ssh_serverBeispiel:
ssh -L 8080:www.google.com:80 benutzername@ssh_serverDies leitet den lokalen Port 8080 auf Ihrem Computer zu www.google.com:80 über ssh_server.
Entfernte Port-Weiterleitung:
ssh -R remote_port:lokaler_host:lokaler_port benutzername@ssh_serverBeispiel:
ssh -R 8080:localhost:3000 benutzername@ssh_serverDies leitet den Port 8080 auf dem ssh_server zu Port 3000 auf Ihrem lokalen Computer.
Dynamische Port-Weiterleitung:
ssh -D lokal_port benutzername@ssh_serverBeispiel:
ssh -D 8080 benutzername@ssh_serverDies öffnet den Port 8080 auf Ihrem Computer als SOCKS-Proxy, der den gesamten Datenverkehr über ssh_server leitet.
Für alle diese Befehle ersetzen Sie benutzername durch
Ihren Benutzernamen und ssh_server durch die IP-Adresse
oder den Domainnamen des SSH-Servers, mit dem Sie sich verbinden
möchten.
Bitte beachten Sie, dass die genauen Befehle und Optionen, die Sie
verwenden, von Ihrer spezifischen Situation und den Anforderungen
abhängen können. Weitere Informationen finden Sie in der Manpage von SSH
(man ssh) oder in der offiziellen
OpenSSH-Dokumentation.
In der SSH-Konfigurationsdatei können Administratoren bestimmte
Benutzer erlauben oder ablehnen, sich per SSH zu verbinden, indem sie
die Direktiven AllowUsers und DenyUsers
verwenden.
Um diese Direktiven zu nutzen, sind die folgenden Schritte erforderlich:
Öffnen Sie die SSH-Konfigurationsdatei mit einem Texteditor Ihrer
Wahl. Sie benötigen Root-Berechtigungen dafür. Zum Beispiel mit dem
Befehl sudo nano /etc/ssh/sshd_config.
Um bestimmten Benutzern den Zugang zu erlauben, verwenden Sie die
Direktive AllowUsers, gefolgt von den Benutzernamen, die
Sie erlauben möchten, getrennt durch Leerzeichen. Zum Beispiel:
AllowUsers user1 user2. Dies erlaubt nur user1
und user2, sich per SSH zu verbinden. Alle anderen Benutzer
werden abgelehnt.
Um bestimmten Benutzern den Zugang zu verbieten, verwenden Sie
die Direktive DenyUsers, gefolgt von den Benutzernamen, die
Sie ablehnen möchten, getrennt durch Leerzeichen. Zum Beispiel:
DenyUsers user3 user4. Dies verhindert, dass
user3 und user4 sich per SSH verbinden können.
Alle anderen Benutzer können sich verbinden, sofern sie nicht durch
andere Regeln eingeschränkt sind.
Speichern Sie die Änderungen und schließen Sie den Texteditor.
Um die Änderungen wirksam zu machen, müssen Sie den SSH-Dienst
neu starten. Je nach Ihrem System kann der Befehl dafür variieren, aber
hier sind ein paar gängige Optionen:
sudo systemctl restart ssh oder
sudo service ssh restart.
Es ist wichtig zu beachten, dass AllowUsers und
DenyUsers gemeinsam verwendet werden können, aber
AllowUsers hat Vorrang. Das bedeutet, wenn ein Benutzer in
beiden Listen steht, wird er trotzdem abgelehnt. Ebenso, wenn
AllowUsers verwendet wird, werden alle Benutzer, die nicht
explizit erlaubt sind, abgelehnt, selbst wenn sie nicht in
DenyUsers aufgeführt sind.
Obwohl die Direktiven AllowUsers und
DenyUsers spezifische Benutzernamen erwarten und den
Platzhalter ALL nicht unterstützen, können Sie in den
SSH-Konfigurationsparametern AllowGroups und
DenyGroups den Begriff ALL verwenden, um sich
auf alle Gruppen zu beziehen. Beispielsweise erlaubt
AllowGroups group1 group2 und DenyGroups ALL
nur Benutzern in den Gruppen group1 und group2
SSH-Verbindungen herzustellen, während alle anderen Gruppen
(repräsentiert durch ALL) verweigert werden.
Der korrekte Einsatz von Benutzer- und Gruppenkontrollen in der SSH-Konfiguration kann Administratoren dabei helfen, den Zugang zu ihren Systemen besser zu verwalten und die Sicherheit ihrer Netzwerke zu erhöhen.
In den Direktiven AllowUsers und DenyUsers
in der SSH-Konfigurationsdatei können Sie den Begriff ALL
verwenden, um sich auf alle Benutzer zu beziehen. Beachten Sie jedoch,
dass AllowUsers und DenyUsers spezifische
Benutzernamen erwarten und nicht die Platzhalter ALL
unterstützen.
Falls Sie auf alle Benutzer verweisen möchten, müssen Sie keine
Benutzernamen in AllowUsers angeben, da standardmäßig alle
Benutzer zugelassen sind, solange sie über die korrekten
Anmeldeinformationen verfügen. In ähnlicher Weise würde das Weglassen
von DenyUsers dazu führen, dass kein Benutzer explizit
abgelehnt wird.
Wenn Sie jedoch speziell auf die SSH-Konfigurationsparameter
AllowGroups und DenyGroups hinweisen, können
Sie ALL verwenden, um sich auf alle Gruppen zu
beziehen.
Hier ist ein Beispiel:
AllowGroups group1 group2
DenyGroups ALLIn diesem Fall dürfen nur Benutzer in den Gruppen group1
und group2 SSH-Verbindungen herstellen, während alle
anderen Gruppen (repräsentiert durch ALL) verweigert
werden.
Vergessen Sie nicht, den SSH-Dienst neu zu starten, nachdem Sie Änderungen an der Konfigurationsdatei vorgenommen haben, um sicherzustellen, dass die neuen Einstellungen wirksam werden.
Entschuldigung für das Missverständnis. Ja, Sie können in der
SSH-Konfigurationsdatei bestimmte Benutzer erlauben oder ablehnen, sich
per SSH zu verbinden. Die Direktiven, die Sie dafür verwenden, sind
AllowUsers und DenyUsers.
Hier ist, wie Sie sie verwenden können:
Öffnen Sie die SSH-Konfigurationsdatei mit einem Texteditor Ihrer Wahl. Sie benötigen Root-Berechtigungen dafür. Zum Beispiel:
sudo nano /etc/ssh/sshd_configUm bestimmten Benutzern den Zugang zu erlauben, verwenden Sie die
Direktive AllowUsers, gefolgt von den Benutzernamen, die
Sie erlauben möchten, getrennt durch Leerzeichen. Beispiel:
AllowUsers user1 user2
Dies erlaubt nur user1 und user2, sich per
SSH zu verbinden. Alle anderen Benutzer werden abgelehnt.
Um bestimmten Benutzern den Zugang zu verbieten, verwenden Sie
die Direktive DenyUsers, gefolgt von den Benutzernamen, die
Sie ablehnen möchten, getrennt durch Leerzeichen. Beispiel:
DenyUsers user3 user4
Dies verhindert, dass user3 und user4 sich
per SSH verbinden können. Alle anderen Benutzer können sich verbinden,
sofern sie nicht durch andere Regeln eingeschränkt sind.
Speichern Sie die Änderungen und schließen Sie den Texteditor.
Um die Änderungen wirksam zu machen, müssen Sie den SSH-Dienst neu starten. Je nach Ihrem System kann der Befehl dafür variieren, aber hier sind ein paar gängige Optionen:
sudo systemctl restart sshoder
sudo service ssh restartBitte beachten Sie, dass AllowUsers und
DenyUsers gemeinsam verwendet werden können, aber
AllowUsers hat Vorrang. Das bedeutet, wenn ein Benutzer in
beiden Listen steht, wird er trotzdem abgelehnt. Ebenso, wenn
AllowUsers verwendet wird, werden alle Benutzer, die nicht
explizit erlaubt sind, abgelehnt, selbst wenn sie nicht in
DenyUsers aufgeführt sind.