GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So installieren Sie Apache Guacamole unter Debian 11

Apache Guacamole ist ein kostenloses Open-Source-Remote-Desktop-Gateway, mit dem Sie sich über verschiedene Protokolle wie SSH, RDP und VNC remote mit Ihrem Computer/Server verbinden können. Apache Guacamole wird von der Apache Software Foundation verwaltet und mit Apache License 2.0 lizenziert.

Apache Guacamole ist ein clientloses Remote-Desktop-Gateway. Sie können von überall und jederzeit auf Apache Guacamole zugreifen, indem Sie nur einen Webbrowser verwenden. Die Verwendung von Apache Guacamole wird empfohlen, wenn Sie mehrere Remote-Betriebssysteme mit unterschiedlichen Protokollen haben, z. B. Windows mit RDP, Linux-System mit VNC und SSH.

In diesem Tutorial installieren und konfigurieren Sie Apache Guacamole auf einem Debian 11 Bullseye. Dies umfasst die Installation einiger Paketabhängigkeiten und des Apache Tomcat 9, das Erstellen des Guacamole-Servers und das Installieren der Java-Anwendung, der Guacamole-Webanwendung. Am Ende richten Sie Nginx als Reverse-Proxy für die Guacamole-Webanwendung ein, mit der Sie von überall aus auf Ihre Server zugreifen können, solange Sie einen Webbrowser haben.

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie die folgenden Voraussetzungen:

  • Ein Server mit mindestens 2 GB RAM, auf dem Debian 11 Bullseye läuft.
  • Ein Benutzer oder Nicht-Root-Benutzer mit Root-Rechten.
  • Grundkenntnisse mit Nano-Editor. Oder Sie können Ihren bevorzugten Editor wie vim verwenden.

Build-Abhängigkeiten installieren

Zunächst installieren Sie einige Build-Abhängigkeiten zum Erstellen des Apache Guacamole-Servers. Dazu gehören einige Basispakete wie 'libvncserver-dev ', die Unterstützung für das VNC-Protokoll aktivieren, 'libssh2-1 ' für das SSH-Protokoll, 'freerdp2-dev ' für das RDP-Protokoll und 'libwebsockets-dev ' für die Kubernetes-Unterstützung.

Als Gegenleistung installieren Sie 'libtelnet-dev' nicht für die Telnet-Unterstützung. Dies liegt daran, dass Telnet als altes und nicht sicheres Protokoll gilt.

1. Aktualisieren Sie jetzt Ihre Paketliste, indem Sie den folgenden apt-Befehl ausführen.

sudo apt update

2. Installieren Sie danach Abhängigkeiten zum Erstellen des Apache Guacamole-Servers, indem Sie den folgenden Befehl ausführen.

sudo apt install -y freerdp2-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libcairo2-dev libjpeg62-turbo-dev libjpeg-dev libpng-dev libtool-bin libpango1.0-dev libpango1.0-0 libssh2-1 libwebsockets16 libwebsocketpp-dev libossp-uuid-dev libssl-dev libwebp-dev libvorbis-dev libpulse-dev libwebsockets-dev libvncserver-dev libssh2-1-dev openssl

Dieser Befehl kann je nach Internetverbindung Ihres Servers einige Zeit in Anspruch nehmen.

Installieren von Apache Tomcat 9

Nach der Installation der Build-Abhängigkeiten installieren Sie Apache Tomcat 9. Dieses Paket ist für die Guacamole-Webanwendung erforderlich, die eine in Java geschriebene Webanwendung ist.

1. Führen Sie den folgenden Befehl aus, um Apache Tomcat 9 auf Ihrem System zu installieren.

sudo apt install -y tomcat9 tomcat9-admin tomcat9-common tomcat9-user

2. Starten und aktivieren Sie nach der Installation von Apache Tomcat 9 den Apache Tomcat-Dienst, indem Sie den folgenden Befehl ausführen. Auf den Debian-basierten Systemen wird Apache Tomcat 9 mit dem Dienst namens „tomcat9“ geliefert '.

sudo systemctl enable --now tomcat9

3. Wenn nun alles in Ordnung aussieht, überprüfen Sie den Status von 'tomcat9 '-Dienst, indem Sie den folgenden Befehl ausführen.

sudo systemctl status tomcat9

Sie erhalten die folgende Ausgabe. Stellen Sie sicher, dass die Datei „tomcat9 ' Dienst ist 'aktiv (wird ausgeführt) '.

Guacamole-Server kompilieren

