Deutschland - Kennzeichen Deutschland

Incoterms:DDP
Alle Preise sind inklusive Zoll und Gebühren bei der Auswahl der Versandart.

Bitte bestätigen Sie Ihre Währungsauswahl:

Euro
Versand ist kostenfrei bei den meisten Bestellungen über 50 € (EUR)

US Dollar
Versand ist kostenfrei bei den meisten Bestellungen über $60 (USD)

Bench Talk for Design Engineers

Mouser German Blog

rss

Mouser Electronics, Inc german language blogs


SSH Teil 1: Konfigurieren von SSH für sichere Verbindungen Jeff Fellinge

Das Secure Shell (SSH)-Protokoll wird häufig für die Remoteverwaltung verwendet, da es verschlüsselte Verbindungen zwischen einem Client und einem entfernten Gerät bereitstellt sowie eine verschlüsselte bidirektionale Kommunikation zwischen zwei Systemen ermöglicht. Seit Jahrzehnten verlassen sich Entwickler auf das SSH-Protokoll, um sichere Befehlszeilensitzungen mit Linux®/UNIX-Umgebungen und Netzwerkgeräten einzurichten. Und mit der Verbreitung von Geräten für das Internet der Dinge (IoT) ist die Nutzung von SSH für eine sichere Anmeldung wichtiger denn je.

Verwendung von SSH in Client/Server-Anwendungen

SSH ist ein Protokoll, das in Client/Server-Anwendungen verwendet wird. Auf dem Server läuft ein SSH-Server oder -Daemon, und der SSH-Client ist standardmäßig auf den meisten UNIX- und Mac-Systemen sowie auf neueren Windows-Versionen installiert. Es gibt weitere kostenlose und kommerzielle Versionen, die zusätzliche Funktionen bieten, wie z. B. die individuelle Konfiguration und das Speichern häufiger Verbindungen. PuTTY ist ein beliebter kostenloser SSH-Client und SecureCRT von VanDyke Software ist ein beliebter kommerzieller Client.

Sie können SSH für verschiedene Aufgaben einsetzen, bei denen es auf eine sichere Remoteverbindung zu einem anderen Gerät ankommt, z. B.:

  • Sicheres Kopieren von Dateien zwischen einem Client und einem Server
  • Umleiten von Netzwerkprotokollen über eine sichere Tunnelverbindung
  • Interaktives Befehlszeilen-Dienstprogramm für die Remoteverwaltung

Einsatz von SSH zum sicheren Kopieren von Dateien

Über SSH können Sie mit dem Secure Copy Protocol (SCP) oder dem Secure File Transfer Protocol (SFTP) Dateien kopieren. Dabei erfolgt das Kopieren von Dateien jeweils über TCP 22, es kommen aber unterschiedliche Protokolle zum Einsatz. SSH übernimmt die Authentifizierung und Verschlüsselung. SFTP ist eine Erweiterung des SSH-Protokolls und benötigt einen zusätzlichen SFTP-Server auf der Serverseite. SFTP enthält einen robusteren Befehlssatz, beispielsweise für das Auflisten von Remote-Verzeichnissen und das Entfernen von Dateien. Diese Funktionen bietet SCP nicht.

Umleiten von Netzwerkverkehr über einen SSH-Tunnel für sichere Remoteverwaltung

SSH unterstützt auch verschiedene andere Funktionen, wie beispielsweise die Möglichkeit, anderen Netzwerkverkehr über eine hergestellte SSH-Tunnelverbindung abzukapseln. Sobald Sie eine SSH-Tunnelverbindung erstellt haben, können Sie z. B: anderen Anwendungen vorgeben, eine Verbindung zu Ihrem lokalen Host auf einem bestimmten Port herzustellen; ein klassisches Beispiel hierfür ist ein Webserver. Das System sendet dann alle nachfolgenden Netzwerkaufrufe an einen Zielserver. Dadurch sind Remoteverbindungen zu einem Netzwerk möglich, ohne diesen Dienst im Internet sichtbar zu machen.

Interaktive SSH-Befehle für die sichere Remoteverwaltung nutzen

