Dieses Projekt ermöglicht Ihnen die einfache Einrichtung eines Guacamole-Jump-Hosts mit optionalem TLS-Reverse-Proxy (selbstsigniert oder Let's Encrypt), Active Directory-Integration, Multi-Faktor-Authentifizierung, Quick Connect- und History Recording Storage-Benutzeroberflächenverbesserungen sowie einer benutzerdefinierten Benutzeroberfläche mit dunklem Design Vorlage, automatische Datenbanksicherung, E-Mail-Benachrichtigungen und interne Härtungsoptionen, einschließlich fail2ban zur Abwehr von Brute-Force-Angriffen. Es gibt auch Optionen für Unternehmensbereitstellungen, die dem Guacamole Bastion Cluster von Amazon ähneln.
Fügen Sie den folgenden Link in ein Terminal ein und befolgen Sie die Anweisungen ( NICHT als Root ausführen, das Skript fordert zur Eingabe von sudo auf ):
wget https://raw.githubusercontent.com/itiligent/Guacamole-Install/main/1-setup.sh && chmod +x 1-setup.sh && ./1-setup.sh
Ein kompatibles Betriebssystem:
Debian: 12.x oder 11.x
Ubuntu LTS-Varianten: 24.04, 23.04, 22.04
Raspbian Buster oder Bullseye
1 CPU-Kern + 2 GB RAM für jeweils 25 Benutzer (plus minimaler RAM- und Festplattenspeicher für Ihr ausgewähltes Betriebssystem).
Offene TCP-Ports: 22, 80 und 443 (keine anderen Dienste verwenden 80, 8080 und 443)
Wenn Sie eine der TLS-Reverse-Proxy-Optionen auswählen, müssen Sie einen PRIVATEN DNS-Eintrag für die interne Proxy-Site erstellen und einen zusätzlichen PUBLIC DNS-Eintrag, wenn Sie die Option „Let's Encrypt“ auswählen.
Sudo- und Wget-Pakete installiert
Der Benutzer, der 1-setup.sh
ausführt, muss über Sudo-Berechtigungen verfügen
Das Hauptskript 1-setup.sh
leitet die Installation mit den folgenden Schritten:
Richten Sie den Systemhostnamen und den lokalen DNS-Namen ein (der lokale DNS muss für den TLS-Proxy konsistent sein).
Wählen Sie entweder eine lokale MySQL-Installation oder verwenden Sie eine bereits vorhandene lokale oder Remote-MySQL-Instanz.
Wählen Sie eine Authentifizierungserweiterung: DUO, TOTP, LDAP/Active Directory oder keine.
Wählen Sie optionale Konsolenfunktionen aus: Quick Connect und History Recorded Storage-UI-Integrationen.
Wählen Sie das Guacamole-Frontend: Nginx Reverse Proxy (HTTP oder HTTPS) oder verwenden Sie die native Guacamole-Schnittstelle auf Port 8080.
Neue Server- und Client-Browserzertifikate werden unter $HOME/guac-setup/tls-certs/[date-time]/
gespeichert.
Befolgen Sie optional die Anweisungen auf dem Bildschirm zum Importieren von Client-Zertifikaten, um HTTPS-Browserwarnungen zu vermeiden.
Wenn Sie sich für die Installation von Nginx mit selbstsigniertem TLS entscheiden:
So passen Sie die vielen verfügbaren Skriptoptionen an:
Beenden Sie 1-setup.sh
bei der ersten Eingabeaufforderung.
Alle konfigurierbaren Skriptoptionen werden unter Silent Setup-Optionen am Anfang von 1-setup.sh
angezeigt.
Bestimmte Kombinationen der Silent-Setup-Optionen ermöglichen eine vollständig unbeaufsichtigte Installation, die Massenbereitstellung oder stark angepasste Docker-Builds unterstützt.
Führen Sie Ihr bearbeitetes Skript lokal erneut aus, nachdem Sie Änderungen vorgenommen haben (führen Sie den Weblink zur automatischen Installation nicht erneut aus – siehe unten).
Weitere Hinweise zur benutzerdefinierten Installation:
Achtung: Durch die erneute Ausführung des automatischen Installationsprogramms wird die Skriptsuite erneut heruntergeladen und dadurch werden alle Ihre Skriptbearbeitungen überschrieben. Daher müssen Sie 1-setup.sh nach der Bearbeitung LOKAL ausführen. Wenn andere untergeordnete Skripte bearbeitet werden, müssen auch die entsprechenden Download-Links im 1-setup.sh-Skript auskommentiert werden.
Upgrade-Skripte werden automatisch an Ihre spezifischen Installationseinstellungen angepasst, um konsistente zukünftige Updates zu gewährleisten. (Wenn Sie nach der Installation erneut über den Link zur automatischen Installation herunterladen, werden alle benutzerdefinierten Einstellungen wie oben überschrieben.)
Der Nginx-Reverse-Proxy ist standardmäßig auf mindestens TLS 1.2 konfiguriert. Informationen zu alten Systemen finden Sie in den kommentierten Abschnitten der Datei /etc/nginx/nginx.conf
nach der Installation.
Ein täglicher MySQL-Sicherungsauftrag wird automatisch unter der Crontab des Skripteigentümers konfiguriert.
Die Quick Connect-Option bringt einige zusätzliche Auswirkungen auf die Sicherheit mit sich. Seien Sie sich der potenziellen Risiken in Ihrer Umgebung bewusst.
Manuelle Härtungsmöglichkeiten nach der Installation:
add-fail2ban.sh
: Fügt eine Sperrrichtlinie für Guacamole hinzu, um sich vor Brute-Force-Passwortangriffen zu schützen.
add-tls-guac-daemon.sh
: Umschließt den internen Datenverkehr zwischen dem Guac-Server und der Guac-Anwendung in TLS.
add-auth-ldap.sh
: Vorlagenskript für eine vereinfachte Active Directory-Integration.
add-smtp-relay-o365.sh
: Vorlagenskript für die Integration von E-Mail-Benachrichtigungen mit MSO65 (BYO-App-Passwort).
Befolgen Sie hier die Anweisungen zum Thema und Branding . Um zum Standarddesign zurückzukehren, löschen Sie einfach die Datei branding.jar aus /etc/guacamole/extensions
, leeren Sie den Browser-Cache und starten Sie neu.
So erneuern Sie selbstsignierte Zertifikate oder ändern Sie den lokalen DNS-Namen/die IP-Adresse des Reverse-Proxys:
Führen Sie 4a-install-tls-self-signed-nginx.sh
erneut aus, um ein neues Nginx-Zertifikat zu erstellen (begleitende Browser-Client-Zertifikate werden ebenfalls aktualisiert). Leeren Sie immer Ihren Browser-Cache, nachdem Sie Zertifikate geändert haben.
Siehe hier.
Siehe hier
Um Guacamole zu aktualisieren, bearbeiten Sie vor der Ausführung upgrade-guacamole.sh
um die neuesten Versionen von Guacamole und MySQL Connector/J anzuzeigen. Dieses Skript aktualisiert automatisch die Erweiterungen TOTP, DUO, LDAP, Quick Connect und History Recorded Storage, sofern vorhanden.
Für eine separate DATABASE-Ebene: Verwenden Sie hier install-mysql-backend-only.sh
, um eine eigenständige Instanz der Guacamole-MySQL-Datenbank zu installieren.
Für eine separate ANWENDUNGSebene: Führen Sie 1-setup.sh
aus und verweisen Sie neue Installationen auf Ihre separate Datenbankinstanz. Sagen Sie einfach Nein zur Option „MySQL lokal installieren“ und allen anderen lokalen Reverse-Proxy-Installationsoptionen.
Für eine separate FRONT-END-Ebene: Verwenden Sie die enthaltenen Nginx-Installationsskripte, um eine separate Nginx-Front-End-Ebene zu erstellen, und wenden Sie dann Ihre bevorzugte TLS-Lastausgleichstechnik an. Alternativ können AWS/Azure/GCP-Load-Balancer oder HA-Proxy im Vergleich zu Open Source Nginx eine bessere Sitzungspersistenz und -affinität bieten.
Der Autorun-Link lädt diese Dateien in $HOME/guac-setup
herunter:
1-setup.sh
: Das übergeordnete Setup-Skript.
2-install-guacamole.sh
: Guacamole-Quell-Build- und Installationsskript.
3-install-nginx.sh
: Nginx-Installationsskript.
4a-install-tls-self-signed-nginx.sh
: Selbstsigniertes TLS-Zertifikatsskript installieren/aktualisieren.
4b-install-tls-letsencrypt-nginx.sh
: Let's Encrypt für Nginx-Installationsskript.
add-auth-duo.sh
: Installationsskript für die Duo MFA-Erweiterung.
add-auth-ldap.sh
: Vorlagenskript für das Active Directory-Erweiterungsinstallationsprogramm.
add-auth-totp.sh
: Installationsskript für die TOTP-MFA-Erweiterung.
add-xtra-quickconnect.sh
: Installationsskript für die Quick Connect-Konsolenerweiterung.
add-xtra-histrecstore.sh
: Installationsskript für die Erweiterung „History Recorded Storage“.
add-smtp-relay-o365.sh
: Skript für die Einrichtung des O365-SMTP-Authentifizierungs-Relays (BYO-App-Passwort).
add-tls-guac-daemon.sh
: Internen Datenverkehr zwischen Guacd-Server und Guacamole-Web-App in TLS umschließen.
add-fail2ban.sh
: Installationsskript für Fail2ban (& Guacamole-Schutzrichtlinie).
backup-guacamole.sh
: MySQL-Backup-Setup-Skript.
upgrade-guacamole.sh
: Upgrade-Skript für Guacamole-Anwendung, Erweiterung und MySQL-Connector.
branding.jar
: Basisvorlage zum Anpassen des UI-Themes von Guacamole.