Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:apache_guacamole_centos_7

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.

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:

Installation

Zur Installation von Apache Guacamole werden nachfolgende Pakete benötigt:

  • dejavu-sans-mono-fonts - ist im base-Repository von CentOS enthalten
  • mysql-connector-java - ist im base-Repository von CentOS enthalten
  • guacd - ist im epel-Repository des Drittanbieters EPEL enthalten
  • libguac - ist im epel-Repository des Drittanbieters EPEL enthalten
  • libguac-client-rdp - ist im epel-Repository des Drittanbieters EPEL enthalten
  • libguac-client-ssh - ist im epel-Repository des Drittanbieters EPEL enthalten
  • libguac-client-vnc - ist im epel-Repository des Drittanbieters EPEL enthalten

Optional können auch nachfolgende Client-Connectors installiert werden:

  • libguac-client-kubernetes - ist im epel-Repository des Drittanbieters EPEL enthalten
  • libguac-client-telnet - ist im epel-Repository des Drittanbieters EPEL enthalten

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 guacdvon 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 Benutzer guacamole_user zuweisen
  • dem Benutzer guacamole_user entsprechende Rechte für die Datenbank guacamole 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:

Apahge Guacamole - Anmeldung

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:

Apache Guacamole - 2FA-Anmeldung

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:

Apache Guacamole - 2FA-Anmeldung - QR-Code

Falls die Anmeldung bereits einmal erfolgreich durchgeführt wurde, erscheint nur noch nachfolgende Anzeige:

Apache Guacamole - 2FA-Anmeldung - nur Authetifikation

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
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/apache_guacamole_centos_7.txt · Zuletzt geändert: 2023/11/17 10:18 von klaus