A menu based build & install script for Guacamole 1.5.2 with support for SSL reverse proxy, AD integration, multi-factor authentication and further security hardening.
- Install Nginx Reverse Proxy?: y/n ( n = use Guacamole native front end `http://hostname.local:8080/guacamole`)
- Sub option if no reverse proxy: Set default Guacamole url to http root? ( y = `http://hostname.local:8080`)
- Install Nginx with no SSL?: y/n ( y = `httP://hostname.local`)
- Install Nginx with self-signed SSL certificate?: y/n ( y = `httpS://hostname.local`) - *Configures Nginx with a new self signed TLS certificate and generates corresponding Windows/Linux client certificates*
- Install Nginx with Let's Encrypt certificate?: y/n ( y =`httpS://public.site.com`) - *Configures Nginx with a new LetsEncrypt certificate and sets up auto renewals.)*
3. Edit the "Silent setup options" section of `1-setup.sh`.
- *Note that script variables with an actual setting (e.g., `VARIABLE="value"`) will NOT prompt during the interactive setup. This means that with the right combination of variable inputs, it is possible to mass deploy a full Guacamole appliance with Nginx & SSL with zero touch.*
4. After setting your custom variable values in `1-setup.sh`, you must run the modified script saved locally with `./1-setup.sh` Beware: If you run the wget link again you will overwrite all your changes!
- *For adaptations made to any other downloaded script, you must comment out the relevant wget lines in the "Download GitHub Setup" section at the top of `1-setup.sh` to prevent these from being re-downloaded and overwritten as well.*
- *There should be no need to customise any scripts other than `1-setup.sh` as all install options are managed in the first parent script.*
- *Be aware that all optional (manually run) `add-xxxx.sh` scripts are dynamically updated during the installation with the exact variables you selected at install. Editing anything other than `1-setup.sh` may break this functionality, so make changes only if you understand the impacts.*
-`add-auth-duo.sh`: Adds the Duo MFA extensions if not selected during install (optional)
-`add-auth-ldap.sh`: Adds the Active Directory extension and setup template if not selected at install (optional)
-`add-auth-totp.sh`: Adds the TOTP MFA extension if not selected at install (optional)
-`add-ssl-guac-gaucd.sh`: A hardening script to wrap traffic between the guacd server & the Guacamole client application in TLS (optional)
-`add-fail2ban.sh`: Adds a fail2ban policy (with local subnet override) to secure Guacamole against external brute force attacks
-`add-smtp-relay-o365.sh`: Sets up a TLS/SMTP auth relay with O365 for monitoring & alerts (BYO app password)
-`backup-guacamole.sh`: A simple Guacamole backup script
-`branding.jar`: An example customised Guacamole login screen to brand Guacamole to your own requirements (or delete to keep the default interface.) This is a modified version of https://github.com/Zer0CoolX/guacamole-customize-loginscreen-extension but with with additional support for browser favicons.
Special acknowledgement to [MysticRyuujin](https://github.com/MysticRyuujin/guac-install) whose repository provided many helpful ideas in assembling this project.