In diesem Abschnitt laden Sie den Guacamole-Server herunter und kompilieren ihn. Dies ist die Hauptkomponente von Apache Guacamole, die Bibliotheken für die Verbindung zu Remote-Servern und -Desktops enthält. Der Guacamole-Server enthält die C-Bibliothek 'libguacd' und alle Bibliotheken für unterstützte Protokolle, sowie das Herzstück von Guacamole, guacd.

Der guacd verarbeitet alle Client-Verbindungen, die von der Guacamole-Webanwendung getunnelt werden, und stellt dann in ihrem Namen eine Verbindung zu Remote-Servern und Desktops her. Indem Sie den Guacamole-Server erstellen und kompilieren, haben Sie einen neuen Dienst „guacd“ auf Ihrem System.

1. Navigieren Sie zunächst durch das Arbeitsverzeichnis zu „/usr/src '. Der gesamte Quellcode zum Bauen und Kompilieren von Sachen geht in dieses Verzeichnis.

cd /usr/src

2. Jetzt laden Sie den Guacamole-Server-Quellcode herunter, indem Sie den folgenden wget-Befehl ausführen. Überprüfen Sie unbedingt die Guacamole-Download-Seite und kopieren Sie die neueste Version des Guacamole-Servers. Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste Version 1.3.0.

wget https://dlcdn.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz

3. Extrahieren Sie dann den Quellcode und Sie erhalten ein neues Verzeichnis „guacamole-server-VERSION-NUMBER“ . Navigieren Sie in dieses Verzeichnis.

tar -xzvf guacamole-server-1.3.0.tar.gz
cd guacamole-server-*/

4. Überprüfen Sie nun alle Systemanforderungen zum Erstellen des Guacamole-Servers und richten Sie Ihre Umgebung ein, indem Sie den folgenden Befehl ausführen. Die Option '--with-systemd-dir=/etc/systemd/system/' wird verwendet, um die Systemd-Dienstdatei einzurichten, die im Verzeichnis „/etc/systemd/system/ verfügbar sein wird '.

./configure --with-systemd-dir=/etc/systemd/system/

Sie erhalten eine Ausgabe ähnlich der folgenden:

------------------------------------------------
guacamole-server version 1.3.0
------------------------------------------------

   Library status:

     freerdp2 ............ yes
     pango ............... yes
     libavcodec .......... yes
     libavformat.......... yes
     libavutil ........... yes
     libssh2 ............. yes
     libssl .............. yes
     libswscale .......... yes
     libtelnet ........... no
     libVNCServer ........ yes
     libvorbis ........... yes
     libpulse ............ yes
     libwebsockets ....... yes
     libwebp ............. yes
     wsock32 ............. no

   Protocol support:

      Kubernetes .... yes
      RDP ........... yes
      SSH ........... yes
      Telnet ........ no
      VNC ........... yes

   Services / tools:

      guacd ...... yes
      guacenc .... yes
      guaclog .... yes

   FreeRDP plugins: /usr/lib/x86_64-linux-gnu/freerdp2
   Init scripts: no
   Systemd units: /etc/systemd/system/

Type "make" to compile guacamole-server.

Sehen Sie sich den 'Bibliotheksstatus an ' und 'Protokollunterstützung ' Abschnitte. Sie können die Protokollunterstützung anpassen, indem Sie zusätzliche Abhängigkeiten und Bibliotheken installieren.

5. Als nächstes kompilieren und installieren Sie den Guacamole-Server, indem Sie den folgenden Befehl ausführen.

make
make install

Der Kompilierungs- und Installationsvorgang kann einige Zeit in Anspruch nehmen.

6. Führen Sie nun, nachdem alles abgeschlossen ist, den folgenden Befehl aus, um alle neuen Systembibliotheken anzuwenden.

sudo ldconfig

In diesem Abschnitt haben Sie das Guacamole-Server-Paket installiert. Als nächstes erstellen Sie einige notwendige Konfigurationen für den Guacamole-Server.

Guacamole-Server einrichten

Damit der Guacamole-Server funktioniert, erstellen Sie das Konfigurationsverzeichnis „/etc/guacamole/ ', erstellen Sie dann eine neue Datei 'guacamole.properties ' als Standardkonfiguration des Guacamole-Servers, Datei 'logback.xml' für das Guacamole-Protokollierungssystem und die Datei 'user-mapping.xml' zum Definieren der Authentifizierung von Guacamole-Benutzern und Verbindungen zu entfernten Servern und Desktops.

