>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Go

So sperren Sie den direkten Zugriff auf die Produktionsumgebung, ohne den Verstand zu verlieren

SSH-Schlüssel an Ingenieure zu verteilen, wird oft zum Chaos. Jemand kündigt, aber sein öffentlicher Schlüssel bleibt auf Dutzenden von Produktionsservern. Jemand führt versehentlich einen gefährlichen Befehl im falschen Terminal aus, und dann verbringen Sie einen halben Tag in den Systemprotokollen, um herauszufinden, wessen Sitzung es war.

Mit wachsender Serveranzahl und expandierendem Team werden direkte Maschinenverbindungen zum Albtraum. In der Regel schauen Unternehmen an diesem Punkt auf das 4A-Konzept: Authentifizierung, Autorisierung, Abrechnung und Auditierung. Die Bereitstellung schwergewichtiger Lösungen wie Teleport oder CyberArk erfordert jedoch erhebliche Zeit und Ressourcen.

Ich bin kürzlich auf ein Projekt namens OneTerm auf GitHub gestoßen. Es ist ein leichtgewichtiges Open-Source-Zugangsgateway in Go und Vue.js. Es löst das Problem des zentralisierten Serverzugriffs ohne komplexe Konfiguration.

Was steckt in OneTerm

Das Prinzip ist einfach: OneTerm wird eine Schicht zwischen Mitarbeitern und der Produktionsinfrastruktur. Entwickler verbinden sich nicht direkt über SSH oder RDP mit Hosts. Sie melden sich im Web-Dashboard von OneTerm an und starten von dort die gewünschte Sitzung.

Das Projekt deckt grundlegende Sicherheitsanforderungen ab:

  • Einheitlicher Zugangspunkt mit Unterstützung für Zwei-Faktor-Authentifizierung.
  • Vergabe von Berechtigungen für bestimmte Server und Benutzergruppen.
  • Video- und Textprotokollaufzeichnung für jede Sitzung. Wenn etwas auf einem Server ausfällt, kann der Vorgang im integrierten Player zur detaillierten Untersuchung wiedergegeben werden.
  • Sitzungsisolation, um zu verhindern, dass Benutzer sich gegenseitig beeinträchtigen und ihre Berechtigungen innerhalb des Gateways eskalieren.
  • Schutz interner Hosts vor direktem Zugriff aus dem externen Internet.

Neben dem Standard-SSH unterstützt OneTerm auch RDP- und VNC-Protokolle. Dies ist nützlich für diejenigen, die Windows-Server oder virtuelle Maschinen mit grafischen Oberflächen in ihrer Infrastruktur betreiben.

Technischer Stack und Integrationen

Der Projekt-Stack ist ziemlich vertraut. Das Backend ist in Go geschrieben, und die Benutzeroberfläche ist mit Vue.js unter Verwendung der Ant Design Vue-Bibliothek aufgebaut. Der Go-Build bietet niedrigen Speicherverbrauch und schnelle Web-Terminal-Leistung.

Die Entwickler haben eine native Integration mit Veops CMDB hinzugefügt. Dies ist ein weiteres ihrer Open-Source-Projekte. Wenn die Gerätebuchhaltung in ihrem CMDB gepflegt wird, werden Server mit einem Klick in den Bastion importiert. Keine manuelle Eingabe von IP-Adressen, Ports und Anmeldedaten erforderlich.

Werfen wir einen Blick auf die Systemoberfläche.

Das Terminal funktioniert direkt im Browserfenster. Ingenieure müssen keine lokalen Clients konfigurieren, Tunnel einrichten oder Schlüssel auf ihren Laptops speichern.

Zugriffsrechte werden basierend auf Zeit und Rollen segmentiert. Sie können den Zugriff auf einen Server nur für die Bereitschaftszeit oder während technischer Arbeiten gewähren.

So deployen und testen Sie

Für eine lokale Einführung haben die Autoren eine Docker Compose-Konfiguration vorbereitet. Der Start dauert ein paar Minuten:

git clone https://github.com/veops/oneterm.git
cd oneterm/deploy
docker compose up -d

Nach dem Start der Container öffnet sich die Weboberfläche unter http://127.0.0.1:8666. Der Standard-Login ist admin, und das Passwort ist 123456.

Für eine Produktionsumgebung ist diese Option nicht geeignet. Für diesen Fall haben die Entwickler ein interaktives Setup-Skript ./setup.sh geschrieben. Es generiert zufällige Passwörter für die Datenbank und interne Dienste, aktualisiert die Konfigurationen selbst und speichert ein Backup.

git clone https://github.com/veops/oneterm.git
cd oneterm/deploy
./setup.sh
docker compose up -d

Wenn Sie eigene Funktionen hinzufügen möchten, hat das Projekt fertige Hot-Reload-Skripte für Frontend und Backend: ./dev-start.sh frontend und ./dev-start.sh backend. Node.js Version 14.17.6+ und Go Version 1.21.3+ sind für den Build erforderlich.

Nuancen und Einschränkungen

Bevor Sie das Tool in eine Produktionsumgebung bringen, sollten Sie einige Besonderheiten berücksichtigen:

  • Der Code wird unter der AGPL-3.0-Lizenz vertrieben. Wenn Sie sich entscheiden, daraus eine geschlossene kommerzielle SaaS-Lösung zu machen, müssen Sie Ihre Änderungen offenlegen.
  • Der main-Branch im Repository wird ständig aktualisiert und kann instabil funktionieren. Für die Verwendung auf Servern sollten Sie nur gebaute Releases von der Releases-Seite verwenden.
  • Die Dokumentation ist noch ziemlich knapp. Entwickler antworten in GitHub Issues, aber einige Details müssen direkt aus dem Quellcode herausgefunden werden.

Zusammenfassung

OneTerm eignet sich für kleine Operations-Teams und Systemadministratoren, die schnell eine Zugriffsverwaltung organisieren möchten. Wenn Sie einen einfachen Bastion-Host mit Sitzungsaufzeichnung, Zugriffssegmentierung und SSH- und RDP-Unterstützung benötigen, deckt das Projekt grundlegende Aufgaben ohne unnötige Komplexität ab.

Sie können die Oberfläche ohne Installation auf dem offiziellen Demo oneterm.v1ops.com mit Login demo und Passwort 123456 ausprobieren.

Ähnliche Projekte