diff --git a/README.md b/README.md index bfe7abe..504af92 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,43 @@ - - # guac-install Script for installing Guacamole 1.1.0 on Ubuntu 16.04 or newer (with MySQL, or remote MySQL). It should also work on pure [Debian](https://www.debian.org/), [Raspbian](https://www.raspberrypi.org/downloads/raspbian/) or [Kali Linux](https://www.kali.org/). I have tested this with Debian 10.3.0 (Buster). **If other versions don't work please open an issue.** It is likely due to a required library having a different name. Run script, enter MySQL Root Password and Guacamole User password. Guacamole User is used to connect to the Guacamole Database. -The script attempts to install tomcat9 by default. It will fall back on tomcat8 **if the available version is 8.5.x or newer**, otherwise it will fall back to tomcat7. If you want to manually specify a tomcat version there's a commented out line you can modify. Have at it. +The script attempts to install `tomcat9` by default (it will fall back on `tomcat8` **if the available version is 8.5.x or newer**, otherwise it will fall back to `tomcat7`). If you want to manually specify a tomcat version there's a commented out line you can modify. Have at it. If you're looking to also have NGINX / Let's Encrypt / HTTPS click [HERE](https://github.com/bigredthelogger/guacamole) ## MFA/2FA -By default the script will not install MFA support (QR code for Google/Microsoft Authenticator, Duo Mobile, etc. or Duo Push), if you do want MFA support you need to specify the `-t` or `--totp` or for Duo `-d` or `--duo` flags on the command line. Or modify the script variables `installTOTP=true` or `installDuo=true`. **Do not install both** +By default the script will not install MFA support (QR code for Google/Microsoft Authenticator, Duo Mobile, etc. or Duo Push), if you do want MFA support you can use the `-t` or `--totp` or for Duo `-d` or `--duo` flags on the command line. Or modify the script variables `installTOTP=true` or `installDuo=true`. **Do not install both** ## How to Run: ### Download file directly from here: -wget https://git.io/fxZq5 +`wget https://git.io/fxZq5` ### Make it executable: -chmod +x guac-install.sh +`chmod +x guac-install.sh` ### Run it as root: Interactive (asks for passwords): -./guac-install.sh +`./guac-install.sh` Non-Interactive (values provided via cli): -./guac-install.sh --mysqlpwd password --guacpwd password +`./guac-install.sh --mysqlpwd password --guacpwd password --nomfa --installmysql` OR -./guac-install.sh -r password -gp password +`./guac-install.sh -r password -gp password -o -i` Once installation is done you can access Guacamole by browsing to: http://:8080/guacamole/ -The default credentials are guacadmin as both username and password. Please change them or disable guacadmin after install! +The default credentials are `guacadmin` as both username and password. Please change them or disable guacadmin after install! # guac-upgrade @@ -51,43 +49,47 @@ If looks for the tomcat folder in /etc/ (E.G. `/etc/tomcat7` or `/etc/tomcat8`) Install MySQL: --i or --installmysql +`-i or --installmysql` Do *NOT* install MySQL: --n or --nomysql +`-n or --nomysql` MySQL Host: --h or --mysqlhost +`-h or --mysqlhost` MySQL Port: --p or --mysqlport +`-p or --mysqlport` MySQL Root Password: --r or --mysqlpwd +`-r or --mysqlpwd` Guacamole Database: --db or --guacdb +`-db or --guacdb` Guacamole User: --gu or --guacuser +`-gu or --guacuser` Guacamole User Password: --gp or --guacpwd +`-gp or --guacpwd` + +No MFA (No TOTP + Duo): + +`-o or --nomfa` Install TOTP: --t or --totp +`-t or --totp` Install Duo: --d or --duo +`-d or --duo` NOTE: Only the switches for MySQL Host, MySQL Port and Guacamole Database are available in the upgrade script. @@ -100,18 +102,18 @@ NOTE: Only the switches for MySQL Host, MySQL Port and Guacamole Database are av ### Download file directly from here: -wget https://raw.githubusercontent.com/MysticRyuujin/guac-install/master/guac-upgrade.sh +`wget https://raw.githubusercontent.com/MysticRyuujin/guac-install/master/guac-upgrade.sh` ### Make it executable: -chmod +x guac-upgrade.sh +`chmod +x guac-upgrade.sh` ### Run it as root: Interactive (asks for passwords): -./guac-upgrade.sh +`./guac-upgrade.sh` Non-Interactive (MySQL root password provided via cli): -./guac-upgrade.sh --mysqlpwd password +`./guac-upgrade.sh --mysqlpwd password` diff --git a/guac-install.sh b/guac-install.sh index 353549a..103a272 100755 --- a/guac-install.sh +++ b/guac-install.sh @@ -70,7 +70,7 @@ while [ "$1" != "" ]; do ;; -gp | --guacpwd ) shift - guacpwd="$1" + guacPwd="$1" ;; # MFA selection @@ -79,6 +79,11 @@ while [ "$1" != "" ]; do ;; -d | --duo ) installDuo=true + ;; + -o | --nomfa ) + installTOTP=false + installDuo=false + ;; esac shift done @@ -154,28 +159,36 @@ if [ -z "$guacDb" ]; then guacDb="guacamole_db" fi -# Get MySQL "Root" and "Guacamole User" password -while true; do - echo - read -s -p "Enter ${mysqlHost}'s MySQL root password: " mysqlRootPwd - echo - read -s -p "Confirm ${mysqlHost}'s MySQL root password: " PROMPT2 - echo - [ "$mysqlRootPwd" = "$PROMPT2" ] && break - echo "Passwords don't match. Please try again." -done +if [ -z "${mysqlRootPwd}" ]; then + # Get MySQL "Root" and "Guacamole User" password + while true; do + echo + read -s -p "Enter ${mysqlHost}'s MySQL root password: " mysqlRootPwd + echo + read -s -p "Confirm ${mysqlHost}'s MySQL root password: " PROMPT2 + echo + [ "$mysqlRootPwd" = "$PROMPT2" ] && break + echo "Passwords don't match. Please try again." + done +else + echo -e "${BLUE}Read MySQL password from command line argument${NC}" +fi echo -while true; do - echo -e "${BLUE}A new MySQL user will be created (${guacUser})${NC}" - read -s -p "Enter ${mysqlHost}'s MySQL guacamole user password: " guacPwd - echo - read -s -p "Confirm ${mysqlHost}'s MySQL guacamole user password: " PROMPT2 - echo - [ "$guacPwd" = "$PROMPT2" ] && break - echo "Passwords don't match. Please try again." - echo -done +if [ -z "${guacPwd}" ]; then + while true; do + echo -e "${BLUE}A new MySQL user will be created (${guacUser})${NC}" + read -s -p "Enter ${mysqlHost}'s MySQL guacamole user password: " guacPwd + echo + read -s -p "Confirm ${mysqlHost}'s MySQL guacamole user password: " PROMPT2 + echo + [ "$guacPwd" = "$PROMPT2" ] && break + echo "Passwords don't match. Please try again." + echo + done +else + echo -e "${BLUE}Read MySQL password from command line argument${NC}" +fi echo if [ "$installMySQL" = true ]; then