Im Januar wurde die Version 1.0.0 des Remote-Desktop-Gateway, Apache Guacamole, veröffentlicht. Apache Guacamole ist ein Remote Desktop Gateway, dass dank der Nutzung von HTML5, ohne jeglichen Client oder Plugin auskommt. Es kann Verbindungen zu VNC Servern, Servern die das Remotedesktop Protokoll RDP unterstützen, Telnet und SSH Verbindungen aufbauen. Dadurch können Remotedesktopverbindungen von überall aus aufgebaut werden. Es wird lediglich eine Netzwerkverbindung zum Ziel und ein Webbrowser benötigt. Das tolle an Apache Guacamole ist dass es Open-Source ist und unter der Apache Lizenz V2, steht. Wer Apache Guacamole im Businessumfeld einsetzen möchte, der kann auf eine der Supportfirmen für Enterprise Kunden, zurückgreifen.
Webseite des Projektes: https://guacamole.apache.org/
Nachfolgend werde ich die Installation unter einem frisch installiertem Debian 10 Buster als Netinstall beschreiben. Grundsätzlich scheint Guacamole noch auf die ältere Version Stretch ausgelegt zu sein, denn einige neuere Pakete aus Buster werden nicht unterstützt. Dennoch bekommt man es unter Debian 10 zum laufen.
Debian Voraussetzungen installieren
Folgende Pakete sollten grundlegend installiert sein:
# apt install build-essential apt-transport-https unzip
Installation von MariaDB und Tomcat
Apache Guacamole benötige sowohl eine MariaDB als auch den Tomcat Webserver.
# apt install tomcat9 mariadb-server -y
# mysql_secure_installation
Change the root password? [Y/n]
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
Remove anonymous users? [Y/n] y
... Success!
Disallow root login remotely? [Y/n] y
... Success!
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Test Tomcat Installation
Im Browser http://servername:8080 sodass bei erfolgreicher Installation „It works!“ angezeigt wird.
Guacamole Verzeichnisse erstellen
# mkdir -p /etc/guacamole/{extensions,lib}
Guacamole Datenbank erstellen
# mysql -u root -p
mysql> CREATE DATABASE guacamole_db;
mysql> CREATE USER 'guacamole_user'@'localhost' IDENTIFIED BY 'dein_passwort';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit;
Bye
Debian Stretch Repo für libfreerdp-dev hinzufügen
Die aktuelle Version von Apache Guacamole kann nicht unter Debian 10 (Buster) installiert werden. Es gibt einige Pakete die noch nicht umgestellt wurden, sodass auf das Repo von Stretch zurück gegriffen werden muss.
# echo "# Stretch Repo wegen libfreerdp-dev" >> /etc/apt/sources.list
# echo "deb https://deb.debian.org/debian stretch main" >> /etc/apt/sources.list
# apt update
# apt install libfreerdp-dev
Java Database (JDBC) Treiber für MariaDB
Ist nur in Stretch vorhanden.
# apt install libmysql-java
# ln -s /usr/share/java/mysql-connector-java.jar /etc/guacamole/lib/
JDBC Guacamole Authentication Komponente
# cd /usr/src/guacamole/
# wget 'http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/1.0.0/binary/guacamole-auth-jdbc-1.0.0.tar.gz' -O guacamole-auth-jdbc-1.0.0.tar.gz
# tar -xzvf guacamole-auth-jdbc-1.0.0.tar.gz
# mv guacamole-auth-jdbc-1.0.0/mysql/guacamole-auth-jdbc-mysql-1.0.0.jar /etc/guacamole/extensions/
MySQL JDBC Treiber Schemas in Guacamole Database importieren
# cat guacamole-auth-jdbc-1.0.0/mysql/schema/*.sql | mysql -u root -p guacamole_db
Installation benötigten Guacamole Komponenten
# apt install -y gcc-8 g++-8 libcairo2-dev libjpeg62-turbo-dev libpng-dev libossp-uuid-dev
Installation auswählbarer Guacamole Komponenten
# apt install -y libavcodec-dev libavutil-dev libswscale-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev freerdp2-dev
Guacamole Server Installation
### klappt nicht, bekannter Fehler bei Ausführung von make
# wget "http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/1.0.0/source/guacamole-server-1.0.0.tar.gz" -O guacamole-server-1.0.0.tar.gz
# tar -xzvf guacamole-server-1.0.0.tar.gz
# cd guacamole-server-1.0.0/
# ./configure --with-init-dir=/etc/init.d
# make && make install
### bis hier dann mit Git
# latest Version from Git Hub
# apt install git dh-autoreconf
# git clone git://github.com/apache/guacamole-server.git
# cd guacamole-server/
# autoreconf -fi
oder
# wget "https://github.com/apache/guacamole-server/archive/staging/1.1.0.zip" -O guacamole-server-1.1.0.zip
# unzip guacamole-server-1.1.0.zip
# ./configure --with-init-dir=/etc/init.d
------------------------------------------------
guacamole-server version 1.1.0
------------------------------------------------
Library status:
freerdp ............. yes
pango ............... yes
libavcodec .......... yes
libavutil ........... yes
libssh2 ............. yes
libssl .............. yes
libswscale .......... yes
libtelnet ........... yes
libVNCServer ........ yes
libvorbis ........... yes
libpulse ............ yes
libwebsockets ....... no
libwebp ............. yes
wsock32 ............. no
Protocol support:
Kubernetes .... no
RDP ........... yes
SSH ........... yes
Telnet ........ yes
VNC ........... yes
Services / tools:
guacd ...... yes
guacenc .... yes
guaclog .... yes
Init scripts: /etc/init.d
Systemd units: no
Type "make" to compile guacamole-server.
# make && make install
# ldconfig
# systemctl enable guacd
# systemctl start guacd
# systemctl status guacd
Guacamole Konfiguration
Die Datei muss erstellt werden und wie folgt konfiguriert.
# nano /etc/guacamole/guacamole.properties
# Hostname and port of guacamole proxy
guacd-hostname: localhost
guacd-port: 4822
# MySQL properties
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: guaca_password
Nun noch die Konfiguration zum Tomcat verlinken
# ln -s /etc/guacamole/ /var/lib/tomcat9/.guacamole
# systemctl restart tomcat9
# systemctl restart guacd
Guacamole Client / Web App Installation
# cd /usr/src/guacamole/
# wget 'http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/1.0.0/binary/guacamole-1.0.0.war' -O guacamole-1.0.0.war
# mv guacamole-1.0.0.war /var/lib/tomcat9/webapps/guacamole.war
# service tomcat9 restart
Aufräumen
Nun noch die Downloads und den Repository Eintrag von Stretch entfernen und die Installation ist abgeschlossen.
# rm -R /usr/src/guacamole/
Apache Guacamole Webinterface
Das wars mit der Installation, sodass nun der Aufruf der WebGUI erfolgen kann. Folgender Benutzer und Passwort sind Default:
Benutzer = guacadmin
Passwort = guacadmin
# http://server-IP:8080/guacamole
Apache Guacamole – Admin Passwort ändern
Als erstes empfehle ich das Default-Passwort zu ändern. Dies geht wie folgt:
- rechts im Menü unter dem Benutzer guacadmin auf Einstellungen klicken und im Abschnitt Passwort, dass neue eingeben
Remotedesktop Bedienung und Keys
Wenn eine Remotedesktopverbindung aufgebaut wurde, egal ob SSH, RDP, VNC oder Telnet, dann kann ein Menü für die Konfiguration der Verbindung aufgerufen werden. Hierfür die Tastenkombination: <STRG>+<ALT>+<SHIFT> drücken. Hier könnt ihr die Zwischenablage anzeigen, die Eingabemethode für Tastatur, Maus, die Einstellungen der Verbindung ändern und die Verbindung trennen bzw. von Apache Guacamole abmelden..
Branding anpassen
Wer das Logo / Branding anpassen möchte der wird hier fündig: https://github.com/Zer0CoolX/guacamole-customize-loginscreen-extension
Interessiert in verschiedenste IT Themen, schreibe ich in diesem Blog über Software, Hardware, Smart Home, Games und vieles mehr. Ich berichte z.B. über die Installation und Konfiguration von Software als auch von Problemen mit dieser. News sind ebenso spannend, sodass ich auch über Updates, Releases und Neuigkeiten aus der IT berichte. Letztendlich nutze ich Taste-of-IT als eigene Dokumentation und Anlaufstelle bei wiederkehrenden Themen. Ich hoffe ich kann dich ebenso informieren und bei Problemen eine schnelle Lösung anbieten. Wer meinen Aufwand unterstützen möchte, kann gerne eine Tasse oder Pod Kaffe per PayPal spenden – vielen Dank.
Kann es jemand bestätigen, dass es beim Copy&Paste mit der Tastatur zu Problemen kommt? Wenn ich Strg+v betätige, dann sendet er scheinbar alle zu kopierenden Zeichen als Tastaturbefehle und es kommt zu sehr komplexen Fehlern. Beim Browser öffnet sich der Druckdialog oder zahlreiche weitere Tabs, etc.
Ähnlich verhält es sich mit der Tastenkombination Strg+r, welche ich in Putty bei ssh-Sitzungen gelegentlich verwende. Dann wird nämlich die komplette Guacamole-Sitzung einem Refresh unterzogen.
Hi,
diese Fehler habe ich nicht. Nutze Firefox oder Edge Browser. Allerdings funktioniert regelmäßig die Zwischenablage (Alt+STRG+Shift) nicht, sodass ich das schon aufgegeben habe. Nutze aber noch V 1.2.0 und muss noch upgraden. Strg+R in Konsole funktioniert.
Hi Arthur,
ich habe die Tage mal mein Linux mint auf die aktuelle Version 20.1 aktualisiert. Auf das System hatte ich mich immer mit Guacamole und XRDP über sesam-Xvnc verbunden. Nach dem Upgrade konnte ich mich zwar erfolgreich anmelden, aber der Cinnemon Desktop wurde nicht geladen. Nach Stunden des suchens und testens, fand ich keine Lösung, habe dann aber einfach mal Xorg als Session ausprobiert und siehe da, es klappt wieder. Details muss ich noch erarbeiten, aber ich kann nun direkt aus der RDP Session Text kopieren, brauche also die Zwischenablage, wie zuvor erwähnt, nicht mehr. Aktuell (ca. 6h Nutzung) sieht alles Top aus.
Dankeschön! neben einigen anderen Anleitungen im Netz, hat Dein Tutorial nun funktioniert… Bin bisher immer an libfreerdp2 und den lib*-dev’s gescheitert… :)=
Nun hab ich ein schönes RDP2HTML5-Gateway hinter einem Apachen als reverse proxy am Laufen.
VG
Tom
Hi Tom,
super das es dir geholfen hat, hat mich etwas Zeit bis es funktioniert hat gekostet, aber toll wenn es am Ende funktioniert 🙂