SSH bietet Authentifizierungs- und Verschlüsselungsfunktionen, mit denen Sie Ihr System so konfigurieren können, dass es Ihren Sicherheitsanforderungen entspricht. Standardmäßig ist SSH für die Authentifizierung mit Benutzername und Kennwort konfiguriert, aber Sie können auch eine Public-Key-Authentifizierung und eine zusätzliche Multi-Faktor-Authentifizierung (MFA) hinzufügen, die durch andere Module (wie OATH-TOTP) bereitgestellt wird. Die Multi-Faktor-Authentifizierung hat sich im Vergleich mit einer alleinigen Authentifizierung mit Passwort als widerstandsfähiger gegen Phishing-Angriffe erwiesen, da MFA zur Bestätigung einer Identität neben dem Passwort noch mindestens einen weiteren Faktor benötigt.

SSH-Serverkonfigurationen können mit der Befehlszeile pro Benutzer oder systemweit über die Datei SSH_config vorgenommen werden, die sich normalerweise in /etc/SSH/SSHd_config befindet.

Die Konfiguration von SSH für die Authentifizierung mit Benutzername und Kennwort ist am einfachsten. Standardmäßig müssen Sie hierzu für viele Geräte nur ein Benutzerkonto auf dem Server erstellen, ein Kennwort zuweisen, sicherstellen, dass der SSH-Server-Dämon installiert ist und läuft, und schon können Sie loslegen.

Melden Sie sich remote auf einem Client-Computer mit dem folgenden Befehl beim Server an:

ssh username@remotehost

Wenn Sie sich zum ersten Mal an einem neuen Gerät anmelden, erhalten Sie eine Warnung, dass die Authentizität des Servers oder des Geräts, mit dem Sie sich verbinden, nicht überprüft werden kann. Dies ist normal und eine ausgezeichnete Sicherheitsmaßnahme. Der SSH-Client zeigt Ihnen den Host-Key, der vom Server bereitgestellt wurde. Um sicherzustellen, dass der Server, mit dem Sie sich verbinden, tatsächlich auch der Server ist, mit dem Sie sich verbinden wollen (und nicht ein Spoof oder ein Man-in-the-Middle), sollten Sie seine Identität überprüfen. Verwenden Sie dazu auf dem Server den folgenden Befehl, um den Public-Key des Servers auszugeben:

ssh-keygen -l -f <filename of the key located on the host (often in /etc/SSH)>

Zum Beispiel:

ssh-keygen -l -f ssh_host_ecdsa_key.pub

Vergleichen Sie dann die Ausgabe dieses Befehls mit dem Hash, den Ihnen der SSH-Client ausgegeben hat. Sie müssen dies nur einmal tun. Der SSH-Client speichert diesen Eintrag in einer Liste aller bekannten Hosts, bei denen Sie sich zuvor angemeldet haben, in der Datei ~/.SSH/known_hosts und warnt Sie nur, wenn eine Diskrepanz festgestellt wird.

Das Einrichten von Zertifikaten zur Authentifizierung ist etwas komplizierter, aber viele Internetseiten beschreiben die erforderlichen Schritte im Detail. So ist beispielsweise auf https://ssh.com eine sehr gute Anleitung verfügbar. Diese Seiten zeigen die Besonderheiten der Installation und Konfiguration von SSH und Zertifikaten für verschiedene Linux-Distributionen. Die erzeugten Schlüssel sind konkrete Zugangsdaten und genauso wichtig wie ein Benutzername und ein Passwort und sollten mit Sorgfalt eingesetzt und gut geschützt werden. Diese Zertifikate ermöglichen den Zugriff auf Ihre Geräte.

Im Allgemeinen gehen Sie dabei wie folgt vor:

Erzeugen Sie mit dem Befehl ssh-keygen ein Schlüsselpaar, das einen Autorisierungsschlüssel (öffentlich) und einen Identitätsschlüssel (privat) enthält. Der Befehl ssh-keygen erzeugt im Verzeichnis ~/.ssh standardmäßig ein neues öffentliches/privates Schlüsselpaar für SSH-Protokoll 2 (SSH-2) RSA. Wenn Sie sich beim Erstellen Ihrer SSH-Schlüssel für die Eingabe eines Passwortes entscheiden, müssen Sie dieses Passwort erneut eingeben, wenn Sie sich mit dem Schlüssel am Remote-Computer anmelden möchten. Die erneute Eingabe des Passwortes ist eine gute Sicherheitsmaßnahme, da das Passwort Ihren privaten Schlüssel verschlüsselt und einen Angreifer daran hindert, ihn zu verwenden.

            Führen Sie von einer Befehlszeile auf dem Client-Computer folgenden Befehl aus:

            ssh-keygen

    

