Menu

<< | Zurück

Guacamole (Jumphost)

Ein Guacamole Jump Host bezieht sich auf die Kombination der Apache Guacamole-Software mit einem Jump Host (auch Bastion Host genannt), um sicheren, webbasierten Zugriff auf entfernte Systeme zu ermöglichen.

Apache Guacamole

Apache Guacamole ist eine clientlose Remote-Desktop-Gateway-Software, die den Zugriff auf RDP, VNC und SSH über einen Webbrowser ermöglicht. Das bedeutet, dass Benutzer ohne spezielle Clients auf entfernte Systeme zugreifen können – nur ein Webbrowser ist erforderlich.

Jump Host (Bastion Host)

Ein Jump Host ist ein speziell gehärteter Server, der als einziger Zugangspunkt für eine geschützte Netzwerkzone dient. Er wird oft verwendet, um den Zugriff auf interne Server abzusichern, indem sich Benutzer zunächst mit diesem Host verbinden und erst dann zu den eigentlichen Zielsystemen weitergeleitet werden.

Kombination: Guacamole Jump Host

Wenn Guacamole auf einem Jump Host installiert wird, entsteht ein sicheres Remote-Access-Gateway, das folgende Vorteile bietet:

  1. Zentraler Zugangspunkt: Benutzer loggen sich über den Browser auf dem Guacamole-Server ein und erhalten dann Zugriff auf interne Ressourcen.
  2. Sicherheit: Der Jump Host schützt das interne Netzwerk, indem er als einzige Verbindung von außen dient.
  3. Clientloser Zugriff: Da Guacamole über einen Webbrowser funktioniert, müssen keine zusätzlichen RDP- oder SSH-Clients installiert werden.
  4. Multi-Protokoll-Unterstützung: RDP, SSH und VNC werden über eine einheitliche Webschnittstelle verwaltet.
  5. Audit & Kontrolle: Sitzungen können überwacht, protokolliert oder beschränkt werden, was die IT-Sicherheit verbessert.

Diese Lösung wird oft in Unternehmen oder Hochsicherheitsumgebungen genutzt, um Administratoren und Entwicklern einen sicheren und einfachen Zugriff auf Server zu ermöglichen.

 

