apt-get update apt-get install -y freerdp2-dev freerdp2-x11 tomcat9 tomcat9-admin tomcat9-common tomcat9-user xrdp \ gcc nano vim curl wget g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin libossp-uuid-dev \ libavcodec-dev libavformat-dev libavutil-dev libswscale-dev build-essential libpango1.0-dev \ libssh2-1-dev libvncserver-dev libtelnet-dev libpulse-dev libvorbis-dev libwebp-dev libwebsockets-dev \ mariadb-server \ mate-core mate-desktop-environment mate-notification-daemon mate-icon-theme mate-tweak gnome-system-tools #optional or just open port systemctl disable ufw cd ~/ wget https://archive.apache.org/dist/guacamole/1.5.0/source/guacamole-server-1.5.0.tar.gz tar xzf ~/guacamole-server-*.tar.gz cd ~/guacamole-server-*/ CFLAGS=-Wno-error ./configure --with-systemd-dir=/etc/systemd/system/ make make install ldconfig systemctl enable tomcat9 systemctl enable guacd systemctl restart tomcat9 guacd cd ~/ wget https://archive.apache.org/dist/guacamole/1.5.0/binary/guacamole-1.5.0.war mkdir /etc/guacamole mv guacamole-1.5.0.war /etc/guacamole/guacamole.war ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/ systemctl restart tomcat9 guacd systemctl status tomcat9 guacd mkdir /etc/guacamole/{extensions,lib} cat >> /etc/guacamole/logback.xml << EOL %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} – %msg%n EOL mkdir /var/guacamole echo "GUACAMOLE_HOME=/etc/guacamole" | sudo tee -a /etc/default/tomcat9 echo "export GUACAMOLE_HOME=/etc/guacamole" | sudo tee -a /etc/profile ln -s /etc/guacamole /var/lib/tomcat9/.guacamole #unix socket authentication == no mysql_secure_installation mysql -u root -p create database guacd; create user guacd_admin@localhost identified by 'p@ssw0rd'; grant SELECT,UPDATE,INSERT,DELETE on guacd.* to guacd_admin@localhost; flush privileges; quit VER=1.5.0 wget https://dlcdn.apache.org/guacamole/1.5.0/binary/guacamole-auth-jdbc-${VER}.tar.gz tar xzf guacamole-auth-jdbc-${VER}.tar.gz guacamole-auth-jdbc-${VER}/mysql cp guacamole-auth-jdbc-${VER}/mysql/guacamole-auth-jdbc-mysql-1.5.0.jar /etc/guacamole/extensions/ mysql -u root -p guacd < guacamole-auth-jdbc-${VER}/mysql/schema/001-create-schema.sql mysql -u root -p guacd < guacamole-auth-jdbc-${VER}/mysql/schema/002-create-admin-user.sql wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.28.tar.gz tar xzf mysql-connector-java-8.0.28.tar.gz cp mysql-connector-java-8.0.28/mysql-connector-java-8.0.28.jar /etc/guacamole/lib/ cat >> /etc/guacamole/guacamole.properties << EOL auth-provider: net.sourceforge.guacamole.net.auth.mysql.MySQLAuthenticationProvider mysql-hostname: localhost mysql-database: guacd mysql-username: guacd_admin mysql-password: p@ssw0rd EOL chown -R tomcat: /var/lib/tomcat9 wget -c -O guacamole-auth-totp-1.5.0.tar.gz https://apache.org/dyn/closer.lua/guacamole/1.5.0/binary/guacamole-auth-totp-1.5.0.tar.gz?action=download tar -xvf guacamole-auth-totp-1.5.0.tar.gz cp guacamole-auth-totp-1.5.0/guacamole-auth-totp-1.5.0.jar /etc/guacamole/extensions/ systemctl restart tomcat9 guacd systemctl status tomcat9 guacd ################################ Login with: Username: guacadmin Password: guacadmin change the password on the GENERAL setting tab. not the user setting tab!!! .... DOCKER: docker run --name guacamole1 --link some-guacd:guacd \ -e LDAP_HOSTNAME=172.17.42.1 \ -e LDAP_USER_BASE_DN=ou=people,dc=example,dc=com \ -e LDAP_CONFIG_BASE_DN=ou=connections,dc=example,dc=com \ -e MYSQL_HOSTNAME=172.17.42.1 \ -e MYSQL_DATABASE=guacamole_db \ -e MYSQL_USER=guacamole_user \ -e MYSQL_PASSWORD=some_password \ -d -p 8080:8080 guacamole/guacamole docker logs guacamole1 https://hub.docker.com/r/guacamole/guacamole docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql