mkdir guacamole
cd guacamole
wget https://dlcdn.apache.org/guacamole/1.5.0/source/guacamole-server-1.5.0.tar.gz
tar -xvzf guacamole-server-1.5.0.tar.gz
cd guacamole-server-1.5.0
apt install build-essential -y
apt install -y libcairo2-dev libjpeg62-turbo-dev libpng-dev libjpeg-dev libtool-bin uuid-dev libossp-uuid-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev libwebsockets-dev
./configure
./configure --with-init-dir=/etc/init.d
make
make install
ldconfig
systemctl daemon-reload
systemctl status guacd
systemctl start guacd
systemctl enable guacd
nano /etc/hosts
>>remove IPv6 line<<
apt install default-jdk -y
groupadd --system tomcat
useradd -d /usr/share/tomcat -r -s /bin/false -g tomcat tomcat
mkdir /usr/share/tomcat
cd /root/guacamole
mkdir /root/gucamole/tomcat
cd /root/guacamole/tomcat
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.72/bin/apache-tomcat-9.0.72.tar.gz
export VER="9.0.72"
tar -xvf apache-tomcat-${VER}.tar.gz
mv apache-tomcat-${VER}/* /usr/share/tomcat
chown -R tomcat:tomcat /usr/share/tomcat/
nano /etc/systemd/system/tomcat.service
[Unit] Description=Tomcat Server After=syslog.target network.target [Service] Type=forking User=tomcat Group=tomcat Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64 Environment='JAVA_OPTS=-Djava.awt.headless=true' Environment=CATALINA_HOME=/usr/share/tomcat Environment=CATALINA_BASE=/usr/share/tomcat Environment=CATALINA_PID=/usr/share/tomcat/temp/tomcat.pid Environment='CATALINA_OPTS=-Xms512M -Xmx1024M' ExecStart=/usr/share/tomcat/bin/catalina.sh start ExecStop=/usr/share/tomcat/bin/catalina.sh stop [Install] WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now tomcat
systemctl status tomcat
cd /usr/share/tomcat/conf
nano conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
cd /usr/share/tomcat/conf
nano server.xml
<Valve className="org.apache.catalina.valves.RemoteIpValve"
internalProxies="8.8.8.8"
remoteIpHeader="x-forwarded-for"
remoteIpProxiesHeader="x-forwarded-by"
protocolHeader="x-forwarded-proto" />
systemctl restart tomcat
mkdir /etc/guacamole
cd /etc/guacamole
wget https://dlcdn.apache.org/guacamole/1.5.0/binary/guacamole-1.5.0.war
mv guacamole-1.5.0.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /usr/share/tomcat/webapps/
echo "GUACAMOLE_HOME=/etc/guacamole" | tee -a /etc/default/tomcat nano /etc/guacamole/guacamole.properties
guacd-hostname: localhost guacd-port: 4822 user-mapping: /etc/guacamole/user-mapping.xml auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
ln -s /etc/guacamole /usr/share/tomcat/.guacamole
printf '%s' Passw0rd | md5sum
d41e98d1eafa6d6011d3a70f1a5b92f0
nano /etc/guacamole/user-mapping.xml
<user-mapping>
<!-- Per-user authentication and config information -->
<!-- A user using md5 to hash the password
guacadmin user and its md5 hashed password below is used to
login to Guacamole Web UI-->
<authorize
username="admin"
password="d41e98d1eafa6d6011d3a70f1a5b92f0"
encoding="md5">
<!-- First authorized Remote connection -->
<connection name="Server SSH">
<protocol>ssh</protocol>
<param name="hostname">192.168.205.11</param>
<param name="username">Need Username Line Only</param>
<param name="port">22</param>
</connection>
<!-- Second authorized remote connection -->
<connection name="Windows 10 RDP">
<protocol>rdp</protocol>
<param name="hostname">SomeIP HERE</param>
<param name="port">3389</param>
<param name="username">Need User</param>
<param name="password">Need This Line</param>
<param name="ignore-cert">true</param>
<param name="security">any</param>
</connection>
</authorize>
</user-mapping>
http://yourserverip:8080/guacamole/
apt install mariadb-server -y
systemctl enable mariadb
systemctl status mariadb
systemctl start mariadb
mysql -u root -p
create database guacdb23;
create user gcadmin_23@localhost identified by 'D0notUseThis';
grant SELECT,UPDATE,INSERT,DELETE on guacdb23.* to gcadmin_23@localhost;
flush privileges;
show databases;
quit
wget https://dlcdn.apache.org/guacamole/1.5.0/binary/guacamole-auth-jdbc-1.5.0.tar.gz
mkdir /etc/guacamole/extensions
mkdir /etc/guacamole/lib
VER=1.5.0
tar xzf guacamole-auth-jdbc-${VER}.tar.gz guacamole-auth-jdbc-${VER}/mysql
cp guacamole-auth-jdbc-${VER}/mysql/guacamole-auth-jdbc-mysql-${VER}.jar /etc/guacamole/extensions/
mysql -u root -p guacdb23 < guacamole-auth-jdbc-${VER}/mysql/schema/001-create-schema.sql
mysql -u root -p guacdb23 < guacamole-auth-jdbc-${VER}/mysql/schema/002-create-admin-user.sql
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j-8.0.31.tar.gz
tar xzvf mysql-connector-j-8.0.31.tar.gz
cp mysql-connector-j-8.0.31/mysql-connector-j-8.0.31.jar /etc/guacamole/lib
nano /etc/guacamole/guacamole.properties
mysql-hostname: localhost mysql-database: guacdb23 mysql-username: gcadmin_23 mysql-password: D0notUseThis
systemctl restart tomcat guacd mariadb
Browse to your Guacamole instance and login http://yoursite:8080/guacamole/
username : guacadmin password: guacadmin