Guacamole installieren.. Geprüft mit Debian 12
#
# Voraussetzung installieren
@sudo apt install -y build-essential libcairo2-dev libjpeg62-turbo-dev libpng-dev libtool-bin uuid-dev libossp-uuid-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev libwebsockets-dev libssl-dev libvorbis-dev libwebp-dev libpulse-dev
#
@wget https://downloads.apache.org/guacamole/1.5.5/source/guacamole-server-1.5.5.tar.gz
@tar xzf guacamole-server-1.5.5.tar.gz
@cd guacamole-server-1.5.5
@./configure --with-init-dir=/etc/init.d
@make
@sudo make install
@sudo ldconfig
@sudo systemctl daemon-reload
@sudo systemctl enable guacd
#
#### Tomcat 9 installieren / den Debian 11 Repositories: Da Debian 12 standardmäßig Tomcat 10 enthält, welches von Guacamole nicht unterstützt wird:
# Hinzufügen des Debian 11 Repositories
@echo "deb http://deb.debian.org/debian/ bullseye main" | sudo tee /etc/apt/sources.list.d/bullseye.list
#
# Aktualisieren der Paketlisten
@sudo apt update
#
# Installieren von Tomcat 9
@sudo apt install -y tomcat9 tomcat9-admin tomcat9-common tomcat9-user
#
# Entfernen des Debian 11 Repositories
@sudo rm /etc/apt/sources.list.d/bullseye.list
#
# Client (war Image) installieren
#@wget https://apache.org/dyn/closer.lua/guacamole/1.5.5/binary/guacamole-1.5.5.war -O guacamole.war
#@sudo mv guacamole.war /var/lib/tomcat9/webapps/
@wget https://downloads.apache.org/guacamole/1.5.5/binary/guacamole-1.5.5.war
@sudo mv guacamole-1.5.5.war /var/lib/tomcat9/webapps/guacamole.war
@sudo systemctl start guacd
@sudo systemctl restart tomcat9
#
#### Erstelle das Verzeichnis und Dateien für die Konfiguration
@sudo mkdir -p /etc/guacamole
@sudo mkdir /etc/guacamole/{extensions,lib}
#
@sudo nano /etc/guacamole/guacamole.properties
#### Inhalt1
echo "
guacd-hostname: 127.0.0.1
guacd-port: 4822
user-mapping: /etc/guacamole/user-mapping.xml
auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
" | sudo tee /etc/guacamole/guacamole.properties
#### Inhalt1 ENDE
#
@/etc/guacamole/guacd.conf
#### Inhalt2
[server]
bind_host = 127.0.0.1
bind_port = 4822
#### Inhalt2 ENDE
#
#### Verbindung mit ssh putty, Verbindung mit RDP Remotedesktop Windows
@sudo nano /etc/guacamole/user-mapping.xml
#### Inhalt3
<user-mapping>
    <authorize username="myusername" password="mypassword">
        <protocol>ssh</protocol>
        <param name="hostname">127.0.0.1</param>
        <param name="port">22</param>
    </authorize>
    <authorize username="myusername" password="mypassword">
        <connection name="Windows Server">
            <protocol>rdp</protocol>
            <param name="hostname">192.168.1.104</param>  <!-- IP-Adresse des Zielsystems -->
            <param name="port">3389</param>               <!-- Standard RDP-Port -->
            <param name="username">myusername</param>  <!-- Windows-Benutzername -->
            <param name="password">mypassword_</param>   <!-- Passwort (falls nötig) -->
            <param name="security">nla</param>            <!-- Netzwerk-Level-Authentifizierung -->
            <param name="ignore-cert">true</param>        <!-- Ignoriert Zertifikatsfehler -->
            <param name="resize-method">display-update</param>  <!-- Dynamische Bildschirmgröße -->
            <param name="enable-drive">true</param>       <!-- Gemeinsame Laufwerke aktivieren -->
            <param name="enable-wallpaper">false</param>  <!-- Hintergrund deaktivieren für bessere Performance -->
            <param name="enable-clipboard">true</param>    <!-- Zwischenablage aktivieren -->
        </connection>
    </authorize>
</user-mapping>
#### Inhalt3 ENDE
#
#### Weitere Optionen
<param name="enable-audio">true</param>        <!-- Audio aktivieren -->
<param name="enable-printing">true</param>     <!-- Druckumleitung aktivieren -->
<param name="enable-clipboard">true</param>    <!-- Zwischenablage aktivieren -->
<param name="enable-drive">true</param>        <!-- Gemeinsame Laufwerke aktivieren -->
<param name="timezone">Europe/Berlin</param>   <!-- Zeitzone setzen -->
#### Weitere Optionen ENDE
#
#### Umgebungsvariable
@echo "GUACAMOLE_HOME=/etc/guacamole" | sudo tee -a /etc/default/tomcat9
#
#### tomcat neu  starten
sudo systemctl restart tomcat9
sudo systemctl status tomcat9
sudo systemctl status guacd
#### Anmelden
- http://ipadress:8080/guacamole/#/
#
# ############# Beide Tomcat user webmanager einrichten
@sudo nano /etc/tomcat9/tomcat-users.xml
#### Inhalt einfügen START
<role rolename="manager-gui"/>
<user username="manager-user" password="password" roles="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin-user" password="passwort" roles="admin-gui"/>
#### Inhalt einfügen ENDE
#### Beide Tomcat Zugriffe
- http://ipadress:8080/manager/html
- http://ipadress:8080/host-manager/html
#### Beide auch von da erreichbar
- http://ipadress:8080/
- Server neu starten
#

Bald erscheint hier die Anleitung, Guacamole an MySQL Datenbank anbinden...