Inhaltsverzeichnis
Apache Guacamole CentOS 7
Apache Guacamole ist ein Client-loses Remote-Desktop-Gateway. Es unterstützt Standardprotokolle wie VNC, RDP und SSH. Es wird als Clientlos bezeichnet, da keine Plugins oder keine Client-Software erforderlich sind.
Dank HTML5 wird nach der Installation von Apache Guacamole auf einem Server nur noch ein Webbrowser benötigt, um auf einen Server zuzugreifen zu können.
Beschreibung | Externer Link |
---|---|
Homepage | https://guacamole.apache.org |
Dokumentation | https://guacamole.apache.org/doc/gug/ |
Download | https://guacamole.apache.org/releases/ |
Ab hier werden root
-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um root
zu werden geben Sie bitte folgenden Befehl ein:
$ su - Password:
Vorbereitung
Zur Installation von Apache Guacamole über ein rpm
-Paket, soll hier das Repository eines Drittanbieters genutzt werden, da Apache Guacamole nicht im CentOS-Repository enthalten ist.
Nachfolgend soll das Repository des Drittanbieters EPEL genutzt werden. Eine Anleitung, wie das Repository des Drittanbieters EPEL eingebunden werden könnte, kann unter nachfolgendem internen Link nachgelesen werden:
Voraussetzungen
Als Voraussetzung für die Installation von Apache Guacamole sind folgende Komponenten erforderlich:
- Lauffähiger Datenbank-Server z.B. MariaDB ab der Version 5.5 oder höher
- Siehe auch den internen Link: MariaDB CentOS 7
- Lauffähiger Applikations-Server z.B. Apache Tomcat
- Siehe auch den internen Link: Apache Tomcat 7
- Lauffähiger Web-Server z.B. Apache HTTP Server
- Siehe auch den internen Link: Apache HTTP Server CentOS 7
Installation
Zur Installation von Apache Guacamole werden nachfolgende Pakete benötigt:
Optional können auch nachfolgende Client-Connectors installiert werden:
Mit nachfolgendem Befehl, werden die Pakete installiert:
# yum install dejavu-sans-mono-fonts mysql-connector-java guacd libguac libguac-client-rdp libguac-client-ssh libguac-client-vnc Loaded plugins: changelog, priorities 334 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package dejavu-sans-mono-fonts.noarch 0:2.33-6.el7 will be installed ---> Package guacd.x86_64 1:1.1.0-1.el7 will be installed --> Processing Dependency: libogg.so.0()(64bit) for package: 1:guacd-1.1.0-1.el7.x86_64 --> Processing Dependency: libossp-uuid.so.16()(64bit) for package: 1:guacd-1.1.0-1.el7.x86_64 --> Processing Dependency: libvorbis.so.0()(64bit) for package: 1:guacd-1.1.0-1.el7.x86_64 --> Processing Dependency: libvorbisenc.so.2()(64bit) for package: 1:guacd-1.1.0-1.el7.x86_64 --> Processing Dependency: libwebp.so.4()(64bit) for package: 1:guacd-1.1.0-1.el7.x86_64 ---> Package libguac.x86_64 1:1.1.0-1.el7 will be installed ---> Package libguac-client-rdp.x86_64 1:1.1.0-1.el7 will be installed --> Processing Dependency: libfreerdp-client2.so.2()(64bit) for package: 1:libguac-client-rdp-1.1.0-1.el7.x86_64 --> Processing Dependency: libfreerdp2.so.2()(64bit) for package: 1:libguac-client-rdp-1.1.0-1.el7.x86_64 --> Processing Dependency: libwinpr2.so.2()(64bit) for package: 1:libguac-client-rdp-1.1.0-1.el7.x86_64 ---> Package libguac-client-ssh.x86_64 1:1.1.0-1.el7 will be installed ---> Package libguac-client-vnc.x86_64 1:1.1.0-1.el7 will be installed --> Processing Dependency: libpulse.so.0(PULSE_0)(64bit) for package: 1:libguac-client-vnc-1.1.0-1.el7.x86_64 --> Processing Dependency: libpulse.so.0()(64bit) for package: 1:libguac-client-vnc-1.1.0-1.el7.x86_64 --> Processing Dependency: libvncclient.so.0()(64bit) for package: 1:libguac-client-vnc-1.1.0-1.el7.x86_64 ---> Package mysql-connector-java.noarch 1:5.1.25-3.el7 will be installed --> Processing Dependency: slf4j for package: 1:mysql-connector-java-5.1.25-3.el7.noarch --> Running transaction check ---> Package freerdp-libs.x86_64 0:2.0.0-1.rc4.el7 will be installed --> Processing Dependency: libxkbcommon.so.0(V_0.5.0)(64bit) for package: freerdp-libs-2.0.0-1.rc4.el7.x86_64 --> Processing Dependency: libxkbfile.so.1()(64bit) for package: freerdp-libs-2.0.0-1.rc4.el7.x86_64 --> Processing Dependency: libxkbcommon.so.0()(64bit) for package: freerdp-libs-2.0.0-1.rc4.el7.x86_64 --> Processing Dependency: libgstvideo-1.0.so.0()(64bit) for package: freerdp-libs-2.0.0-1.rc4.el7.x86_64 --> Processing Dependency: libgstreamer-1.0.so.0()(64bit) for package: freerdp-libs-2.0.0-1.rc4.el7.x86_64 --> Processing Dependency: libgstbase-1.0.so.0()(64bit) for package: freerdp-libs-2.0.0-1.rc4.el7.x86_64 --> Processing Dependency: libgstapp-1.0.so.0()(64bit) for package: freerdp-libs-2.0.0-1.rc4.el7.x86_64 --> Processing Dependency: libgsm.so.1()(64bit) for package: freerdp-libs-2.0.0-1.rc4.el7.x86_64 ---> Package libogg.x86_64 2:1.3.0-7.el7 will be installed ---> Package libvncserver.x86_64 0:0.9.9-14.el7_7 will be installed --> Processing Dependency: libminilzo.so.0()(64bit) for package: libvncserver-0.9.9-14.el7_7.x86_64 ---> Package libvorbis.x86_64 1:1.3.3-8.el7.1 will be installed ---> Package libwebp.x86_64 0:0.3.0-7.el7 will be installed ---> Package libwinpr.x86_64 0:2.0.0-1.rc4.el7 will be installed ---> Package pulseaudio-libs.x86_64 0:10.0-5.el7 will be installed --> Processing Dependency: libsndfile.so.1(libsndfile.so.1.0)(64bit) for package: pulseaudio-libs-10.0-5.el7.x86_64 --> Processing Dependency: libsndfile.so.1()(64bit) for package: pulseaudio-libs-10.0-5.el7.x86_64 --> Processing Dependency: libasyncns.so.0()(64bit) for package: pulseaudio-libs-10.0-5.el7.x86_64 ---> Package slf4j.noarch 0:1.7.4-4.el7_4 will be installed --> Processing Dependency: mvn(javassist:javassist) for package: slf4j-1.7.4-4.el7_4.noarch --> Processing Dependency: mvn(commons-lang:commons-lang) for package: slf4j-1.7.4-4.el7_4.noarch --> Processing Dependency: mvn(ch.qos.cal10n:cal10n-api) for package: slf4j-1.7.4-4.el7_4.noarch ---> Package uuid.x86_64 0:1.6.2-26.el7 will be installed --> Running transaction check ---> Package apache-commons-lang.noarch 0:2.6-15.el7 will be installed ---> Package cal10n.noarch 0:0.7.7-4.el7 will be installed ---> Package gsm.x86_64 0:1.0.13-11.el7 will be installed ---> Package gstreamer1.x86_64 0:1.10.4-2.el7 will be installed ---> Package gstreamer1-plugins-base.x86_64 0:1.10.4-2.el7 will be installed --> Processing Dependency: libtheoraenc.so.1(libtheoraenc_1.0)(64bit) for package: gstreamer1-plugins-base-1.10.4-2.el7.x86_64 --> Processing Dependency: libtheoradec.so.1(libtheoradec_1.0)(64bit) for package: gstreamer1-plugins-base-1.10.4-2.el7.x86_64 --> Processing Dependency: iso-codes for package: gstreamer1-plugins-base-1.10.4-2.el7.x86_64 --> Processing Dependency: libvisual-0.4.so.0()(64bit) for package: gstreamer1-plugins-base-1.10.4-2.el7.x86_64 --> Processing Dependency: libtheoraenc.so.1()(64bit) for package: gstreamer1-plugins-base-1.10.4-2.el7.x86_64 --> Processing Dependency: libtheoradec.so.1()(64bit) for package: gstreamer1-plugins-base-1.10.4-2.el7.x86_64 --> Processing Dependency: liborc-0.4.so.0()(64bit) for package: gstreamer1-plugins-base-1.10.4-2.el7.x86_64 --> Processing Dependency: libopus.so.0()(64bit) for package: gstreamer1-plugins-base-1.10.4-2.el7.x86_64 --> Processing Dependency: libcdda_paranoia.so.0()(64bit) for package: gstreamer1-plugins-base-1.10.4-2.el7.x86_64 --> Processing Dependency: libcdda_interface.so.0()(64bit) for package: gstreamer1-plugins-base-1.10.4-2.el7.x86_64 --> Processing Dependency: libXv.so.1()(64bit) for package: gstreamer1-plugins-base-1.10.4-2.el7.x86_64 ---> Package javassist.noarch 0:3.16.1-10.el7 will be installed ---> Package libasyncns.x86_64 0:0.8-7.el7 will be installed ---> Package libsndfile.x86_64 0:1.0.25-11.el7 will be installed --> Processing Dependency: libFLAC.so.8()(64bit) for package: libsndfile-1.0.25-11.el7.x86_64 ---> Package libxkbcommon.x86_64 0:0.7.1-3.el7 will be installed --> Processing Dependency: xkeyboard-config for package: libxkbcommon-0.7.1-3.el7.x86_64 ---> Package libxkbfile.x86_64 0:1.0.9-3.el7 will be installed ---> Package lzo-minilzo.x86_64 0:2.06-8.el7 will be installed --> Running transaction check ---> Package cdparanoia-libs.x86_64 0:10.2-17.el7 will be installed ---> Package flac-libs.x86_64 0:1.3.0-5.el7_1 will be installed ---> Package iso-codes.noarch 0:3.46-2.el7 will be installed --> Processing Dependency: xml-common for package: iso-codes-3.46-2.el7.noarch ---> Package libXv.x86_64 0:1.0.11-1.el7 will be installed ---> Package libtheora.x86_64 1:1.1.1-8.el7 will be installed ---> Package libvisual.x86_64 0:0.4.0-16.el7 will be installed ---> Package opus.x86_64 0:1.0.2-6.el7 will be installed ---> Package orc.x86_64 0:0.4.26-1.el7 will be installed ---> Package xkeyboard-config.noarch 0:2.24-1.el7 will be installed --> Running transaction check ---> Package xml-common.noarch 0:0.6.3-39.el7 will be installed --> Finished Dependency Resolution Changes in packages about to be updated: Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: dejavu-sans-mono-fonts noarch 2.33-6.el7 base 433 k guacd x86_64 1:1.1.0-1.el7 epel 34 k libguac x86_64 1:1.1.0-1.el7 epel 45 k libguac-client-rdp x86_64 1:1.1.0-1.el7 epel 91 k libguac-client-ssh x86_64 1:1.1.0-1.el7 epel 69 k libguac-client-vnc x86_64 1:1.1.0-1.el7 epel 40 k mysql-connector-java noarch 1:5.1.25-3.el7 base 1.3 M Installing for dependencies: apache-commons-lang noarch 2.6-15.el7 base 276 k cal10n noarch 0.7.7-4.el7 base 36 k cdparanoia-libs x86_64 10.2-17.el7 base 56 k flac-libs x86_64 1.3.0-5.el7_1 base 169 k freerdp-libs x86_64 2.0.0-1.rc4.el7 base 780 k gsm x86_64 1.0.13-11.el7 base 30 k gstreamer1 x86_64 1.10.4-2.el7 base 1.2 M gstreamer1-plugins-base x86_64 1.10.4-2.el7 base 1.4 M iso-codes noarch 3.46-2.el7 base 2.7 M javassist noarch 3.16.1-10.el7 base 627 k libXv x86_64 1.0.11-1.el7 base 18 k libasyncns x86_64 0.8-7.el7 base 26 k libogg x86_64 2:1.3.0-7.el7 base 24 k libsndfile x86_64 1.0.25-11.el7 base 149 k libtheora x86_64 1:1.1.1-8.el7 base 136 k libvisual x86_64 0.4.0-16.el7 base 138 k libvncserver x86_64 0.9.9-14.el7_7 updates 234 k libvorbis x86_64 1:1.3.3-8.el7.1 base 204 k libwebp x86_64 0.3.0-7.el7 base 170 k libwinpr x86_64 2.0.0-1.rc4.el7 base 322 k libxkbcommon x86_64 0.7.1-3.el7 base 108 k libxkbfile x86_64 1.0.9-3.el7 base 83 k lzo-minilzo x86_64 2.06-8.el7 base 15 k opus x86_64 1.0.2-6.el7 base 630 k orc x86_64 0.4.26-1.el7 base 166 k pulseaudio-libs x86_64 10.0-5.el7 base 651 k slf4j noarch 1.7.4-4.el7_4 base 170 k uuid x86_64 1.6.2-26.el7 base 55 k xkeyboard-config noarch 2.24-1.el7 base 834 k xml-common noarch 0.6.3-39.el7 base 26 k Transaction Summary ================================================================================ Install 7 Packages (+30 Dependent packages) Total download size: 13 M Installed size: 48 M Is this ok [y/d/N]: y Downloading packages: (1/37): apache-commons-lang-2.6-15.el7.noarch.rpm | 276 kB 00:00 (2/37): cal10n-0.7.7-4.el7.noarch.rpm | 36 kB 00:00 (3/37): cdparanoia-libs-10.2-17.el7.x86_64.rpm | 56 kB 00:00 (4/37): dejavu-sans-mono-fonts-2.33-6.el7.noarch.rpm | 433 kB 00:00 (5/37): flac-libs-1.3.0-5.el7_1.x86_64.rpm | 169 kB 00:00 (6/37): freerdp-libs-2.0.0-1.rc4.el7.x86_64.rpm | 780 kB 00:00 (7/37): gsm-1.0.13-11.el7.x86_64.rpm | 30 kB 00:00 (8/37): gstreamer1-1.10.4-2.el7.x86_64.rpm | 1.2 MB 00:00 (9/37): gstreamer1-plugins-base-1.10.4-2.el7.x86_64.rpm | 1.4 MB 00:00 (10/37): iso-codes-3.46-2.el7.noarch.rpm | 2.7 MB 00:00 (11/37): javassist-3.16.1-10.el7.noarch.rpm | 627 kB 00:00 (12/37): guacd-1.1.0-1.el7.x86_64.rpm | 34 kB 00:00 (13/37): libXv-1.0.11-1.el7.x86_64.rpm | 18 kB 00:00 (14/37): libasyncns-0.8-7.el7.x86_64.rpm | 26 kB 00:00 (15/37): libguac-client-rdp-1.1.0-1.el7.x86_64.rpm | 91 kB 00:00 (16/37): libguac-client-ssh-1.1.0-1.el7.x86_64.rpm | 69 kB 00:00 (17/37): libguac-client-vnc-1.1.0-1.el7.x86_64.rpm | 40 kB 00:00 (18/37): libguac-1.1.0-1.el7.x86_64.rpm | 45 kB 00:00 (19/37): libogg-1.3.0-7.el7.x86_64.rpm | 24 kB 00:00 (20/37): libsndfile-1.0.25-11.el7.x86_64.rpm | 149 kB 00:00 (21/37): libtheora-1.1.1-8.el7.x86_64.rpm | 136 kB 00:00 (22/37): libvisual-0.4.0-16.el7.x86_64.rpm | 138 kB 00:00 (23/37): libvorbis-1.3.3-8.el7.1.x86_64.rpm | 204 kB 00:00 (24/37): libwebp-0.3.0-7.el7.x86_64.rpm | 170 kB 00:00 (25/37): libvncserver-0.9.9-14.el7_7.x86_64.rpm | 234 kB 00:00 (26/37): libwinpr-2.0.0-1.rc4.el7.x86_64.rpm | 322 kB 00:00 (27/37): libxkbcommon-0.7.1-3.el7.x86_64.rpm | 108 kB 00:00 (28/37): libxkbfile-1.0.9-3.el7.x86_64.rpm | 83 kB 00:00 (29/37): mysql-connector-java-5.1.25-3.el7.noarch.rpm | 1.3 MB 00:00 (30/37): lzo-minilzo-2.06-8.el7.x86_64.rpm | 15 kB 00:00 (31/37): opus-1.0.2-6.el7.x86_64.rpm | 630 kB 00:00 (32/37): orc-0.4.26-1.el7.x86_64.rpm | 166 kB 00:00 (33/37): slf4j-1.7.4-4.el7_4.noarch.rpm | 170 kB 00:00 (34/37): pulseaudio-libs-10.0-5.el7.x86_64.rpm | 651 kB 00:00 (35/37): uuid-1.6.2-26.el7.x86_64.rpm | 55 kB 00:00 (36/37): xkeyboard-config-2.24-1.el7.noarch.rpm | 834 kB 00:00 (37/37): xml-common-0.6.3-39.el7.noarch.rpm | 26 kB 00:00 -------------------------------------------------------------------------------- Total 9.6 MB/s | 13 MB 00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : 2:libogg-1.3.0-7.el7.x86_64 1/37 Installing : 1:libvorbis-1.3.3-8.el7.1.x86_64 2/37 Installing : uuid-1.6.2-26.el7.x86_64 3/37 Installing : libwebp-0.3.0-7.el7.x86_64 4/37 Installing : 1:libguac-1.1.0-1.el7.x86_64 5/37 Installing : libwinpr-2.0.0-1.rc4.el7.x86_64 6/37 Installing : gsm-1.0.13-11.el7.x86_64 7/37 Installing : gstreamer1-1.10.4-2.el7.x86_64 8/37 Installing : 1:libtheora-1.1.1-8.el7.x86_64 9/37 Installing : flac-libs-1.3.0-5.el7_1.x86_64 10/37 Installing : libsndfile-1.0.25-11.el7.x86_64 11/37 Installing : javassist-3.16.1-10.el7.noarch 12/37 Installing : xml-common-0.6.3-39.el7.noarch 13/37 Installing : iso-codes-3.46-2.el7.noarch 14/37 Installing : cal10n-0.7.7-4.el7.noarch 15/37 Installing : libvisual-0.4.0-16.el7.x86_64 16/37 Installing : lzo-minilzo-2.06-8.el7.x86_64 17/37 Installing : libvncserver-0.9.9-14.el7_7.x86_64 18/37 Installing : orc-0.4.26-1.el7.x86_64 19/37 Installing : cdparanoia-libs-10.2-17.el7.x86_64 20/37 Installing : xkeyboard-config-2.24-1.el7.noarch 21/37 Installing : libxkbcommon-0.7.1-3.el7.x86_64 22/37 Installing : libxkbfile-1.0.9-3.el7.x86_64 23/37 Installing : apache-commons-lang-2.6-15.el7.noarch 24/37 Installing : slf4j-1.7.4-4.el7_4.noarch 25/37 Installing : libasyncns-0.8-7.el7.x86_64 26/37 Installing : pulseaudio-libs-10.0-5.el7.x86_64 27/37 Installing : opus-1.0.2-6.el7.x86_64 28/37 Installing : libXv-1.0.11-1.el7.x86_64 29/37 Installing : gstreamer1-plugins-base-1.10.4-2.el7.x86_64 30/37 Installing : freerdp-libs-2.0.0-1.rc4.el7.x86_64 31/37 Installing : 1:libguac-client-rdp-1.1.0-1.el7.x86_64 32/37 Installing : 1:libguac-client-vnc-1.1.0-1.el7.x86_64 33/37 Installing : 1:mysql-connector-java-5.1.25-3.el7.noarch 34/37 Installing : 1:guacd-1.1.0-1.el7.x86_64 35/37 Installing : 1:libguac-client-ssh-1.1.0-1.el7.x86_64 36/37 Installing : dejavu-sans-mono-fonts-2.33-6.el7.noarch 37/37 Verifying : 1:libvorbis-1.3.3-8.el7.1.x86_64 1/37 Verifying : libxkbcommon-0.7.1-3.el7.x86_64 2/37 Verifying : libXv-1.0.11-1.el7.x86_64 3/37 Verifying : gstreamer1-1.10.4-2.el7.x86_64 4/37 Verifying : 1:guacd-1.1.0-1.el7.x86_64 5/37 Verifying : 1:libguac-client-ssh-1.1.0-1.el7.x86_64 6/37 Verifying : opus-1.0.2-6.el7.x86_64 7/37 Verifying : libasyncns-0.8-7.el7.x86_64 8/37 Verifying : 1:libguac-client-vnc-1.1.0-1.el7.x86_64 9/37 Verifying : apache-commons-lang-2.6-15.el7.noarch 10/37 Verifying : libxkbfile-1.0.9-3.el7.x86_64 11/37 Verifying : xkeyboard-config-2.24-1.el7.noarch 12/37 Verifying : cdparanoia-libs-10.2-17.el7.x86_64 13/37 Verifying : 1:libtheora-1.1.1-8.el7.x86_64 14/37 Verifying : libwebp-0.3.0-7.el7.x86_64 15/37 Verifying : orc-0.4.26-1.el7.x86_64 16/37 Verifying : libvncserver-0.9.9-14.el7_7.x86_64 17/37 Verifying : lzo-minilzo-2.06-8.el7.x86_64 18/37 Verifying : flac-libs-1.3.0-5.el7_1.x86_64 19/37 Verifying : libvisual-0.4.0-16.el7.x86_64 20/37 Verifying : pulseaudio-libs-10.0-5.el7.x86_64 21/37 Verifying : gsm-1.0.13-11.el7.x86_64 22/37 Verifying : freerdp-libs-2.0.0-1.rc4.el7.x86_64 23/37 Verifying : 1:libguac-1.1.0-1.el7.x86_64 24/37 Verifying : 2:libogg-1.3.0-7.el7.x86_64 25/37 Verifying : 1:libguac-client-rdp-1.1.0-1.el7.x86_64 26/37 Verifying : cal10n-0.7.7-4.el7.noarch 27/37 Verifying : dejavu-sans-mono-fonts-2.33-6.el7.noarch 28/37 Verifying : xml-common-0.6.3-39.el7.noarch 29/37 Verifying : 1:mysql-connector-java-5.1.25-3.el7.noarch 30/37 Verifying : uuid-1.6.2-26.el7.x86_64 31/37 Verifying : iso-codes-3.46-2.el7.noarch 32/37 Verifying : slf4j-1.7.4-4.el7_4.noarch 33/37 Verifying : libwinpr-2.0.0-1.rc4.el7.x86_64 34/37 Verifying : javassist-3.16.1-10.el7.noarch 35/37 Verifying : gstreamer1-plugins-base-1.10.4-2.el7.x86_64 36/37 Verifying : libsndfile-1.0.25-11.el7.x86_64 37/37 Installed: dejavu-sans-mono-fonts.noarch 0:2.33-6.el7 guacd.x86_64 1:1.1.0-1.el7 libguac.x86_64 1:1.1.0-1.el7 libguac-client-rdp.x86_64 1:1.1.0-1.el7 libguac-client-ssh.x86_64 1:1.1.0-1.el7 libguac-client-vnc.x86_64 1:1.1.0-1.el7 mysql-connector-java.noarch 1:5.1.25-3.el7 Dependency Installed: apache-commons-lang.noarch 0:2.6-15.el7 cal10n.noarch 0:0.7.7-4.el7 cdparanoia-libs.x86_64 0:10.2-17.el7 flac-libs.x86_64 0:1.3.0-5.el7_1 freerdp-libs.x86_64 0:2.0.0-1.rc4.el7 gsm.x86_64 0:1.0.13-11.el7 gstreamer1.x86_64 0:1.10.4-2.el7 gstreamer1-plugins-base.x86_64 0:1.10.4-2.el7 iso-codes.noarch 0:3.46-2.el7 javassist.noarch 0:3.16.1-10.el7 libXv.x86_64 0:1.0.11-1.el7 libasyncns.x86_64 0:0.8-7.el7 libogg.x86_64 2:1.3.0-7.el7 libsndfile.x86_64 0:1.0.25-11.el7 libtheora.x86_64 1:1.1.1-8.el7 libvisual.x86_64 0:0.4.0-16.el7 libvncserver.x86_64 0:0.9.9-14.el7_7 libvorbis.x86_64 1:1.3.3-8.el7.1 libwebp.x86_64 0:0.3.0-7.el7 libwinpr.x86_64 0:2.0.0-1.rc4.el7 libxkbcommon.x86_64 0:0.7.1-3.el7 libxkbfile.x86_64 0:1.0.9-3.el7 lzo-minilzo.x86_64 0:2.06-8.el7 opus.x86_64 0:1.0.2-6.el7 orc.x86_64 0:0.4.26-1.el7 pulseaudio-libs.x86_64 0:10.0-5.el7 slf4j.noarch 0:1.7.4-4.el7_4 uuid.x86_64 0:1.6.2-26.el7 xkeyboard-config.noarch 0:2.24-1.el7 xml-common.noarch 0:0.6.3-39.el7 Complete!
Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit dem Paket guacd
installiert wurden.
# rpm -qil guacd Name : guacd Epoch : 1 Version : 1.1.0 Release : 1.el7 Architecture: x86_64 Install Date: Tue 05 May 2020 08:06:54 AM CEST Group : Unspecified Size : 61946 License : ASL 2.0 Signature : RSA/SHA256, Sat 08 Feb 2020 06:10:36 PM CET, Key ID 6a2faea2352c64e5 Source RPM : guacamole-server-1.1.0-1.el7.src.rpm Build Date : Sat 08 Feb 2020 05:53:05 PM CET Build Host : buildvm-17.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://guac-dev.org/ Bug URL : https://bugz.fedoraproject.org/guacamole-server Summary : Proxy daemon for Guacamole Description : guacd is the Guacamole proxy daemon used by the Guacamole web application and framework to translate between arbitrary protocols and the Guacamole protocol. /etc/sysconfig/guacd /usr/bin/guaclog /usr/lib/systemd/system/guacd.service /usr/sbin/guacd /usr/share/man/man1/guaclog.1.gz /usr/share/man/man5/guacd.conf.5.gz /usr/share/man/man8/guacd.8.gz /var/lib/guacd
Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit dem Paket libguac
installiert wurden.
# rpm -qil libguac Name : libguac Epoch : 1 Version : 1.1.0 Release : 1.el7 Architecture: x86_64 Install Date: Tue 05 May 2020 08:06:31 AM CEST Group : Unspecified Size : 111970 License : ASL 2.0 Signature : RSA/SHA256, Sat 08 Feb 2020 06:10:32 PM CET, Key ID 6a2faea2352c64e5 Source RPM : guacamole-server-1.1.0-1.el7.src.rpm Build Date : Sat 08 Feb 2020 05:53:05 PM CET Build Host : buildvm-17.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://guac-dev.org/ Bug URL : https://bugz.fedoraproject.org/guacamole-server Summary : The common library used by all C components of Guacamole Description : libguac is the core library for guacd (the Guacamole proxy) and any protocol support plugins for guacd. libguac provides efficient buffered I/O of text and base64 data, as well as somewhat abstracted functions for sending Guacamole instructions. /usr/lib64/libguac.so.17 /usr/lib64/libguac.so.17.0.0 /usr/share/doc/libguac-1.1.0 /usr/share/doc/libguac-1.1.0/CONTRIBUTING /usr/share/doc/libguac-1.1.0/README /usr/share/licenses/libguac-1.1.0 /usr/share/licenses/libguac-1.1.0/LICENSE
Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit dem Paket libguac-client-rdp
installiert wurden.
# rpm -qil libguac-client-rdp Name : libguac-client-rdp Epoch : 1 Version : 1.1.0 Release : 1.el7 Architecture: x86_64 Install Date: Tue 05 May 2020 08:06:52 AM CEST Group : Unspecified Size : 383864 License : ASL 2.0 Signature : RSA/SHA256, Sat 08 Feb 2020 06:10:30 PM CET, Key ID 6a2faea2352c64e5 Source RPM : guacamole-server-1.1.0-1.el7.src.rpm Build Date : Sat 08 Feb 2020 05:53:05 PM CET Build Host : buildvm-17.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://guac-dev.org/ Bug URL : https://bugz.fedoraproject.org/guacamole-server Summary : RDP support for guacd Description : libguac-client-rdp is a protocol support plugin for the Guacamole proxy (guacd) which provides support for RDP, the proprietary remote desktop protocol used by Windows Remote Deskop / Terminal Services, via the libfreerdp library. /usr/lib64/freerdp2/libguac-common-svc-client.so /usr/lib64/freerdp2/libguacai-client.so /usr/lib64/libguac-client-rdp.so /usr/lib64/libguac-client-rdp.so.0 /usr/lib64/libguac-client-rdp.so.0.0.0
Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit dem Paket libguac-client-ssh
installiert wurden.
# rpm -qil libguac-client-ssh Name : libguac-client-ssh Epoch : 1 Version : 1.1.0 Release : 1.el7 Architecture: x86_64 Install Date: Tue 05 May 2020 08:06:54 AM CEST Group : Unspecified Size : 184976 License : ASL 2.0 Signature : RSA/SHA256, Sat 08 Feb 2020 06:10:29 PM CET, Key ID 6a2faea2352c64e5 Source RPM : guacamole-server-1.1.0-1.el7.src.rpm Build Date : Sat 08 Feb 2020 05:53:05 PM CET Build Host : buildvm-17.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://guac-dev.org/ Bug URL : https://bugz.fedoraproject.org/guacamole-server Summary : SSH support for guacd Description : libguac-client-ssh is a protocol support plugin for the Guacamole proxy (guacd) which provides support for SSH, the secure shell. /usr/lib64/libguac-client-ssh.so /usr/lib64/libguac-client-ssh.so.0 /usr/lib64/libguac-client-ssh.so.0.0.0
Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit dem Paket libguac-client-vnc
installiert wurden.
# rpm -qil libguac-client-vnc Name : libguac-client-vnc Epoch : 1 Version : 1.1.0 Release : 1.el7 Architecture: x86_64 Install Date: Tue 05 May 2020 08:06:52 AM CEST Group : Unspecified Size : 93496 License : ASL 2.0 Signature : RSA/SHA256, Sat 08 Feb 2020 06:10:35 PM CET, Key ID 6a2faea2352c64e5 Source RPM : guacamole-server-1.1.0-1.el7.src.rpm Build Date : Sat 08 Feb 2020 05:53:05 PM CET Build Host : buildvm-17.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://guac-dev.org/ Bug URL : https://bugz.fedoraproject.org/guacamole-server Summary : VNC support for guacd Description : libguac-client-vnc is a protocol support plugin for the Guacamole proxy (guacd) which provides support for VNC via the libvncclient library (part of libvncserver). /usr/lib64/libguac-client-vnc.so /usr/lib64/libguac-client-vnc.so.0 /usr/lib64/libguac-client-vnc.so.0.0.0
guacd.service: Dienst/Deamon-Start einrichten
Um den Verbindungs-Daemon guacd
von Apache Guacamole, welcher als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:
# systemctl enable guacd.service Created symlink from /etc/systemd/system/multi-user.target.wants/guacd.service to /usr/lib/systemd/system/guacd.service.
Eine Überprüfung, ob beim Neustart des Server der guacd.service
-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:
# systemctl list-unit-files --type=service | grep -e guacd.service guacd.service enabled
bzw.
# systemctl is-enabled guacd.service enabled
MariaDB-Konfiguration
Falls eine Installation des MariaDB-Datenbank-Servers, wie unter nachfolgendem Link beschrieben durchgeführt wurde
und wie ebenfalls unter nachfolgendem Link, die Sicherheitskonfiguration durchgeführt wurde
sind nacholgende Konfiguration des MariaDB-Datenbank-Servers erforderlich.
Folgende Schritte sind in diesem Fall durchzuführen mit dem nachfolgend zu erstellenden Skripten durchzuführen:
- eine Datenbank mit dem Namen
guacamole
anlegen - einen Benutzer mit dem Namen
guacamole_user
anlegen - ein Passwort das
WasGeheimes
lautet dem Benutzerguacamole_user
zuweisen - dem Benutzer
guacamole_user
entsprechende Rechte für die Datenbankguacamole
erteilen.
MariaDB-Konfiguration: Datenbank anlegen
Mit nachfolgendem Befehl soll nun eine SQL-Datei in nachfolgendem Verzeichnis, mit nachfolgendem Namen und nachfolgendem Inhalt erstellt werden.
SQL-Datei | Verwendungszweck |
---|---|
/tmp/create_database_guacamole.sql | Erstellung einer Datenbank |
# touch /tmp/create_database_guacamole.sql
Die SQL-Datei /tmp/create_database_guacamole.sql
soll nachfolgenden Inhalt bekommen:
-- MariaDB-SQL-Script. -- Create database guacamole -- (c) Klaus Tachtler 2020. -- /usr/bin/mysql -u root -p < <script.sql> -- CREATE DATABASE guacamole; CREATE DATABASE IF NOT EXISTS guacamole DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Abschließend wird mit nachfolgendem Befehl der Inhalt der SQL-Datei im laufendem Betrieb des MariaDB-Datenbank-Servers der Konfiguration des MariaDB-Datenbank-Servers hinzugefügt:
# /usr/bin/mysql -u root -p < /tmp/create_database_guacamole.sql
WICHTIG - Es wird die Kenntnis des Passwortes für den Benutzer root
vorausgesetzt!.
Mit nachfolgenden Befehlen kann nun überprüft werden, ob die vorhergehenden Schritte zur Einrichtung einer neuen Datenbank erfolgreich waren.
Nachfolgender Befehl ermöglicht die Anmeldung am MariaDB-Monitor:
# mysql -h 127.0.0.1 -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 449091 Server version: 5.5.64-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Nachfolgender Befehl listet den angelegten Remote-Benutzer mit allen Details auf:
MariaDB [(none)]> SHOW databases LIKE 'guacamole'; +----------------------+ | Database (guacamole) | +----------------------+ | guacamole | +----------------------+ 1 row in set (0.00 sec) MariaDB [(none)]>
Nachfolgender Befehl beendet den MariaDB-Monitor:
MariaDB [(none)]> quit Bye
MariaDB-Konfiguration: Benutzer anlegen
Um ein Passwort im verschlüsselten Format für das Passwort-Feld der nachfolgenden SQL-Datei zu erstellen, kann nachfolgender Befehl genutzt werden.
WICHTIG - Es wird die Kenntnis des Passwortes für den Benutzer root
vorausgesetzt!.
# echo "SELECT PASSWORD('WasGeheimes');" | mysql -h localhost -u root -p Enter password: PASSWORD('WasGeheimes') *C5AA71BF9FCC5732345832D1467324149A2C0BB1
Mit nachfolgendem Befehl soll nun eine SQL-Datei in nachfolgendem Verzeichnis, mit nachfolgendem Namen und nachfolgendem Inhalt erstellt werden.
SQL-Datei | Verwendungszweck |
---|---|
/tmp/create_users_for_remote_access_to_database_guacamole.sql | Erstellung eines Remote-Benutzers |
# touch /tmp/create_users_for_remote_access_to_database_guacamole.sql
Die SQL-Datei /tmp/create_users_for_remote_access_to_database_guacamole.sql
soll nachfolgenden Inhalt bekommen:
-- MariaDB-SQL-Script. -- Create users for remote access to database guacamole. -- (c) Klaus Tachtler 2020. -- /usr/bin/mysql -u root -p < <script.sql> -- Use database. USE mysql; -- Create new users. CREATE USER 'guacamole_user'@'192.168.0.100' IDENTIFIED BY PASSWORD '*C5AA71BF9FCC5732345832D1467324149A2C0BB1'; CREATE USER 'guacamole_user'@'server100.idmz.tachtler.net' IDENTIFIED BY PASSWORD '*C5AA71BF9FCC5732345832D1467324149A2C0BB1'; -- Grant privileges for database guacamole to new users. GRANT USAGE ON *.* TO 'guacamole_user'@'192.168.0.100' IDENTIFIED BY PASSWORD '*C5AA71BF9FCC5732345832D1467324149A2C0BB1'; GRANT SELECT, INSERT, UPDATE, DELETE ON `guacamole`.* TO 'guacamole_user'@'192.168.0.100'; GRANT USAGE ON *.* TO 'guacamole_user'@'server100.idmz.tachtler.net' IDENTIFIED BY PASSWORD '*C5AA71BF9FCC5732345832D1467324149A2C0BB1'; GRANT SELECT, INSERT, UPDATE, DELETE ON `guacamole`.* TO 'guacamole_user'@'server100.idmz.tachtler.net'; -- Make sure that priviliges are reloaded. FLUSH PRIVILEGES;
Abschließend wird mit nachfolgendem Befehl der Inhalt der SQL-Datei im laufendem Betrieb des MariaDB-Datenbank-Servers der Konfiguration des MariaDB-Datenbank-Servers hinzugefügt:
# /usr/bin/mysql -u root -p < /tmp/create_users_for_remote_access_to_database_guacamole.sql
Mit nachfolgenden Befehlen kann nun überprüft werden, ob die vorhergehenden Schritte zur Einrichtung eines Remote-Benutzers erfolgreich waren.
Nachfolgender Befehl ermöglicht die Anmeldung am MariaDB-Monitor:
# mysql -h 127.0.0.1 -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 449118 Server version: 5.5.64-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Nachfolgender Befehl listet den angelegten Remote-Benutzer mit allen Details auf:
MariaDB [(none)]> SELECT * FROM mysql.user WHERE User = 'guacamole'; +----------------------------+-----------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+ | Host | User | Password | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections | plugin | authentication_string | +----------------------------+-----------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+ | 192.168.0.100 | guacamole_user | *C5AA71BF9FCC5732345832D1467324149A2C0BB1 | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | | | | | 0 | 0 | 0 | 0 | | | | server100.idmz.tachtler.net | guacamole_user | *C5AA71BF9FCC5732345832D1467324149A2C0BB1 | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | | | | | 0 | 0 | 0 | 0 | | | +----------------------------+-----------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+ 2 rows in set (0.00 sec)
Nachfolgende Befehle listen die Rechte des Benutzers guacamole_user
für die Datenbank guacamole
auf:
MariaDB [guacamole]> SHOW GRANTS FOR 'guacamole_user'@'192.168.0.100'; +---------------------------------------------------------------------------------------------------------------------------+ | Grants for guacamole@192.168.0.100 | +---------------------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'guacamole_user'@'192.168.0.100' IDENTIFIED BY PASSWORD '*C5AA71BF9FCC5732345832D1467324149A2C0BB1' | | GRANT SELECT, INSERT, UPDATE, DELETE ON `guacamole`.* TO 'guacamole_user'@'192.168.0.100' | +---------------------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.00 sec)
MariaDB [guacamole]> SHOW GRANTS FOR 'guacamole_user'@'server100.idmz.tachtler.net'; +-----------------------------------------------------------------------------------------------------------------------------------------+ | Grants for guacamole_user@server100.idmz.tachtler.net | +-----------------------------------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'guacamole_user'@'server100.idmz.tachtler.net' IDENTIFIED BY PASSWORD '*C5AA71BF9FCC5732345832D1467324149A2C0BB1' | | GRANT SELECT, INSERT, UPDATE, DELETE ON `guacamole`.* TO 'guacamole_user'@'server100.idmz.tachtler.net' | +-----------------------------------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.00 sec) MariaDB [guacamole]>
Nachfolgender Befehl beendet den MariaDB-Monitor:
MariaDB [(none)]> quit Bye
MariaDB-Konfiguration: Tabellen anlegen
Um die benötigten Tabellen anlegen zu können, ist es erforderlich die entsprechenden Tabellendefinitionen herunterzuladen.
Dies kann, hier für die Version 1.1.0, unter nachfolgenden Link druchgeführt werden:
Der folgende Befehl kann dazu genutzt werden, die benötigte extension
in das Verzeichnis /tmp
herunterzuladen:
# wget -P /tmp https://downloads.apache.org/guacamole/1.1.0/binary/guacamole-auth-jdbc-1.1.0.tar.gz --2020-05-03 07:43:11-- https://downloads.apache.org/guacamole/1.1.0/binary/guacamole-auth-jdbc-1.1.0.tar.gz Resolving downloads.apache.org (downloads.apache.org)... 88.99.95.219, 2a01:4f8:10a:201a::2 Connecting to downloads.apache.org (downloads.apache.org)|88.99.95.219|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 13626322 (13M) [application/x-gzip] Saving to: ‘/tmp/guacamole-auth-jdbc-1.1.0.tar.gz’ 100%[======================================>] 13,626,322 1.25MB/s in 9.7s 2020-05-03 07:43:21 (1.34 MB/s) - ‘/tmp/guacamole-auth-jdbc-1.1.0.tar.gz’ saved [13626322/13626322]
Anschließend kann mit nachfolgendem Befehl die soeben heruntergeladene Datei /tmp/guacamole-auth-jdbc-1.1.0.tar.gz
, ebenfalls in das Verzeichnis /tmp
extrahiert werden:
# tar xzvf /tmp/guacamole-auth-jdbc-1.1.0.tar.gz -C /tmp/ guacamole-auth-jdbc-1.1.0/ guacamole-auth-jdbc-1.1.0/bundled/ guacamole-auth-jdbc-1.1.0/bundled/guice-3.0/ guacamole-auth-jdbc-1.1.0/bundled/aopalliance-1.0/ guacamole-auth-jdbc-1.1.0/bundled/mybatis-3.2.8/ guacamole-auth-jdbc-1.1.0/bundled/javax.inject-1/ guacamole-auth-jdbc-1.1.0/bundled/mybatis-guice-3.6/ guacamole-auth-jdbc-1.1.0/bundled/guava-18.0/ guacamole-auth-jdbc-1.1.0/bundled/guice-3.0/COPYING guacamole-auth-jdbc-1.1.0/bundled/aopalliance-1.0/LICENSE guacamole-auth-jdbc-1.1.0/bundled/README guacamole-auth-jdbc-1.1.0/bundled/mybatis-3.2.8/NOTICE guacamole-auth-jdbc-1.1.0/bundled/mybatis-3.2.8/LICENSE guacamole-auth-jdbc-1.1.0/bundled/javax.inject-1/LICENSE-2.0.txt guacamole-auth-jdbc-1.1.0/bundled/mybatis-guice-3.6/NOTICE guacamole-auth-jdbc-1.1.0/bundled/mybatis-guice-3.6/LICENSE guacamole-auth-jdbc-1.1.0/bundled/guava-18.0/COPYING guacamole-auth-jdbc-1.1.0/NOTICE guacamole-auth-jdbc-1.1.0/LICENSE guacamole-auth-jdbc-1.1.0/mysql/schema/ guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/ guacamole-auth-jdbc-1.1.0/mysql/schema/002-create-admin-user.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.9.8.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.9.9.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.9.13.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.9.6.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.8.2.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.9.11.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-1.0.0.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.9.10.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.9.14.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.9.7.sql guacamole-auth-jdbc-1.1.0/mysql/schema/001-create-schema.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/ guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/ guacamole-auth-jdbc-1.1.0/postgresql/schema/002-create-admin-user.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/upgrade-pre-0.9.8.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/upgrade-pre-0.9.9.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/upgrade-pre-0.9.13.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/upgrade-pre-0.9.11.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/upgrade-pre-1.0.0.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/upgrade-pre-0.9.10.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/upgrade-pre-0.9.14.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/upgrade-pre-0.9.7.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/001-create-schema.sql guacamole-auth-jdbc-1.1.0/sqlserver/schema/ guacamole-auth-jdbc-1.1.0/sqlserver/schema/upgrade/ guacamole-auth-jdbc-1.1.0/sqlserver/schema/002-create-admin-user.sql guacamole-auth-jdbc-1.1.0/sqlserver/schema/upgrade/upgrade-pre-1.0.0.sql guacamole-auth-jdbc-1.1.0/sqlserver/schema/001-create-schema.sql guacamole-auth-jdbc-1.1.0/mysql/guacamole-auth-jdbc-mysql-1.1.0.jar guacamole-auth-jdbc-1.1.0/postgresql/guacamole-auth-jdbc-postgresql-1.1.0.jar guacamole-auth-jdbc-1.1.0/sqlserver/guacamole-auth-jdbc-sqlserver-1.1.0.jar
Hier sind nachfolgende Dateien für die Anlage der Tabellen von Apache Guacamole in der zuvor auf dem Datenbak-Server MariaDB angelegten Datenbank guacamole
wichtig:
/tmp/guacamole-auth-jdbc-1.1.0/mysql/schema/001-create-schema.sql
/tmp/guacamole-auth-jdbc-1.1.0/mysql/schema/002-create-admin-user.sql
auch die Datei
/tmp/guacamole-auth-jdbc-1.1.0/mysql/guacamole-auth-jdbc-mysql-1.1.0.jar
wird später noch zur Einbindung in den Apache Tomcat-Applikationsserver benötigt!
WICHTIG - Bevor die in der heruntergeladene Datei /tmp/guacamole-auth-jdbc-1.1.0.tar.gz
mitgelieferten Skripte
/tmp/guacamole-auth-jdbc-1.1.0/mysql/schema/001-create-schema.sql
/tmp/guacamole-auth-jdbc-1.1.0/mysql/schema/002-create-admin-user.sql
ausgeführt werden können, sollte dieses noch um nachfolgende Zeile am Anfang des Skript ergänzt werden:
(Nur relevanter Ausschnitt):
use guacamole;
WICHTIG - Zur Ausführung der SQL-Datei kann nachfolgender Befehl genutzt werden, welcher jedoch die Kenntnis des root
-Passwort für die Datenbank voraussetzt!:
# /usr/bin/mysql -u root -p < /tmp/guacamole-auth-jdbc-1.1.0/mysql/schema/001-create-schema.sql Enter password:
# /usr/bin/mysql -u root -p < /tmp/guacamole-auth-jdbc-1.1.0/mysql/schema/002-create-admin-user.sql Enter password:
* Das Erscheinen keiner Fehlermeldung, bedeutet die korrekte Ausführung des jeweiligen Befehls!
Apache Tomcat-Konfiguration
Bevor die eigentliche Web-Applikation auf dem Apache Tomcat-Applikationsserver „deployed“ werden soll, müssen nachfolgende Rahmenbedingungen für den erfolgreichen Betrieb der Anwendung geschaffen werden.
mysql-connector-java.jar
Hier ist nun nachfolgende Datei für die Verbindung von Apache Tomcat zu dem Datenbank-Server MariaDB wichtig:
/usr/share/java/mysql-connector-java.jar
und muss in den Apache Tomcat-Applikationsserver wie folgt eingebunden werden:
# cp -a /usr/share/java/mysql-connector-java.jar /usr/share/tomcat/lib/
Anschließend sind die Besitzrechte an der Datei mysql-connector-java.jar
mit nachfolgendem Befehl entsprechend zu setzen:
# chown root:root -R /usr/share/tomcat/lib/mysql-connector-java.jar
Ob das Kopieren der Datei mysql-connector-java.jar
erfolgreich durchgeführt wurde und auch die entsprechenden Besitzrechte korrekt gesetzt wurden, kann durch Auflistung des Verzeichnisses mit nachfolgenden Befehl überprüft werden:
# ls -l /usr/share/tomcat/lib/mysql-connector-java.jar -rw-r--r-- 1 root root 883898 Jun 10 2014 /usr/share/tomcat/lib/mysql-connector-java.jar
/usr/share/tomcat/.guacamole/extensions
Desweiteren ist ein neues verstecktes Verzeichnis mit dem Namen .guacamole
und einem Unterordner darin, mit der Bezeichnung extensions
in nachfolgendem Verzeichnis mit nachfolgendem Befehl zu erstellen:
# mkdir -p /usr/share/tomcat/.guacamole/extensions
guacamole-auth-jdbc-mysql-1.1.0.jar
Falls nicht mehr vorhanden, muss hier die Version 1.1.0, unter nachfolgenden Link heruntergeladen werden:
Der folgende Befehl kann dazu genutzt werden, die benötigte extension
in das Verzeichnis /tmp
herunterzuladen:
# wget -P /tmp https://downloads.apache.org/guacamole/1.1.0/binary/guacamole-auth-jdbc-1.1.0.tar.gz --2020-05-03 07:43:11-- https://downloads.apache.org/guacamole/1.1.0/binary/guacamole-auth-jdbc-1.1.0.tar.gz Resolving downloads.apache.org (downloads.apache.org)... 88.99.95.219, 2a01:4f8:10a:201a::2 Connecting to downloads.apache.org (downloads.apache.org)|88.99.95.219|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 13626322 (13M) [application/x-gzip] Saving to: ‘/tmp/guacamole-auth-jdbc-1.1.0.tar.gz’ 100%[======================================>] 13,626,322 1.25MB/s in 9.7s 2020-05-03 07:43:21 (1.34 MB/s) - ‘/tmp/guacamole-auth-jdbc-1.1.0.tar.gz’ saved [13626322/13626322]
Anschließend kann mit nachfolgendem Befehl die soeben heruntergeladene Datei /tmp/guacamole-auth-jdbc-1.1.0.tar.gz
, ebenfalls in das Verzeichnis /tmp
extrahiert werden:
# tar xzvf /tmp/guacamole-auth-jdbc-1.1.0.tar.gz -C /tmp/ guacamole-auth-jdbc-1.1.0/ guacamole-auth-jdbc-1.1.0/bundled/ guacamole-auth-jdbc-1.1.0/bundled/guice-3.0/ guacamole-auth-jdbc-1.1.0/bundled/aopalliance-1.0/ guacamole-auth-jdbc-1.1.0/bundled/mybatis-3.2.8/ guacamole-auth-jdbc-1.1.0/bundled/javax.inject-1/ guacamole-auth-jdbc-1.1.0/bundled/mybatis-guice-3.6/ guacamole-auth-jdbc-1.1.0/bundled/guava-18.0/ guacamole-auth-jdbc-1.1.0/bundled/guice-3.0/COPYING guacamole-auth-jdbc-1.1.0/bundled/aopalliance-1.0/LICENSE guacamole-auth-jdbc-1.1.0/bundled/README guacamole-auth-jdbc-1.1.0/bundled/mybatis-3.2.8/NOTICE guacamole-auth-jdbc-1.1.0/bundled/mybatis-3.2.8/LICENSE guacamole-auth-jdbc-1.1.0/bundled/javax.inject-1/LICENSE-2.0.txt guacamole-auth-jdbc-1.1.0/bundled/mybatis-guice-3.6/NOTICE guacamole-auth-jdbc-1.1.0/bundled/mybatis-guice-3.6/LICENSE guacamole-auth-jdbc-1.1.0/bundled/guava-18.0/COPYING guacamole-auth-jdbc-1.1.0/NOTICE guacamole-auth-jdbc-1.1.0/LICENSE guacamole-auth-jdbc-1.1.0/mysql/schema/ guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/ guacamole-auth-jdbc-1.1.0/mysql/schema/002-create-admin-user.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.9.8.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.9.9.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.9.13.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.9.6.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.8.2.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.9.11.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-1.0.0.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.9.10.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.9.14.sql guacamole-auth-jdbc-1.1.0/mysql/schema/upgrade/upgrade-pre-0.9.7.sql guacamole-auth-jdbc-1.1.0/mysql/schema/001-create-schema.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/ guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/ guacamole-auth-jdbc-1.1.0/postgresql/schema/002-create-admin-user.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/upgrade-pre-0.9.8.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/upgrade-pre-0.9.9.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/upgrade-pre-0.9.13.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/upgrade-pre-0.9.11.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/upgrade-pre-1.0.0.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/upgrade-pre-0.9.10.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/upgrade-pre-0.9.14.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/upgrade/upgrade-pre-0.9.7.sql guacamole-auth-jdbc-1.1.0/postgresql/schema/001-create-schema.sql guacamole-auth-jdbc-1.1.0/sqlserver/schema/ guacamole-auth-jdbc-1.1.0/sqlserver/schema/upgrade/ guacamole-auth-jdbc-1.1.0/sqlserver/schema/002-create-admin-user.sql guacamole-auth-jdbc-1.1.0/sqlserver/schema/upgrade/upgrade-pre-1.0.0.sql guacamole-auth-jdbc-1.1.0/sqlserver/schema/001-create-schema.sql guacamole-auth-jdbc-1.1.0/mysql/guacamole-auth-jdbc-mysql-1.1.0.jar guacamole-auth-jdbc-1.1.0/postgresql/guacamole-auth-jdbc-postgresql-1.1.0.jar guacamole-auth-jdbc-1.1.0/sqlserver/guacamole-auth-jdbc-sqlserver-1.1.0.jar
Hier ist nun nachfolgende Datei für die Verbindung von Apache Guacamole in der zuvor auf dem Datenbank-Server MariaDB angelegten Datenbank guacamole
wichtig:
/tmp/guacamole-auth-jdbc-1.1.0/mysql/guacamole-auth-jdbc-mysql-1.1.0.jar
und muss in den Apache Tomcat-Applikationsserver wie folgt eingebunden werden:
# cp -a /tmp/guacamole-auth-jdbc-1.1.0/mysql/guacamole-auth-jdbc-mysql-1.1.0.jar /usr/share/tomcat/.guacamole/extensions
Anschließend sind die Besitzrechte an dem neu erstellen Verzeichnis und Unterverzeichnis und der Datei guacamole-auth-jdbc-mysql-1.1.0.jar
mit nachfolgendem Befehl entsprechend zu setzen:
# chown root:tomcat -R /usr/share/tomcat/.guacamole
Ob das Kopieren der Datei guacamole-auth-jdbc-mysql-1.1.0.jar
erfolgreich durchgeführt wurde und auch die entsprechenden Besitzrechte korrekt gesetzt wurden, kann durch Auflistung des Verzeichnisses mit nachfolgenden Befehlen überprüft werden:
# find /usr/share/tomcat/.guacamole /usr/share/tomcat/.guacamole /usr/share/tomcat/.guacamole/extensions /usr/share/tomcat/.guacamole/extensions/guacamole-auth-jdbc-mysql-1.1.0.jar
und
# ls -l /usr/share/tomcat/.guacamole/* total 4916 -rw-r--r-- 1 root tomcat 5030106 Jan 26 18:42 guacamole-auth-jdbc-mysql-1.1.0.jar
MySQL: /usr/share/tomcat/.guacamole/guacamole.properties
Zum Abschluß der Einrichtung von Apache Guacamole und der Verbindung des Apache Tomcat-Applikationsserver zur MariaDB ist noch eine neue Konfigurationsdatei mit dem Namen guacamole.properties
im Verzeichnis /usr/share/tomcat/.guacamole
mit nachfolgendem Befehl
# vim /usr/share/tomcat/.guacamole/guacamole.properties
und nachfolgendem Inhalt
mysql-hostname: db.idmz.tachter.net mysql-port: 3306 mysql-database: guacamole mysql-username: guacamole_user mysql-password: WasGeheimes mysql-default-max-connections-per-user: 0 mysql-default-max-group-connections-per-user: 0
zu erstellen.
Anschließend sind die Besitzrechte an dem neu erstellen Verzeichnis und Unterverzeichnis und der Datei guacamole-auth-jdbc-mysql-1.1.0.jar
mit nachfolgendem Befehl entsprechend zu setzen:
# chown root:tomcat -R /usr/share/tomcat/.guacamole
Ob die Neuanlage der Datei guacamole.properties
erfolgreich durchgeführt wurde und auch die entsprechenden Besitzrechte korrekt gesetzt wurden, kann durch Auflistung des Verzeichnisses mit nachfolgenden Befehlen überprüft werden:
# ls -l /usr/share/tomcat/.guacamole/guacamole.properties -rw-r--r-- 1 root tomcat 228 May 5 08:55 /usr/share/tomcat/.guacamole/guacamole.properties
/usr/share/tomcat/conf/server.xml
Wenn die Verbindung nicht direkt zum Apache Tomcat-Applikationsserver ermöglicht werden soll, sondern wie nachfolgend noch konfiguriert werden soll, über den Apache HTTP Server, sind nachfolgende Anpassungen noch erfordelrich.
Wenn sich der Apache Tomcat-Applikationsserver hinter einem Reverse-Proxy wie z.B. hier in diesem Fall der Apache HTTP Server befindet, ist die Remote-IP-Adresse des Clients, die er sieht, standardmäßig die des Proxys und nicht die des ursprünglichen Clients. Damit Anwendungen, die innerhalb von Apache Tomcat-Applikationsserver gehostet werden, wie Apache Guacamole, die tatsächliche IP-Adresse des Clients sehen können, muss sowohl den Reverse-Proxy als auch der Apache Tomcat-Applikationsserver konfiguriert werden.
Nachfolgende Anpassungen müssen an der Apache Tomcat-Applikationsserver Konfigurationsdatei:
/usr/share/tomcat/conf/server.xml
durchgeführt werden:
(Nur relevanter Ausschnitt)
<!-- New for Apache Guacamole --> <Valve className="org.apache.catalina.valves.RemoteIpValve" internalProxies="127.0.0.1" remoteIpHeader="x-forwarded-for" remoteIpProxiesHeader="x-forwarded-by" protocolHeader="x-forwarded-proto" />
*Quelle: Chapter 4. Proxying Guacamole
guacamole-1.1.0.war
Das Wichtigste zum Schluss, die eigentliche Applikation, welche auf dem Apache Tomcat-Applikationsserver zu „deployen“ ist.
Hier die Version 1.1.0, unter nachfolgenden Link heruntergeladen werden:
Der folgende Befehl kann dazu genutzt werden, die benötigte extension
in das Verzeichnis /tmp
herunterzuladen:
# wget -P /tmp https://downloads.apache.org/guacamole/1.1.0/binary/guacamole-1.1.0.war --2020-05-05 10:01:19-- https://downloads.apache.org/guacamole/1.1.0/binary/guacamole-1.1.0.war Resolving downloads.apache.org (downloads.apache.org)... 88.99.95.219, 2a01:4f8:10a:201a::2 Connecting to downloads.apache.org (downloads.apache.org)|88.99.95.219|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 9518140 (9.1M) Saving to: ‘/tmp/guacamole-1.1.0.war’ 100%[======================================>] 9,518,140 1.17MB/s in 11s 2020-05-05 10:01:30 (875 KB/s) - ‘/tmp/guacamole-1.1.0.war’ saved [9518140/9518140]
Anschließend sind die Besitzrechte an dem neu erstellen Verzeichnis und Unterverzeichnis und der Datei guacamole-1.1.0.war
mit nachfolgendem Befehl entsprechend zu setzen:
# chown tomcat:tomcat -R /tmp/guacamole-1.1.0.war
Jetzt muss nur noch die Web-Anwendung von Apache Guacamole auf den -Server Apache Tomcat-Applikationsserver „deployed“ werden, was durch kopieren der Datei guacamole-1.1.0.war
nach /usr/share/tomcat/webapps
und das umbennenen der Datei in guacamole.war
mit nachfolgendem Befehl erfolgen kann:
# cp -a /tmp/guacamole-1.1.0.war /usr/share/tomcat/webapps/guacamole.war
Ob das Kopieren und „deployen“ der Datei guacamole-1.1.0.war
erfolgreich durchgeführt wurde , kann durch Auflistung des Verzeichnisses mit nachfolgenden Befehl überprüft werden:
<code> # ls -l /usr/share/tomcat/webapps/ | grep guacamole drwxr-xr-x 11 tomcat tomcat 4096 May 5 10:07 guacamole -rw-r--r-- 1 tomcat tomcat 9518140 Jan 26 18:55 guacamole.war
Tomcat Neustart
Mit nachfolgenden Befehl, kann der Apache Tomcat-Applikationsserver neu gestartet werden:
# systemctl restart tomcat.service
Nachfolgende Ausgabe sollte dann in der LOG-Datei
/var/log/tomcat/catalina.[YYYY-MM-TT].out
z.B./var/log/tomcat/catalina.2020-05-05.out
des Apache Tomcat zu finden sein:
(Nur relevanter Ausschnitt)
INFO: Deploying web application archive /var/lib/tomcat/webapps/guacamole.war May 05, 2020 10:07:52 AM org.apache.catalina.startup.TldConfig execute INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. May 05, 2020 10:07:55 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory register INFO: Registering org.apache.guacamole.rest.RESTExceptionMapper as a provider class May 05, 2020 10:07:55 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory register INFO: Registering org.apache.guacamole.rest.extension.ExtensionRESTService as a root resource class May 05, 2020 10:07:55 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory register INFO: Registering org.apache.guacamole.rest.language.LanguageRESTService as a root resource class May 05, 2020 10:07:55 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory register INFO: Registering org.apache.guacamole.rest.patch.PatchRESTService as a root resource class May 05, 2020 10:07:55 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory register INFO: Registering org.apache.guacamole.rest.auth.TokenRESTService as a root resource class May 05, 2020 10:07:55 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory register INFO: Registering org.apache.guacamole.rest.session.SessionRESTService as a root resource class May 05, 2020 10:07:55 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory register INFO: Registering org.codehaus.jackson.jaxrs.JacksonJsonProvider as a provider class ...skipping... May 05, 2020 10:12:45 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory register INFO: Registering org.apache.guacamole.rest.patch.PatchRESTService as a root resource class May 05, 2020 10:12:45 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory register INFO: Registering org.apache.guacamole.rest.auth.TokenRESTService as a root resource class May 05, 2020 10:12:45 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory register INFO: Registering org.apache.guacamole.rest.session.SessionRESTService as a root resource class May 05, 2020 10:12:45 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory register INFO: Registering org.codehaus.jackson.jaxrs.JacksonJsonProvider as a provider class May 05, 2020 10:12:45 AM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate INFO: Initiating Jersey application, version 'Jersey: 1.17.1 02/28/2013 12:47 PM' May 05, 2020 10:12:45 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory getComponentProvider INFO: Binding org.apache.guacamole.rest.RESTExceptionMapper to GuiceManagedComponentProvider with the scope "Singleton" May 05, 2020 10:12:45 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory getComponentProvider INFO: Binding org.codehaus.jackson.jaxrs.JacksonJsonProvider to GuiceManagedComponentProvider with the scope "Singleton" May 05, 2020 10:12:46 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory getComponentProvider INFO: Binding org.apache.guacamole.rest.extension.ExtensionRESTService to GuiceManagedComponentProvider with the scope "PerRequest" May 05, 2020 10:12:46 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory getComponentProvider INFO: Binding org.apache.guacamole.rest.language.LanguageRESTService to GuiceManagedComponentProvider with the scope "PerRequest" May 05, 2020 10:12:46 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory getComponentProvider INFO: Binding org.apache.guacamole.rest.patch.PatchRESTService to GuiceManagedComponentProvider with the scope "PerRequest" May 05, 2020 10:12:46 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory getComponentProvider INFO: Binding org.apache.guacamole.rest.auth.TokenRESTService to GuiceManagedComponentProvider with the scope "PerRequest" May 05, 2020 10:12:46 AM com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory getComponentProvider INFO: Binding org.apache.guacamole.rest.session.SessionRESTService to GuiceManagedComponentProvider with the scope "PerRequest" May 05, 2020 10:12:46 AM org.webjars.servlet.WebjarsServlet init INFO: WebjarsServlet initialization completed May 05, 2020 10:12:46 AM org.apache.catalina.startup.HostConfig deployWAR INFO: Deployment of web application archive /var/lib/tomcat/webapps/guacamole.war has finished in 5,349 ms May 05, 2020 10:12:46 AM org.apache.catalina.startup.HostConfig deployDirectory
Apache HTTPD-Konfiguration
Die Konfiguration eines „Reverse-Proxy“ ist für den Betrieb von Apache Guacamole nicht erforderlich, aber würde die Möglichkeit bieten, über einen Webbrowser
- ohne Portangabe
die Website zu erreichen.
Apache VHOST-Konfiguration
Es soll anstelle der mitgelieferten Konfigurationsdatei in nachfolgendem Verzeichnis, mit nachfolgendem Namen:
/etc/httpd/conf.d/guacamole.conf
ein virtueller Host im Apache HTTP Server eingerichtet werden.
Siehe dazu auch nachfolgende interne Links:
Dazu soll zuerst eine neue Konfigurationsdatei mit nachfolgendem Befehl erstellt werden:
# vim /etc/httpd/conf.d/guacamole.conf
Anschließend kann dann der Inhalt der Konfigurationsdatei /etc/httpd/conf.d/guacamole.conf
wie nachfolgend dargestellt entsprechend erstellt werden:
(Komplette Konfigurationsdatei)
# # guacamole.tachtler.net (Apache Guacamole) # <VirtualHost *:80> ServerAdmin webmaster@tachtler.net ServerName guacamole.tachtler.net ServerAlias www.guacamole.tachtler.net ServerPath / DocumentRoot "/usr/share/tomcat/webapps/guacamole" <Directory "/usr/share/tomcat/webapps/guacamole"> Options -Indexes +FollowSymLinks # Tachtler (enable for .htaccess file support) # AllowOverride AuthConfig AllowOverride None # Tachtler (enable for unlimited access) Require all granted </Directory> DirectoryIndex index.html #ProxyPass /guacamole ajp://127.0.0.1:8009/guacamole flushpackets=on #ProxyPassReverse /guacamole ajp://127.0.0.1:8009/guacamole # - OR - <Location /> ProxyPass http://localhost:8080/guacamole/ flushpackets=on ProxyPassReverse http://localhost:8080/guacamole/ </Location> <Location /websocket-tunnel> ProxyPass ws://localhost:8080/guacamole/websocket-tunnel ProxyPassReverse ws://localhost:8080/guacamole/websocket-tunnel </Location> ErrorLog logs/guacamole_error.log SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded SetEnvIf Request_URI "^/tunnel" forwarded CustomLog logs/guacamole_access.log combined env=!forwarded CustomLog logs/guacamole_access.log combined_proxypass env=forwarded </VirtualHost>
Erklärungen
#ProxyPass /guacamole ajp://127.0.0.1:8009/guacamole flushpackets=on #ProxyPassReverse /guacamole ajp://127.0.0.1:8009/guacamole
WICHTIG - Die Option flushpackets=on
muss gesetzte werden!.
Die meisten Proxies, einschließlich mod_proxy_ajp
oder mod_jk
des Apache HTTP Server, puffern alle über die Verbindung gesendeten Daten und warten, bis die Verbindung geschlossen ist, bevor sie diese Daten an den Client senden. Da der HTTP-Tunnel von Apache Guacamole auf dem Streaming von Daten an den Client über eine offene Verbindung beruht, blockiert eine übermäßige Pufferung effektiv Apache Guacamole-Verbindungen und macht Apache Guacamole unbrauchbar.
<Location /> ProxyPass http://localhost:8080/guacamole/ flushpackets=on ProxyPassReverse http://localhost:8080/guacamole/ </Location>
WICHTIG - Die Option flushpackets=on
muss gesetzte werden!.
Die meisten Proxies, einschließlich mod_proxy
des Apache HTTP Server, puffern alle über die Verbindung gesendeten Daten und warten, bis die Verbindung geschlossen ist, bevor sie diese Daten an den Client senden. Da der HTTP-Tunnel von Apache Guacamole auf dem Streaming von Daten an den Client über eine offene Verbindung beruht, blockiert eine übermäßige Pufferung effektiv Apache Guacamole-Verbindungen und macht Apache Guacamole unbrauchbar.
<Location /websocket-tunnel> ProxyPass ws://localhost:8080/guacamole/websocket-tunnel ProxyPassReverse ws://localhost:8080/guacamole/websocket-tunnel </Location>
WICHTIG - Der Abschnitt Standort für /websocket-tunnel
muss nach dem Abschnitt Standort für den Rest von Apache Guacamole platziert werden.
Der Apache HTTP Server wertet alle Location-Abschnitte aus, wobei dem letzten passenden Abschnitt Priorität eingeräumt wird. Wenn der Abschnitt /websocket-tunnel
an erster Stelle steht, stimmt stattdessen der Abschnitt für /
mit dem Abschnitt für /
überein, und WebSocket wird nicht korrekt über den Proxy angesprochen.
SetEnvIf Request_URI "^/tunnel" forwarded
Wenn der WebSocket nicht verfügbar ist, greift Apache Guacamole auf die Verwendung eines HTTP-basierten Tunnels zurück. Der Apache Guacamole-HTTP-Tunnel funktioniert, indem er einen kontinuierlichen Datenstrom über mehrere kurzlebige Ströme überträgt, von denen jeder mit einer separaten HTTP-Anforderung verknüpft ist. Standardmäßig protokolliert der Apache HTTP Server jede dieser Anfragen, was zu einem ziemlich aufgeblähten Zugriffsprotokoll führt.
Apache Neustart
Nach Durchführung der vorhergehenden Konfigurationsschritte, sollte einem Neustart nichts im Wege stehen und die Apache VHOST-Konfiguration angezogen werden:
# systemctl restart httpd.service
HINWEIS - Es erfolgen keine weiteren Ausgaben, wenn der Start erfolgreich war !
guacd-Daemon: Erster Start
Danach kann der guacd-Server mit nachfolgendem Befehle gestartet werden:
# systemctl start guacd.service
Mit nachfolgendem Befehl kann der Status des Apache Guacamole-guacd
-Dienstes/Daemons abgefragt werden:
# systemctl status guacd.service ● guacd.service - Guacamole proxy daemon Loaded: loaded (/usr/lib/systemd/system/guacd.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2020-05-05 11:37:18 CEST; 4s ago Docs: man:guacd(8) Main PID: 23060 (guacd) CGroup: /system.slice/guacd.service └─23060 /usr/sbin/guacd -f May 05 11:37:18 vml70100.idmz.tachtler.net systemd[1]: Started Guacamole prox... May 05 11:37:18 vml70100.idmz.tachtler.net guacd[23060]: Guacamole proxy daem... May 05 11:37:18 vml70100.idmz.tachtler.net guacd[23060]: guacd[23060]: INFO: ... May 05 11:37:18 vml70100.idmz.tachtler.net guacd[23060]: Listening on host 12... May 05 11:37:18 vml70100.idmz.tachtler.net guacd[23060]: guacd[23060]: INFO: ... Hint: Some lines were ellipsized, use -l to show in full.
Webbrowser: Erster Anmeldung
Falls alle vorhergehenden Konfiguration erfolgreich durchgeführt wurden, sollte eine Anmeldung im Webbrowser mit nachfolgender URL möglich sein:
und nachfolgender Anmeldebildschirm sollte zum Vorschein kommen:
Der administrative Benutzername und dessen Start-Passwort lauten wie folgt:
Feld | Wert |
---|---|
Benutzername (Administrator) | guacadmin |
Passwort Bitte ändern! | guacadmin |
Wichtige Tastenkombination
Tastenkombination | Beschreibung |
---|---|
[Strg]+[Alt]+[⇑ (Shift/Hochstelltaste)] | Öffnet ein Einstellungs-Dialog-Fenster, über das auch Daten über die lokale Zwischenablage und der entfernten Zwischenablage ausgetauscht werden können |
LDAP-Anbindung
Nachfolgend soll durch die Erweiterung guacamole-auth-ldap-1.1.0.jar
die Anbindung an einen LDAP-Server durchgeführt werden - OHNE eine Schema-Erweiterung im LDAP-Server durchzuführen. Es soll nur die Authentifizierung gegen LDAP erfolgen, jedoch sollen KEINE Daten im LDAP abgelegt werden. Zur Datenablage für den jeweilgen Benutzer soll weiterhin die MariaDB-Datenbank dienen.
guacamole-auth-ldap-1.1.0.jar
Falls nicht mehr vorhanden, muss hier die Version 1.1.0, unter nachfolgenden Link heruntergeladen werden:
Der folgende Befehl kann dazu genutzt werden, die benötigte extension
in das Verzeichnis /tmp
herunterzuladen:
# wget -P /tmp https://downloads.apache.org/guacamole/1.1.0/binary/guacamole-auth-ldap-1.1.0.tar.gz --2020-10-02 08:07:27-- https://downloads.apache.org/guacamole/1.1.0/binary/guacamole-auth-ldap-1.1.0.tar.gz Resolving downloads.apache.org (downloads.apache.org)... 88.99.95.219, 2a01:4f8:10a:201a::2 Connecting to downloads.apache.org (downloads.apache.org)|88.99.95.219|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 6566156 (6.3M) [application/x-gzip] Saving to: ‘/tmp/guacamole-auth-ldap-1.1.0.tar.gz’ 100%[======================================>] 6,566,156 11.6MB/s in 0.5s 2020-10-02 08:07:28 (11.6 MB/s) - ‘/tmp/guacamole-auth-ldap-1.1.0.tar.gz’ saved [6566156/6566156]
Anschließend kann mit nachfolgendem Befehl die soeben heruntergeladene Datei /tmp/guacamole-auth-ldap-1.1.0.tar.gz
, ebenfalls in das Verzeichnis /tmp
extrahiert werden:
# tar xzvf /tmp/guacamole-auth-ldap-1.1.0.tar.gz -C /tmp/ guacamole-auth-ldap-1.1.0/doc/ guacamole-auth-ldap-1.1.0/doc/examples/ guacamole-auth-ldap-1.1.0/doc/examples/exampleConfigGroup.ldif guacamole-auth-ldap-1.1.0/schema/ guacamole-auth-ldap-1.1.0/schema/guacConfigGroup.ldif guacamole-auth-ldap-1.1.0/schema/guacConfigGroup.schema guacamole-auth-ldap-1.1.0/ guacamole-auth-ldap-1.1.0/bundled/ guacamole-auth-ldap-1.1.0/bundled/guice-3.0/ guacamole-auth-ldap-1.1.0/bundled/aopalliance-1.0/ guacamole-auth-ldap-1.1.0/bundled/directory-api-2.0.0/ guacamole-auth-ldap-1.1.0/bundled/javax.inject-1/ guacamole-auth-ldap-1.1.0/bundled/guice-3.0/COPYING guacamole-auth-ldap-1.1.0/bundled/aopalliance-1.0/LICENSE guacamole-auth-ldap-1.1.0/bundled/directory-api-2.0.0/LICENSE-2.0.txt guacamole-auth-ldap-1.1.0/bundled/README guacamole-auth-ldap-1.1.0/bundled/javax.inject-1/LICENSE-2.0.txt guacamole-auth-ldap-1.1.0/NOTICE guacamole-auth-ldap-1.1.0/LICENSE guacamole-auth-ldap-1.1.0/guacamole-auth-ldap-1.1.0.jar
Hier ist nun nachfolgende Datei für die Verbindung von Apache Guacamole zum LDAP-Server wichtig:
/tmp/guacamole-auth-ldap-1.1.0/guacamole-auth-ldap-1.1.0.jar
und muss in den Apache Tomcat-Applikationsserver wie folgt eingebunden werden:
# cp -a /tmp/guacamole-auth-ldap-1.1.0/guacamole-auth-ldap-1.1.0.jar /usr/share/tomcat/.guacamole/extensions
Anschließend sind die Besitzrechte an dem neu erstellen Verzeichnis und Unterverzeichnis und der Datei guacamole-auth-ldap-1.1.0/guacamole-auth-ldap-1.1.0.jar
mit nachfolgendem Befehl entsprechend zu setzen:
# chown root:tomcat -R /usr/share/tomcat/.guacamole
Ob das Kopieren der Datei guacamole-auth-ldap-1.1.0.jar
erfolgreich durchgeführt wurde und auch die entsprechenden Besitzrechte korrekt gesetzt wurden, kann durch Auflistung des Verzeichnisses mit nachfolgenden Befehlen überprüft werden:
# find /usr/share/tomcat/.guacamole /usr/share/tomcat/.guacamole /usr/share/tomcat/.guacamole/extensions /usr/share/tomcat/.guacamole/extensions/guacamole-auth-jdbc-mysql-1.1.0.jar /usr/share/tomcat/.guacamole/extensions/guacamole-auth-ldap-1.1.0.jar /usr/share/tomcat/.guacamole/guacamole.properties
und
# ls -l /usr/share/tomcat/.guacamole/* -rw-r--r-- 1 root tomcat 225 May 6 08:35 /usr/share/tomcat/.guacamole/guacamole.properties /usr/share/tomcat/.guacamole/extensions: total 12320 -rw-r--r-- 1 root tomcat 5030106 Jan 26 2020 guacamole-auth-jdbc-mysql-1.1.0.jar -rw-r--r-- 1 root tomcat 7581147 Jan 26 2020 guacamole-auth-ldap-1.1.0.jar
LDAP: /usr/share/tomcat/.guacamole/guacamole.properties
Zum Abschluß der Einrichtung von Apache Guacamole und der Verbindung des Apache Tomcat-Applikationsserver zur LDAP-Server ist die Erweiterung der bereits zuvor angelegten Konfigurationsdatei mit dem Namen guacamole.properties
im Verzeichnis /usr/share/tomcat/.guacamole
mit nachfolgendem Befehl
# vim /usr/share/tomcat/.guacamole/guacamole.properties
und nachfolgendem Inhalt
mysql-hostname: db.idmz.tachter.net mysql-port: 3306 mysql-database: guacamole mysql-username: guacamole_user mysql-password: WasGeheimes mysql-default-max-connections-per-user: 0 mysql-default-max-group-connections-per-user: 0 ldap-hostname: ldap.idmz.tachtler.net ldap-port: 689 ldap-encryption-method: ssl ldap-search-bind-dn: cn=Ersatzbenutzer,dc=tachtler,dc=net ldap-search-bind-password: geheim ldap-user-base-dn: ou=People,dc=tachtler,dc=net ldap-username-attribute: uid
erforderlich.
Anschließend sind die Besitzrechte, falls nicht schon geschehen, an dem neu erstellen Verzeichnis und Unterverzeichnis und der Datei guacamole-auth-ldap-1.1.0.jar
mit nachfolgendem Befehl entsprechend zu setzen:
# chown root:tomcat -R /usr/share/tomcat/.guacamole
Ob die Erweiterung der Datei guacamole.properties
erfolgreich durchgeführt wurde und auch die entsprechenden Besitzrechte korrekt gesetzt wurden, kann durch Auflistung des Verzeichnisses mit nachfolgenden Befehlen überprüft werden:
# ls -l /usr/share/tomcat/.guacamole/guacamole.properties -rw-r--r-- 1 root tomcat 471 Oct 2 08:24 /usr/share/tomcat/.guacamole/guacamole.properties
Tomcat Neustart
Mit nachfolgenden Befehl, kann der Apache Tomcat-Applikationsserver neu gestartet werden:
# systemctl restart tomcat.service
Nachfolgende Ausgabe sollte dann in der LOG-Datei
/var/log/tomcat/catalina.[YYYY-MM-TT].out
z.B./var/log/tomcat/catalina.2020-10-02.out
des Apache Tomcat zu finden sein.
2FA-Konfiguration
Nachfolgend soll durch die Erweiterung guacamole-auth-totp-1.1.0.jar
die Nutzung eines zweiten Faktors zur Authentifizierung genutzt werden.
Eine mögliche Android-App zur Verwaltung der 2FA-Authentifizierung wäre z.B. die nachfolgende:
guacamole-auth-totp-1.1.0.jar
Falls nicht mehr vorhanden, muss hier die Version 1.1.0, unter nachfolgenden Link heruntergeladen werden:
Der folgende Befehl kann dazu genutzt werden, die benötigte extension
in das Verzeichnis /tmp
herunterzuladen:
# wget -P /tmp https://downloads.apache.org/guacamole/1.1.0/binary/guacamole-auth-totp-1.1.0.tar.gz --2020-10-02 08:32:30-- https://downloads.apache.org/guacamole/1.1.0/binary/guacamole-auth-totp-1.1.0.tar.gz Resolving downloads.apache.org (downloads.apache.org)... 88.99.95.219, 2a01:4f8:10a:201a::2 Connecting to downloads.apache.org (downloads.apache.org)|88.99.95.219|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 3844589 (3.7M) [application/x-gzip] Saving to: ‘/tmp/guacamole-auth-totp-1.1.0.tar.gz’ 100%[======================================>] 3,844,589 9.53MB/s in 0.4s 2020-10-02 08:32:30 (9.53 MB/s) - ‘/tmp/guacamole-auth-totp-1.1.0.tar.gz’ saved [3844589/3844589]
Anschließend kann mit nachfolgendem Befehl die soeben heruntergeladene Datei /tmp/guacamole-auth-totp-1.1.0.tar.gz
, ebenfalls in das Verzeichnis /tmp
extrahiert werden:
# tar xzvf /tmp/guacamole-auth-totp-1.1.0.tar.gz -C /tmp/ guacamole-auth-totp-1.1.0/ guacamole-auth-totp-1.1.0/bundled/ guacamole-auth-totp-1.1.0/bundled/totp-reference-impl-07/ guacamole-auth-totp-1.1.0/bundled/guice-3.0/ guacamole-auth-totp-1.1.0/bundled/aopalliance-1.0/ guacamole-auth-totp-1.1.0/bundled/zxing-3.3.1/ guacamole-auth-totp-1.1.0/bundled/javax.inject-1/ guacamole-auth-totp-1.1.0/bundled/guava-18.0/ guacamole-auth-totp-1.1.0/bundled/totp-reference-impl-07/license.txt guacamole-auth-totp-1.1.0/bundled/guice-3.0/COPYING guacamole-auth-totp-1.1.0/bundled/aopalliance-1.0/LICENSE guacamole-auth-totp-1.1.0/bundled/zxing-3.3.1/LICENSE guacamole-auth-totp-1.1.0/bundled/README guacamole-auth-totp-1.1.0/bundled/javax.inject-1/LICENSE-2.0.txt guacamole-auth-totp-1.1.0/bundled/guava-18.0/COPYING guacamole-auth-totp-1.1.0/NOTICE guacamole-auth-totp-1.1.0/LICENSE guacamole-auth-totp-1.1.0/guacamole-auth-totp-1.1.0.jar
Hier ist nun nachfolgende Datei für die Verbindung von Apache Guacamole zum LDAP-Server wichtig:
/tmp/guacamole-auth-ldap-1.1.0/guacamole-auth-totp-1.1.0.jar
und muss in den Apache Tomcat-Applikationsserver wie folgt eingebunden werden:
# cp -a /tmp/guacamole-auth-totp-1.1.0/guacamole-auth-totp-1.1.0.jar /usr/share/tomcat/.guacamole/extensions
Anschließend sind die Besitzrechte an dem neu erstellen Verzeichnis und Unterverzeichnis und der Datei guacamole-auth-totp-1.1.0/guacamole-auth-totp-1.1.0.jar
mit nachfolgendem Befehl entsprechend zu setzen:
# chown root:tomcat -R /usr/share/tomcat/.guacamole
Ob das Kopieren der Datei guacamole-auth-totp-1.1.0.jar
erfolgreich durchgeführt wurde und auch die entsprechenden Besitzrechte korrekt gesetzt wurden, kann durch Auflistung des Verzeichnisses mit nachfolgenden Befehlen überprüft werden:
# find /usr/share/tomcat/.guacamole /usr/share/tomcat/.guacamole /usr/share/tomcat/.guacamole/extensions /usr/share/tomcat/.guacamole/extensions/guacamole-auth-jdbc-mysql-1.1.0.jar /usr/share/tomcat/.guacamole/extensions/guacamole-auth-ldap-1.1.0.jar /usr/share/tomcat/.guacamole/extensions/guacamole-auth-totp-1.1.0.jar /usr/share/tomcat/.guacamole/guacamole.properties
und
# ls -l /usr/share/tomcat/.guacamole/* -rw-r--r-- 1 root tomcat 471 Oct 2 08:24 /usr/share/tomcat/.guacamole/guacamole.properties /usr/share/tomcat/.guacamole/extensions: total 16480 -rw-r--r-- 1 root tomcat 5030106 Jan 26 2020 guacamole-auth-jdbc-mysql-1.1.0.jar -rw-r--r-- 1 root tomcat 7581147 Jan 26 2020 guacamole-auth-ldap-1.1.0.jar -rw-r--r-- 1 root tomcat 4259816 Jan 26 2020 guacamole-auth-totp-1.1.0.jar
2FA: /usr/share/tomcat/.guacamole/guacamole.properties
Zum Abschluß der Einrichtung von Apache Guacamole und der Verwendung des Apache Tomcat-Applikationsserver zur Nutzung von 2FA ist die Erweiterung der bereits zuvor angelegten Konfigurationsdatei mit dem Namen guacamole.properties
im Verzeichnis /usr/share/tomcat/.guacamole
mit nachfolgendem Befehl
# vim /usr/share/tomcat/.guacamole/guacamole.properties
und nachfolgendem Inhalt
mysql-hostname: db.idmz.tachter.net mysql-port: 3306 mysql-database: guacamole mysql-username: guacamole_user mysql-password: WasGeheimes mysql-default-max-connections-per-user: 0 mysql-default-max-group-connections-per-user: 0 ldap-hostname: ldap.idmz.tachtler.net ldap-port: 689 ldap-encryption-method: ssl ldap-search-bind-dn: cn=Ersatzbenutzer,dc=tachtler,dc=net ldap-search-bind-password: geheim ldap-user-base-dn: ou=People,dc=tachtler,dc=net ldap-username-attribute: uid totp-issuer: Apache Guacamole (guacamole.tachtler.net) totp-digits: 6 totp-period: 60 totp-mode: sha256
erforderlich.
Anschließend sind die Besitzrechte, falls nicht schon geschehen, an dem neu erstellen Verzeichnis und Unterverzeichnis und der Datei guacamole-auth-totp-1.1.0.jar
mit nachfolgendem Befehl entsprechend zu setzen:
# chown root:tomcat -R /usr/share/tomcat/.guacamole
Ob die Erweiterung der Datei guacamole.properties
erfolgreich durchgeführt wurde und auch die entsprechenden Besitzrechte korrekt gesetzt wurden, kann durch Auflistung des Verzeichnisses mit nachfolgenden Befehlen überprüft werden:
# ls -l /usr/share/tomcat/.guacamole/guacamole.properties -rw-r--r-- 1 root tomcat 570 Oct 2 08:40 /usr/share/tomcat/.guacamole/guacamole.properties
Tomcat Neustart
Mit nachfolgenden Befehl, kann der Apache Tomcat-Applikationsserver neu gestartet werden:
# systemctl restart tomcat.service
Nachfolgende Ausgabe sollte dann in der LOG-Datei
/var/log/tomcat/catalina.[YYYY-MM-TT].out
z.B./var/log/tomcat/catalina.2020-10-02.out
des Apache Tomcat zu finden sein.
Webbrowser: 2FA-Anmeldung
Falls alle vorhergehenden Konfiguration erfolgreich durchgeführt wurden, sollte eine Anmeldung im Webbrowser mit nachfolgender URL möglich sein:
und nachfolgender Anmeldebildschirm sollte zum Vorschein kommen:
Der administrative Benutzername und dessen Start-Passwort lauten wie folgt:
Feld | Wert |
---|---|
Benutzername (Administrator) | guacadmin |
Passwort Bitte ändern, falls nicht schon geschehen! | guacadmin |
Anschließend sollte nun einmalig nachfolgende Anzeige erscheinen, in dem ein QR-Code zur Anzeige kommen sollte:
Falls die Anmeldung bereits einmal erfolgreich durchgeführt wurde, erscheint nur noch nachfolgende Anzeige:
2FA-Zurücksetzen
Falls z.B. die Anwendungsdaten für die 2FA durch Verlust des Gerätes in dem die 2FA hinterlegt wurde nicht mehr zugänglich sein sollte, kann durch Löschung von nachfolgenden Einträgen in der Datenbank
guac-totp-key-confirmed
guac-totp-key-secret
die erneute Anzeige des QR-Code erzwungen werden.
Dazu ist es erforderlich direkten Zugriff auf die Datenbank zu haben, was z.B. mit nachfolgendem Befehl auf dem Datenbank-Server realisiert werden kann:
# mysql -h 127.0.0.1 -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 160633 Server version: 5.5.65-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Nachfolgende Abfrage ermittelt die gespeicherten 2FA:
MariaDB [(none)]> SELECT * FROM guacamole.guacamole_user_attribute; +---------+-------------------------+----------------------------------+ | user_id | attribute_name | attribute_value | +---------+-------------------------+----------------------------------+ | 1 | guac-totp-key-confirmed | true | | 1 | guac-totp-key-secret | ZKDXWSB26JMQYXBOXNRLHRINU5YYNJOV | +---------+-------------------------+----------------------------------+ 2 rows in set (0.01 sec) MariaDB [(none)]>
Nachfolgender Befehl löscht die beiden „Attribute“ - aller Einträge - aus der Datenbank
MariaDB [(none)]> DELETE FROM guacamole.guacamole_user_attribute WHERE guacamole.guacamole_user_attribute.attribute_name = "guac-totp-key-confirmed" OR guacamole.guacamole_user_attribute.attribute_name = "guac-totp-key-secret"; Query OK, 2 rows affected (0.01 sec)
Zum Verlassen der interaktiven Datenbank-shell
kann nachfolgender Befehl verwendet werden:
MariaDB [(none)]> quit Bye