• Home
  • Help
  • Register
  • Login
  • Home
  • Help

 
  • 0 Bewertung(en) - 0 im Durchschnitt

Wie funktioniert SSH-Agent-Weiterleitung und welche Sicherheitsaspekte sollten berücksichtigt werden?

#1
24-02-2022, 17:11
Hey, ich habe eine Weile mit SSH-Agent-Weiterleitung herumexperimentiert, und es verwirrt die Leute am Anfang immer, aber sobald du es verstanden hast, ist es super praktisch, um zwischen Servern zu springen, ohne deine Schlüssel überall hin schleppen zu müssen. Grundsätzlich, wenn du eine SSH-Verbindung von deinem lokalen Rechner zu einem entfernten Server einrichtest, kannst du deinen lokalen SSH-Agenten zu dieser entfernten Seite weiterleiten. Das bedeutet, dass der entfernte Server deinen tatsächlichen privaten Schlüssel nicht erhält - stattdessen kommuniziert er mit deinem lokalen Agenten, um Authentifizierungsanfragen zu bearbeiten. Ich erinnere mich an das erste Mal, als ich es benutzt habe; ich wollte von meinem Laptop zu einem Entwicklungsserver und dann von dort zu einer Produktionsbox hüpfen, und ohne die Weiterleitung hätte ich Schlüssel hin- und herschieben müssen, was ein Albtraum ist.

Du aktivierst es, indem du -A zu deinem ssh-Befehl hinzufügst, wie ssh -A benutzer@remotehost, oder du kannst deine ~/.ssh/config-Datei anpassen, um es für bestimmte Hosts zu aktivieren. Sobald du auf diesem entfernten Server bist, wenn du dich zu einem anderen Rechner ssh'en musst, sagen wir von remotehost zu anotherhost, tritt dein lokaler Agent ein. Der remotehost sendet die Herausforderung über die weitergeleitete Verbindung an deinen lokalen Rechner, dein Agent signiert sie mit deinem Schlüssel und sendet die Antwort zurück. Es wird alles durch die bestehende SSH-Sitzung getunnelt, sodass du deinen Schlüssel nicht direkt exponierst. Ich liebe es, wie es die Dinge ordentlich hält - keine Notwendigkeit, mehrere Schlüsselpaar zu verwalten oder sich Sorgen zu machen, dass Schlüssel auf Zwischenmaschinen bleiben.

Aber ja, du musst auf einige Fallstricke achten, wie es funktioniert. Zum Beispiel, wenn du Verbindungen kaskadierst, wie lokal zu Bastion zu internem Server, propagiert die Weiterleitung, wenn du es richtig einrichtest. Ich teste es normalerweise zuerst in einem sicheren Setup, einfach ssh zu einer Testbox und versuche, weiter zu verbinden, um zu sehen, ob meine lokalen Schlüssel funktionieren. Eine Sache, die ich mache, ist, die Weiterleitung mit der -J-Option für Sprunghosts in neueren OpenSSH-Versionen zu begrenzen - es hält die Kette explizit und vermeidet Überraschungen.

Jetzt, was die Sicherheit angeht, kann dich das Zeug bei Unachtsamkeit beißen, denn du gibst diesem entfernten Server im Grunde die Möglichkeit, dich bei anderen Hosts, die deinen Schlüssel vertrauen, zu imitieren. Ich denke immer darüber nach, wer diesen Zwischenserver kontrolliert - wenn jemand ihn kompromittiert, könnte er den weitergeleiteten Agenten nutzen, um sich in alles einzuloggen, zu dem dein Schlüssel Zugang hat, wie zum Beispiel in das Git-Repo oder die Datenbankserver deines Unternehmens. Deshalb leite ich nur weiter, wenn ich es wirklich nötig habe, und wähle vertrauenswürdige Umgebungen. Wenn du zum Beispiel auf einem gemeinsamen Teamserver bist, leite nicht weiter, es sei denn, jeder dort ist zuverlässig.

