Bearbeiten

Implementieren einer Open-Source-Jumpserverlösung in Azure

Azure Virtual Machines
Azure Load Balancer
Azure Virtual Network
Azure Database for MySQL

In diesem Beispielszenario wird eine Hochverfügbarkeitslösung für einen in Azure ausgeführten Jumpserver beschrieben. Dabei kommt ein Open-Source-Tool namens Apache Guacamole zum Einsatz, das ähnliche Funktionen wie Azure Bastion bietet.

Apache®, Apache Guacamole und das Flammenlogo sind entweder eingetragene Marken oder Marken der Apache Software Foundation in den USA und/oder anderen Ländern. Die Verwendung dieser Markierungen impliziert kein Endorsement durch die Apache Software Foundation.

Aufbau

Die Architektur umfasst einen öffentlichen Lastenausgleich, der externe Zugriffsanforderungen empfängt und sie an zwei virtuelle Computer (VMs) auf der Webebene weiterleitet. Die Webebene kommuniziert mit der Datenebene, auf der in einer MySQL-Datenbank Anmeldeinformationen, Zugriffsereignisse und Verbindungen gespeichert werden.

Diagramm einer Referenzarchitektur für Apache Guacamole in Azure.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. Ein Benutzer leitet eine Verbindung über das Internet ein.
  2. Die Verbindung des Benutzers wird mit der öffentlichen Azure Load Balancer-Instanz eingerichtet.
  3. Die öffentliche Azure Load Balancer-Instanz empfängt den externen Zugriff und leitet den Datenverkehr für die beiden VMs zur Webebene.
  4. Die Webebene kommuniziert mit Azure Database for MySQL auf der Datenebene. Diese Datenbank speichert Anmeldeinformationen, Zugriffsereignisse und Verbindungen.
  5. Die Verbindung mit den Zielclients wird über Secure Shell (SSH), Virtual Network Computing (VNC) oder Remotedesktopprotokoll (RDP) hergestellt.

Komponenten

  • Azure Load Balancer ist ein Dienst zur gleichmäßigen Verteilung der Last (bzw. des eingehenden Netzwerkdatenverkehrs) auf eine Gruppe von Back-End-Ressourcen oder Server.
  • Azure Virtual Network ist der Grundbaustein Ihres privaten Netzwerks in Azure.
  • Öffentliche IP-Adressen ermöglichen Internetressourcen die eingehende Kommunikation mit Azure-Ressourcen.
  • Azure DDoS Protection, kombiniert mit bewährten Methoden für den Anwendungsentwurf, bietet erweiterte Features zur DDoS-Risikominderung, um besser vor DDoS-Angriffen zu schützen. Sie sollten Azure DDOS Protection in allen virtuellen Umkreisnetzwerken aktivieren.
  • Netzwerksicherheitsgruppen dienen zum Filtern von Netzwerkdatenverkehr von und zu Azure-Ressourcen in einem virtuellen Azure-Netzwerk.
  • Eine Verfügbarkeitsgruppe ist eine logische Gruppierung von VMs, die es Azure ermöglicht, Redundanz und Verfügbarkeit bereitzustellen.
  • Azure Database for MySQL ist eine vollständig verwaltete MySQL-Database-as-a-Service-Lösung.

Alternativen

Wenn Sie nicht so viel Kontrolle benötigen, wie die hier beschriebene Lösung bietet, können Sie Azure Bastion einsetzen, einen vollständig verwalteten Dienst, der einen äußerst sicheren RDP- und SSH-Zugriff auf VMs bietet, ohne durch öffentliche IP-Adressen offengelegt zu werden.

Szenariodetails

Apache Guacamole ist ein clientloses Remotedesktopgateway, das Standardprotokolle wie VNC, RDP und SSH unterstützt. Da es clientlos ist, müssen Ihre Benutzer nichts installieren. Sie verwenden einfach einen Webbrowser, um remote auf Ihre VMs zuzugreifen.

Weitere Informationen zu Guacamole und seinen internen Komponenten finden Sie unter Implementierung und Architektur.

Damit diese Lösung Hochverfügbarkeit bieten kann, wird Folgendes verwendet:

Die Lösung verwendet außerdem Folgendes:

Mögliche Anwendungsfälle

  • Zugreifen auf Ihre Computer von einem beliebigen Gerät. Da Guacamole nur einen einigermaßen schnellen, mit Standards konformen Browser benötigt, kann es auf vielen Geräten, so z. B. Mobiltelefonen und Tablets, ausgeführt werden.
  • Hosten eines Computers in der Cloud. Auf virtualisierter Hardware gehostete Computer sind resilienter gegenüber Ausfällen. Angesichts der aktuellen bedarfsgesteuerten Verfügbarkeit von IT-Ressourcen ist Guacamole die perfekte Möglichkeit, auf Computer zuzugreifen, auf die nur über das Internet zugegriffen werden kann.
  • Bereitstellen eines einfachen Zugriffs für eine Gruppe von Personen. Sie können Guacamole verwenden, um den Zugriff auf eine große Gruppe von Computern zu zentralisieren und für jeden Benutzer festzulegen, auf welche Computer er zugreifen kann. Anstatt sich eine Liste von Computern und Anmeldeinformationen zu merken, müssen sich die Benutzer nur bei einem zentralen Server anmelden und eine der aufgelisteten Verbindungen auswählen.
  • Hinzufügen des HTML5-Remotezugriffs zu Ihrer vorhandenen Infrastruktur. Da Guacamole eine API und nicht bloß eine Webanwendung ist, können Sie die Kernkomponenten und Bibliotheken des Guacamole-Projekts verwenden, um einer vorhandenen Anwendung HTML5-Features für den Remotezugriff hinzuzufügen. Sie müssen nicht die eigentliche Guacamole-Webanwendung nutzen. Sie können ihre eigenen Anwendungen ganz einfach schreiben oder integrieren.