1. Führen Sie zunächst den folgenden Befehl aus, um ein neues Verzeichnis „/etc/guacamole/“ zu erstellen ' in zusätzlichen Verzeichnissen 'extensions ' und 'lib' Innerhalb. Fügen Sie dann die Umgebungsvariable 'GUACAMOLE_HOME=/etc/guacamole hinzu ' in die Datei '/etc/default/tomcat9'. Dadurch wird der Tomcat 9-Servlet-Container angewiesen, nach „GUACAMOLE_HOME“ zu suchen ' Verzeichnis in das Verzeichnis '/etc/guacamole/ '.

mkdir -p /etc/guacamole/{extensions,lib}
echo 'GUACAMOLE_HOME=/etc/guacamole' >> /etc/default/tomcat9

2. Erstellen Sie nun die Hauptkonfiguration 'guacamole.properties ' mit nano oder Ihrem bevorzugten Editor.

sudo nano /etc/guacamole/guacamole.properties

Geben Sie die folgende Konfiguration ein:

# Hostname and port of guacamole proxy
guacd-hostname: localhost
guacd-port:     4822

# user mapping and user connections
user-mapping:    /etc/guacamole/user-mapping.xml
  • Die Option 'guacd-hostname' definiert den Hostnamen oder die IP-Adresse, auf der der guacd-Dienst ausgeführt wird. Dieses Tutorial verwendet den localhost, um den guacd-Dienst auszuführen.
  • Die Option 'guacd-port ' definiert den Standardport für den guacd-Dienst. Dieses Tutorial verwendet den Port '4822 ' für den guacd-Dienst.
  • Die Option 'user-mapping' definiert die Dateikonfiguration für die Benutzerauthentifizierung und eine Liste verfügbarer Verbindungen. Dieses Tutorial verwendet die Datei '/etc/guacamole/user-mapping.xml' um Benutzer und Verbindungen für den Guacamole-Server zu definieren. Sie könnten daran interessiert sein, eine andere Authentifizierungsmethode zu verwenden, sehen Sie in der Guacamole-Dokumentation nach.

Speichern und schließen Sie die Datei.

3. Als nächstes erstellen Sie eine neue Konfiguration 'logback.xml ' zum Protokollieren und Debuggen. Standardmäßig meldet sich Guacamole nur bei der Konsole an. Die Verwendung dieser Konfiguration ermöglicht es Guacamole, sich über das Logback-Protokollierungsframework zu protokollieren.

sudo nano /etc/guacamole/logback.xml

Fügen Sie die folgenden Konfigurationszeilen hinzu.

<configuration>

    <!-- Appender for debugging -->
    <appender name="GUAC-DEBUG" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- Log at DEBUG level -->
    <root level="debug">
        <appender-ref ref="GUAC-DEBUG"/>
    </root>

</configuration>

Speichern und schließen Sie die Konfigurationsdatei.

4. Jetzt generieren Sie einen neuen md5-Passwort-Hash und erstellen eine neue Datei für die Guacamole-Benutzerauthentifizierung und Verbindungen.

Führen Sie den folgenden Befehl aus, um den md5-Passwort-Hash zu generieren. Und stellen Sie sicher, dass Sie das Passwort durch Ihr sicheres Passwort ändern.

echo -n StrongPasswordUserJohnDoe | openssl md5

Sie erhalten eine Ausgabe des gehashten Mod5-Passworts. Kopieren Sie es in Ihre Notiz.

(stdin)= aca22211ffcfb8aa8ad7627195ad4fce

5. Erstellen Sie danach eine neue Datei 'user-mapping.xml ' mit dem Nano-Editor.

sudo nano /etc/guacamole/user-mapping.xml

Geben Sie diese folgenden Konfigurationen ein. Und stellen Sie sicher, dass Sie den 'Benutzernamen' und das 'Passwort ändern '. Sehen Sie sich auch die Datei „...“ an ' und fügen Sie Ihre Verbindungsdetails zu Servern oder Desktops hinzu.

<user-mapping>

    <!-- Another user, but using md5 to hash the password
         (example below uses the md5 hash of "PASSWORD") -->
    <authorize
            username="johndoe"
            password="aca22211ffcfb8aa8ad7627195ad4fce"
            encoding="md5">

        <!-- First authorized connection -->
        <connection name="SSH localhost">
            <protocol>ssh</protocol>
            <param name="hostname">localhost</param>
            <param name="port">22</param>
            <param name="username">johndoe</param>
            <param name="password">SSHPASSWORD</param>
        </connection>

        <!-- Second authorized connection -->
        <connection name="localhost">
            <protocol>vnc</protocol>
            <param name="hostname">localhost</param>
            <param name="port">5901</param>
            <param name="password">VNCPASS</param>
        </connection>

        <!-- Third authorized connection -->
        <connection name="otherhost">
            <protocol>vnc</protocol>
            <param name="hostname">otherhost</param>
            <param name="port">5900</param>
            <param name="password">VNCPASS</param>
        </connection>

    </authorize>