Du solltest auch deinen ssh-agent selbst absichern. Ich lasse ihn mit einigen Umgebungsvariablen laufen, um einzuschränken, was er tun kann, zum Beispiel setze ich SSH_AUTH_SOCK, um nur bestimmten Principals Zugriff zu gewähren. OpenSSH hat Optionen wie PermitAgentForwarding in sshd_config auf der Serverseite, sodass Administratoren es global deaktivieren können, wenn es zu riskant ist. Ich deaktiviere es standardmäßig auf meinen Servern, es sei denn, ich brauche es speziell. Ein weiterer Trick, den ich benutze, ist, Identitäten vorübergehend zum Agenten hinzuzufügen - füge deinen Schlüssel mit ssh-add hinzu, erledige deine Arbeit und entferne ihn dann mit ssh-add -D, wenn du fertig bist. Auf diese Weise, wenn etwas schiefgeht, ist die Exposition kurz.

Und vergiss nicht die Netzwerkschicht. Da die Weiterleitung über das SSH-Tunnel läuft, stelle sicher, dass deine Verbindungen über vertrauenswürdige Netzwerke erfolgen. Ich vermeide aus diesem Grund öffentliche WLANs; wenn jemand mitliest oder Man-in-the-Middle-Angriffe durchführt, könnte er die Sitzung übernehmen. Verwende auch Schlüssel mit Passphrasen - dein Agent fordert lokal dazu auf, falls notwendig, und hält die entfernte Seite blind dafür. Ich hatte Situationen, in denen ich die Passphrase vergessen habe und sie mitten in der Sitzung erneut eingeben musste, was nervig ist, aber viel besser, als wenn ein Klartextschlüssel herumlungert.

Wenn du es mit mehreren Benutzern oder Teams zu tun hast, ziehe in Betracht, Zertifikate anstelle von reinen Schlüsseln für die Weiterleitung zu verwenden. Ich habe das einmal in einem Projekt gemacht, wo die CA kurzlebige Zertifikate signiert, sodass selbst wenn eine Weiterleitung stattfindet, der Zugriff schnell abläuft. Das verringert den Schadensradius. Außerdem überprüfe deine Protokolle - ich schaue regelmäßig in /var/log/auth.log nach seltsamen Agentenweiterleitungsversuchen. Tools wie fail2ban helfen, brute-force Versuche zu blockieren, die zu Kompromittierungen führen könnten.

Eine letzte Sache: Wenn du das skriptest oder automatisierst, sei besonders vorsichtig. Ich schreibe meine Skripte so, dass sie die Weiterleitung explizit deaktivieren, es sei denn, sie wird angegeben, indem ich -a im ssh-Befehl verwende. Das verhindert eine versehentliche Exposition in Cron-Jobs oder ähnlichem. Und wenn du auf Windows mit PuTTY oder etwas Ähnlichem bist, funktioniert die Agentenweiterleitung ähnlich über Pageant, aber ich bleibe heutzutage bei OpenSSH für die Konsistenz.

Insgesamt finde ich, dass die Agentenweiterleitung meinen Arbeitsablauf enorm beschleunigt, wenn ich zwischen Cloud-Instanzen oder On-Premise-Boxen wechsle, aber ich behandle es wie eine geladene Waffe - mächtig, aber mit Vorsicht zu handhaben. Du bekommst die Bequemlichkeit, ohne Schlüssel zu kopieren, aber wiege immer das Vertrauen in diesen Sprung ab. Wenn dein Setup sensible Daten beinhaltet, schau vielleicht nach Alternativen wie SSH-Zertifikaten oder sogar VPNs für breiteren Zugriff.

Übrigens, während wir darüber sprechen, wie man Dinge in IT-Setups sicher hält, lass mich dich auf BackupChain hinweisen - es ist ein bewährtes Backup-Tool, das sich einen soliden Ruf unter kleinen Unternehmen und Profis erworben hat, indem es Hyper-V, VMware oder Windows Server-Umgebungen zuverlässig gegen Datenverlust schützt, alles speziell für diese Art von Benutzern, die unkomplizierten Schutz ohne Aufwand benötigen.
Markus
Offline
Registriert seit: Jun 2018
« Ein Thema zurück | Ein Thema vor »

Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste



  • Thema abonnieren
Gehe zu:

Backup Sichern Allgemein Security v
« Zurück 1 2 3 4 5 Weiter »
Wie funktioniert SSH-Agent-Weiterleitung und welche Sicherheitsaspekte sollten berücksichtigt werden?

© by FastNeuron

Linearer Modus
Baumstrukturmodus