This project allows you to easily set up a Guacamole jump-host with optional TLS reverse proxy (self-signed or Let's Encrypt), Active Directory integration, multi-factor authentication, Quick Connect & History Recording Storage UI enhancements, a custom UI dark themed template, auto database backup, email alerts and internal hardening options including fail2ban for defence against brute force attacks. There are also options for enterprise deployments similar to Amazon's Guacamole Bastion Cluster.
🚀 Paste the below link into a terminal & follow the prompts (do NOT run as root, the script will prompt for sudo):
wget https://raw.githubusercontent.com/itiligent/Guacamole-Install/main/1-setup.sh && chmod +x 1-setup.sh && ./1-setup.sh
🔒 A Compatible OS:
1-setup.sh
must have sudo permissions🔧 The main 1-setup.sh
script guides the installation with the following steps:
$HOME/guac-setup/tls-certs/[date-time]/
.⚙️ To customize the many available script options:
1-setup.sh
at the first prompt.1-setup.sh
. Other custom install notes:
/etc/nginx/nginx.conf
file after install.Post-install manual hardening options:
add-fail2ban.sh
: Adds a lockdown policy for Guacamole to guard against brute force password attacks.add-tls-guac-daemon.sh
: Wraps internal traffic between the guac server & guac application in TLS.add-auth-ldap.sh
: Template script for simplified Active Directory integration.add-smtp-relay-o365.sh
: Template script for email alert integration with MSO65 (BYO app password).🎨 Follow the theme and branding instructions here. To revert to the default theme, simply delete the branding.jar file from /etc/guacamole/extensions
, clear your browser cache and restart.
To renew self-signed certificates or change the reverse proxy local DNS name/IP address:
4a-install-tls-self-signed-nginx.sh
to create a new Nginx certificate (accompanying browser client certificates will also be updated). Always clear your browser cache after changing certificates.🔑 See here.
🔑 See here
🌐 To upgrade Guacamole, edit upgrade-guacamole.sh
to reflect the latest versions of Guacamole & MySQL connector/J before running. This script will automatically update TOTP, DUO, LDAP, Quick Connect, and History Recorded Storage extensions if present.
install-mysql-backend-only.sh
here to install a standalone instance of the Guacamole MySQL database.1-setup.sh
and point new installations to your separate database instance. Just say no to the "Install MySQL locally" option and any other local reverse proxy install options.📦 The autorun link downloads these files into $HOME/guac-setup
:
1-setup.sh
: The parent setup script.2-install-guacamole.sh
: Guacamole source build & installer script.3-install-nginx.sh
: Nginx installation script.4a-install-tls-self-signed-nginx.sh
: Install/refresh self-signed TLS certificates script.4b-install-tls-letsencrypt-nginx.sh
: Let's Encrypt for Nginx installer script.add-auth-duo.sh
: Duo MFA extension install script.add-auth-ldap.sh
: Active Directory extension installer template script.add-auth-totp.sh
: TOTP MFA extension installer script.add-xtra-quickconnect.sh
: Quick Connect console extension installer script.add-xtra-histrecstore.sh
: History Recorded Storage extension installer script.add-smtp-relay-o365.sh
: Script for O365 SMTP auth relay setup (BYO app password).add-tls-guac-daemon.sh
: Wrap internal traffic between guacd server & Guacamole web app in TLS.add-fail2ban.sh
: Fail2ban (& Guacamole protection policy) installer script.backup-guacamole.sh
: MySQL backup setup script.upgrade-guacamole.sh
: Guacamole application, extension, and MySQL connector upgrade script.branding.jar
: Base template for customizing Guacamole's UI theme.😄🥑