Überlegungen

Diese Überlegungen bilden die Säulen des Azure Well-Architected Framework, einer Reihe von Leitprinzipien, die Sie zur Verbesserung der Qualität eines Workloads verwenden können. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.

Zuverlässigkeit

Zuverlässigkeit stellt sicher, dass Ihre Anwendung Ihre Verpflichtungen gegenüber den Kunden erfüllen kann. Weitere Informationen finden Sie in der Überblick über die Säule „Zuverlässigkeit“.

Die Resilienz dieser Lösung hängt von den Ausfallmodi der einzelnen Dienste wie Azure Virtual Machines, Azure Database for MySQL und Azure Load Balancer ab. Weitere Informationen und Beispiele finden Sie in diesen Artikeln:

Informationen zur Notfallwiederherstellung finden Sie unter Business Continuity & Disaster Recovery.

Für Azure-VMs auf der Webebene können Sie mit Verfügbarkeitsgruppen eine logische Gruppierung von VMs erstellen, die Redundanz und Verfügbarkeit bietet. Wir empfehlen mindestens zwei VMs pro Verfügbarkeitsgruppe, um eine hochverfügbare Anwendung zu erstellen und die SLA von Azure zu erfüllen.

Da es sich bei Azure Database for MySQL um eine verwaltete Database-as-a-Service-Lösung handelt, ist ihre Architektur für integrierte Hochverfügbarkeit optimiert. Informationen zu SLAs finden Sie unter SLAs für Azure Database for MySQL.

Sicherheit

Sicherheit bietet Schutz vor vorsätzlichen Angriffen und dem Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Übersicht über die Säule „Sicherheit“.

Möglicherweise möchten Sie dieser Lösung Azure Web Application Firewall hinzufügen. So können Sie Ihre Anwendung vor gängigen Sicherheitsrisiken schützen. Diese Option von Azure Application Gateway verwendet OWASP-Regeln (Open Web Application Security Project), um Angriffe wie Cross-Site Scripting, Sessionhijacking und andere Exploits zu verhindern.

Als zusätzliche Schutzmaßnahme sollten Sie mit Azure-Netzwerksicherheitsgruppen arbeiten, um den Netzwerkdatenverkehr zu und von Azure-Ressourcen im virtuellen Azure-Netzwerk zu filtern.

Sie sollten auch Private Link für Azure Database for MySQL prüfen. Über Private Link können Sie eine Verbindung mit Platform-as-a-Service-Diensten (PaaS) in Azure über einen privaten Endpunkt herstellen. Im Prinzip macht Private Link Azure-Dienste in Ihrem privaten virtuellen Netzwerk verfügbar. Der Zugriff auf PaaS-Ressourcen erfolgt wie bei anderen Ressourcen im virtuellen Netzwerk über die private IP-Adresse.

Befolgen Sie schließlich beim Implementieren dieser Lösung folgende Sicherheitsleitlinien.

Kostenoptimierung

Bei der Kostenoptimierung geht es um die Suche nach Möglichkeiten, unnötige Ausgaben zu reduzieren und die Betriebseffizienz zu verbessern. Weitere Informationen finden Sie unter Übersicht über die Säule „Kostenoptimierung“.

Verwenden Sie den Preisrechner, um einen besseren Überblick über die Kosten für eine Umsetzung dieses Szenarios in Azure zu erhalten.

Weitere Informationen zu den Kosten dieser Lösung finden Sie unter:

Erstklassige Betriebsprozesse

Die Säule „Optimaler Betrieb“ deckt die Betriebsprozesse ab, die für die Bereitstellung einer Anwendung und deren Ausführung in der Produktion sorgen. Weitere Informationen finden Sie unter Übersicht über die Säule „Optimaler Betrieb“.

Für erstklassige Betriebsprozesse werden Zuverlässigkeit, Vorhersagbarkeit und automatisierte Vorgänge in Ihre Architektur integriert, damit Ihre Anwendung in der Produktion reibungslos funktioniert. Bereitstellungen müssen zuverlässig und vorhersagbar sein. Automatisierte Bereitstellungen verringern die Wahrscheinlichkeit menschlicher Fehler.

Implementieren Sie Softwareentwicklungsdisziplinen in Ihrer gesamten Umgebung, einschließlich dieser Vorgehensweisen:

Weitere Informationen finden Sie unter Entwurfsprinzipien für optimalen Betrieb.

Effiziente Leistung

Leistungseffizienz ist die Fähigkeit Ihrer Workload, auf effiziente Weise eine den Anforderungen der Benutzer entsprechende Skalierung auszuführen. Weitere Informationen finden Sie unter Übersicht über die Säule „Leistungseffizienz“.

Um dieses Ziel zu erreichen, sollten Sie Azure Virtual Machine Scale Sets verwenden, womit Sie eine Gruppe von VMs mit Lastenausgleich erstellen und verwalten können. Die Anzahl der VM-Instanzen kann automatisch je nach Bedarf oder nach einem festgelegten Zeitplan erhöht oder verringert werden.

Bereitstellen dieses Szenarios

Wir empfehlen, dass Sie in Azure Cloud Shell die Bash-Umgebung verwenden, um diese Lösung bereitzustellen. Wenn Sie die Befehle lieber in Ihrer eigenen Windows-, Linux- oder macOS-Umgebung ausführen möchten, installieren Sie die Azure CLI.

Schritte zur Bereitstellung finden Sie unter Bereitstellen von Apache Guacamole in Azure.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Andere Mitwirkende:

Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.

Nächste Schritte