Hallo ich verwende Guacamole bei allen Kunden (Fernwartung und User Home Office)
jedoch ist es meiner Meinung nach besser nicht die UCS App zu verwenden da diese sehr spärlich gewartet wird.
Hier eine Anleitung wie ich sie bei Kunden installiere (meinst nehme ich dazu eine Debian 10 installation dafür als eigene VM - kann aber auch auf einem UCS Server installiert werden)
Installation dauert ca 5-10min
Installation Guacamole Docker Version
Docker Pulls
sudo docker pull guacamole/guacd
sudo docker pull guacamole/guacamole
sudo docker pull mysql:5.7
Create script to prepare MySQL Database
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
Make a scripts folder to pass-through to container
mkdir /tmp/scripts
cp initdb.sql /tmp/scripts
Create/ start mysql instance
docker run --restart=always --name guac-mysql -v /tmp/scripts:/tmp/scripts -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7
Create mysql db, user and prepare mysql instance for guacamole
docker exec -it guac-mysql /bin/bash
mysql -u root -p'password'
CREATE DATABASE guacamole;
CREATE USER 'guacamole' IDENTIFIED BY 'password';
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole.* TO 'guacamole';
FLUSH PRIVILEGES;
quit
cat /tmp/scripts/initdb.sql | mysql -u root -p'password' guacamole
Now ctrl-d to exit docker container shell # Start guacd
docker run --restart=always --name guacd -d guacamole/guacd
Start guacamole client
docker run --restart=always --name guacamole --link guacd:guacd --link guac-mysql:mysql \
-e MYSQL_DATABASE='guacamole' \
-e MYSQL_USER='guacamole' \
-e MYSQL_PASSWORD='password' \
-v /etc/guacamole:/etc/guacamole \
-e GUACAMOLE_HOME=/etc/guacamole \
-d -p 8080:8080 guacamole/guacamole
wenn man 2FA Autentifizierung haben will (zb TOTP) dann beim letzen kommando noch zusätzlich
-e TOTP_ENABLED=true \
hinzufügen
dies installiert immer die letzte Version die verfügbar ist.
ein späteres Upgrade auf die neue Version ist dann einfach mit folgenden Kommandos möglich:
docker stop guacamole
docker stop guacd
docker rm guacamole
docker rm guacd
docker rmi (guacamole image ID)
docker rmi (guacd image ID)
die image ID bekommt man mit
docker images
danach einfach die beiden Befehle:
docker run --restart=always --name guacd -d guacamole/guacd
docker run --restart=always --name guacamole --link guacd:guacd --link guac-mysql:mysql \
-e MYSQL_DATABASE='guacamole' \
-e MYSQL_USER='guacamole' \
-e MYSQL_PASSWORD='password' \
-v /etc/guacamole:/etc/guacamole \
-e GUACAMOLE_HOME=/etc/guacamole \
-d -p 8080:8080 guacamole/guacamole
Alle Einträge (Verbindungen, User etc) bleiben dabei in der SQL Datenbank erhalten
Wenn man UCS im Einsatz hat dann kann man die Guacamole Web site einfach über den apache proxen:
dazu am Webserver (welcher von außen erreichbar ist)
folgende Datei int /etc/apache2/sites-available/guacamole.conf
mit folgendem Inhalt (IP Adresse auf den internen Guacamole host ändern!!)
<Location /guacamole>
Order allow,deny
Allow from all
ProxyPass http://192.168.2.110:8080/guacamole max=20 flushpackets=on
ProxyPassReverse https://192.168.2.110:8080/guacamole
</Location>
<Location /guacamole/websocket-tunnel>
Order allow,deny
Allow from all
ProxyPass ws://192.168.2.110:8080/guacamole/websocket-tunnel
ProxyPassReverse ws://192.168.2.110:8080/guacamole/websocket-tunnel
</Location>
danach
a2ensite guacamole.conf
systemctl reload apache2.service
dann ist guacamole über
https://fqdn-web-server/guacamole
erreichbar
lg
Christian