</user-mapping>

Speichern und schließen Sie die Datei.

Jetzt haben Sie die Konfiguration des Guacamole-Servers abgeschlossen. Als Nächstes installieren und konfigurieren Sie die Guacamole-Webanwendung, die in Ihrem Browser angezeigt wird.

Installieren der Guacamole-Client-Webanwendung

In diesem Abschnitt installieren Sie die Guacamole-Webanwendung auf Ihrem System. Dazu können Sie die kompilierte Binärdatei der Guacamole-Webanwendung herunterladen und im Tomcat-Verzeichnis „webaps“ bereitstellen.

1. Navigieren Sie in Ihrem Arbeitsverzeichnis zu „/usr/src“ und laden Sie die kompilierte Guacamole-Webanwendung '.war herunter ' mit dem wget-Befehl. Besuchen Sie unbedingt die Guacamole-Downloadseite und kopieren Sie den Link für die neueste Version der Guacamole-Webanwendung.

cd /usr/src
wget https://dlcdn.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war

2. Stellen Sie nun die Java-Binäranwendung 'guacamole-VERSION.war bereit ' in das Tomcat-Verzeichnis '/var/lib/tomcat9/webapps/' indem Sie den folgenden Befehl ausführen. Dadurch wird die Guacamole-Webanwendung über den Apache Tomcat-Servlet-Container zugänglich.

sudo cp guacamole-1.3.0.war /var/lib/tomcat9/webapps/guacamole.war

3. Starten Sie danach den Tomcat 9-Dienst neu, um eine neue Webanwendung anzuwenden.

sudo systemctl restart tomcat9

4. Als nächstes starten und aktivieren Sie den 'guacd '-Dienst, indem Sie den folgenden Befehl ausführen.

sudo systemctl enable --now guacd

Überprüfen Sie es dann mit dem folgenden Befehl.

sudo systemctl status guacd

Sie erhalten die Ausgabe wie im Screenshot unten.

An diesem Punkt haben Sie die Installation der Guacamole-Serveranwendung (Backend) und der Guacamole-Webanwendung (Frontend) abgeschlossen. Als Nächstes richten Sie Nginx als Reverse-Proxy für die Guacamole-Webanwendung ein.

Nginx-Reverse-Proxy für Guacamole einrichten

In diesem Abschnitt installieren Sie den Nginx-Webserver und konfigurieren ihn als Reverse-Proxy für die Guacamole-Webanwendung. Auf diese Weise können Sie den Domainnamen für Ihre Guacamole-Webanwendung einrichten und mit SSL-Zertifikaten sichern.

1. Führen Sie zunächst das folgende 'apt aus ' Befehl zum Installieren von Nginx-Paketen.

sudo apt install nginx -y

2. Nachdem alle Nginx-Pakete installiert sind, erstellen Sie eine neue virtuelle Hostdatei „guacamole“ im Verzeichnis „/etc/nginx/sites-available“ '. Alle Konfigurationen im Zusammenhang mit dem Guacamole-Reverse-Proxy werden in dieser Datei gespeichert.

sudo nano /etc/nginx/sites-available/guacamole

Geben Sie diese folgende Konfiguration ein. Und stellen Sie sicher, dass Sie den Domänennamen und den Pfad von SSL-Zertifikaten ändern. Dieses Beispiel verwendet die Domain „example.io“ mit dem privaten SSL-Schlüssel 'privkey.pem ' und den öffentlichen Schlüssel 'fullchain.pem ' und Bot-Zertifikate, die im Verzeichnis '/etc/letsencrypt/live/exmaple.io/' verfügbar sind.

server {
    listen      80;
    server_name example.io;
    rewrite     ^   https://$server_name$request_uri? permanent;
}

server {
    listen      443 ssl http2;
    server_name example.io;

    root /var/www/html;
    index index.html;

    location / {
       try_files $uri $uri/ =404;
    }

    ssl_certificate /etc/letsencrypt/live/example.io/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.io/privkey.pem;

    access_log /var/log/nginx/guacamole-access.log;
    error_log /var/log/nginx/guacamole-error.log;

    location /guacamole/ {
        proxy_pass http://127.0.0.1:8080/guacamole/;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
        access_log off;
    }
}