Kopieren Sie den öffentlichen Schlüssel vom Client-Computer auf den Server. Bei Verwendung der ssh-Standardeinstellungen hat dieser Schlüssel eine .pub-Erweiterung und befindet sich neben dem privaten Schlüssel im .ssh-Verzeichnis des Benutzers. Nachdem Sie ssh-keygen zur Erzeugung der ssh-Schlüssel ausgeführt haben, führen Sie folgenden Befehl auf dem Client-Computer aus:

ssh-copy-id username@remotehost

Dieses Tool sucht nach den Schlüsseln auf Ihrem Client-Computer und meldet sich auf dem von Ihnen angegebenen Remote-Computer an und kopiert die Schlüssel in eine (neue) Datei, die sich unter ~/.ssh/authorized_keys befindet.

Damit ist der Prozess in der einfachsten Form abgeschlossen. Wenn Sie sich nun bei diesem Remote-Gerät anmelden, wird dabei Ihr Zertifikat für die Authentifizierung verwendet.

Angabe der Verschlüsselung, die verwendet werden soll

Mit SSH können Sie auch angeben, welche Verschlüsselung verwendet werden soll. Nicht alle Verschlüsselungen sind gleich, und einige sollten Sie vermeiden. Die meisten modernen Linux-Distributionen sind standardmäßig auf akzeptable Verschlüsselungen eingestellt, aber ältere Geräte unterstützen diese möglicherweise nicht. Um ein Downgrading einzuschränken und nicht gewünschte Verschlüsselungen zu entfernen, bearbeiten Sie die Datei sshd_config und geben Sie die Verschlüsselungen an, die Sie unterstützen möchten. Wenn Ihr Server oder Gerät eine neuere Version von OpenSSH unterstützt, können Sie den folgenden Befehl ausführen, um den erweiterten Testmodus aufzurufen, der viele Konfigurationsoptionen auflistet, einschließlich der Liste der aktivierten Verschlüsselungsalgorithmen:

sshd -T

Auf der OpenSSH-Website finden Sie aktuelle Hinweise zu den besten Algorithmen für symmetrische, Host-Schlüssel-, Schlüsselaustausch- und Nachrichten-Authentifizierungscodes. Das National Institute of Standards and Technology (NIST) bietet auch Empfehlungen, welche Verschlüsselungen aufgrund unzureichender Schlüssellänge oder der Algorithmen selbst vermieden werden sollten.

Wesentliche Punkte:

SSH ist ein sehr leistungsfähiges und nützliches Tool, um eine Verbindung zu zahlreichen Geräten herzustellen. IoT-Geräte, die eine interaktive Anmeldung ermöglichen, unterstützen SSH. Sie sollten sich jedoch davor hüten, solche Geräte in Netzwerken einzusetzen, die nicht vertrauenswürdig sind.

  • Der SSH-Standard umfasst Tools, die eine sichere Remoteverwaltung von IoT-Geräten und Cloud-Infrastrukturen ermöglichen.
  • SSH bietet moderne Verschlüsselungs- und Authentifizierungskontrollen, einschließlich einer Multi-Faktor-Authentifizierung mit passwortgeschützten Zertifikaten.
  • Die OpenSSH-Suite bietet alle Tools, die Sie für den Einsatz von SSH zur Remoteverwaltung Ihrer Linux-Systeme und Netzwerkgeräte benötigen.


« Zurück


Jeff Fellinge hat 25 Jahre Erfahrung in unterschiedlichen Fachbereichen, vom Maschinenbau bis hin zur Informationssicherheit. Er leitete die Programme im Bereich Informationssicherheit eines großen Cloud-Anbieters mit dem Ziel, Risiken zu mindern und die Effektivität der Sicherheitsmaßnahmen in einem der größten Rechenzentren der Welt zu verbessern. Fellinge recherchiert und bewertet mit Begeisterung Technologien, mit denen sich die Sicherheit von Unternehmen und Infrastrukturen verbessern lassen. Er besitzt und betreibt auch eine kleine Werkstatt für Metallherstellung.


Alle Autoren

Alle anzeigen Alle anzeigen
Blog nach Datum anzeigen