Speichern und schließen Sie die Datei.

3. Aktivieren Sie nun die virtuelle Hostdatei 'guacamole ' durch Erstellen eines neuen symbolischen Links zum Verzeichnis '/etc/nginx/sites-enabled/ '. Überprüfen Sie dann alle Nginx-Konfigurationen, um zu prüfen, ob Syntaxfehler vorliegen.

sudo ln -s /etc/nginx/sites-available/guacamole /etc/nginx/sites-enabled/
sudo nginx -t

Sie erhalten eine Ausgabe 'Syntax OK ', was bedeutet, dass die Konfiguration fehlerfrei ist.

4. Starten Sie als Nächstes den Nginx-Dienst neu, um eine neue Konfiguration anzuwenden, und überprüfen Sie dann seinen Status, indem Sie den folgenden Befehl ausführen.

sudo systemctl restart nginx
sudo systemtl status nginx

Sie erhalten eine Ausgabe ähnlich dem Screenshot unten. Der Nginx-Dienst ist 'aktiv (wird ausgeführt) '.

5. Wenn Sie außerdem die Guacamole-Webanwendung in einer anderen Sub-URL bereitstellen möchten, ändern Sie die Option „location /guacamole/ { ... }“. ' zum neuen Pfad 'Speicherort /neuer-Pfad/ { ... } ' und fügen Sie die Option 'proxy_cookie_path hinzu ' zu Ihrem neuen Pfad wie unten beschrieben.

location /new-path/ {
    proxy_pass http://127.0.0.1:8080/guacamole/;
    proxy_buffering off;
    proxy_http_version 1.1;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
    proxy_cookie_path /guacamole/ /new-path/;
    access_log off;
}

In diesem Abschnitt haben Sie die Installation und Konfiguration von Nginx als Reverse-Proxy für die Guacamole-Webanwendung abgeschlossen. An diesem Punkt ist Ihre Apache Guacamole-Installation abgeschlossen und Sie können von Ihrem Domainnamen darauf zugreifen.

Überprüfen Sie die Apache Guacamole-Installation

In diesem Abschnitt überprüfen Sie die Installation von Apache Guacamole.

Öffnen Sie zunächst Ihren Webbrowser und geben Sie den Domänennamen für Ihre Guacamole-Installation mit dem Standardpfad „/guacamole“ ein .

https://example.io/guacamole/

Jetzt sehen Sie unten die Guacamole-Anmeldeseite. Geben Sie Ihren Benutzernamen und Ihr Passwort ein, die Sie in der Datei 'user-mapping.xml' konfiguriert haben , und klicken Sie dann auf die Schaltfläche Anmelden.

Nach der Anmeldung sehen Sie eine Liste der definierten Verbindungen für Ihre Benutzer.

Klicken Sie auf den Verbindungsnamen, um eine Verbindung zum Zielserver herzustellen. Dieses Beispiel verbindet sich mit dem SSH-Protokoll mit dem lokalen Server.

Jetzt sehen Sie eine neue SSH-Terminalsitzung auf Ihrem Server.

Schlussfolgerung

Glückwunsch! In diesem Tutorial haben Sie gelernt, wie Sie Apache Guacamole auf Debian 11 Bullseye installieren. Außerdem haben Sie gelernt, wie Sie die Benutzerauthentifizierung und -verbindungen mithilfe der Konfigurationsdatei „user-mapping.xml“ einrichten ' und richten Sie Nginx als Reverse-Proxy für die Guacamole-Webanwendung ein, die es Ihnen ermöglicht, Guacamaloe mit dem Domainnamen auszuführen und mit SSL-Zertifikaten zu sichern.


Debian
  1. So installieren Sie Apache unter Debian 9

  2. So installieren Sie Apache Cassandra unter Debian 9

  3. So installieren Sie Apache Maven unter Debian 10

  4. So installieren Sie Apache Maven unter Debian 11

  5. So installieren Sie Apache Cassandra unter Debian 11 / Debian 10

So installieren Sie Apache Cassandra unter Debian 10

So installieren Sie Apache Groovy unter Debian 10

So installieren Sie Apache Spark unter Debian 10

So installieren Sie Apache Ant unter Debian 10

So installieren Sie Apache Kafka unter Debian 10

So installieren Sie Apache Guacamole unter Debian 11