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

Richten Sie Apache Guacamole Remote Desktop auf Debian 10 Buster ein

Dieses Tutorial zeigt Ihnen, wie Sie Guacamole Remote Desktop auf einem Debian 10-Server einrichten. Guacamole ist ein kostenloses Open-Source-Remote-Desktop-Gateway, das von der Apache Software Foundation entwickelt wurde.

Guacamole-Funktionen

  • Es ermöglicht Ihnen, über einen Webbrowser auf Ihren Remote-Desktop zuzugreifen. Clientseitig muss keine weitere Software installiert werden.
  • Unterstützt Standardprotokolle wie VNC, RDP, SSH und Kubernetes.
  • VNC-Sitzungen können grafisch aufgezeichnet werden.
  • Single Sign-on mit CAS, OpenID Connect oder SAML 2.0
  • Wake-on-LAN
  • Verwalten Sie problemlos mehrere Remote-Desktop-Sitzungen.
  • Unterstützt TOTP-Zwei-Faktor-Authentifizierung.
  • Unterstützt Zwischenablage (Kopieren und Einfügen) und Dateiübertragung über SFTP.
  • Unterstützt Audioeingabe und -ausgabe
  • und mehr.

Guacamole selbst ist kein Remote-Desktop-Protokoll. Es ist ein Proxy zwischen dem Remote-Desktop und dem Client, sodass der Remote-Desktop in einem Webbrowser angezeigt und gesteuert werden kann.

Schritt 1:Erstellen Sie den Guacamole-Server aus der Quelle

Melden Sie sich bei Ihrem Debian 10-Server an und installieren Sie Abhängigkeitspakete.

sudo apt install build-essential libcairo2-dev libjpeg62-turbo-dev libpng-dev libtool-bin libossp-uuid-dev libvncserver-dev freerdp2-dev libssh2-1-dev libtelnet-dev libwebsockets-dev libpulse-dev libvorbis-dev libwebp-dev libssl-dev libpango1.0-dev libswscale-dev libavcodec-dev libavutil-dev libavformat-dev

Laden Sie die neueste stabile Version von Guacamole-Server herunter.

wget http://mirror.cc.columbia.edu/pub/software/apache/guacamole/1.2.0/source/guacamole-server-1.2.0.tar.gz

Extrahieren Sie das Archiv.

tar -xvf guacamole-server-1.2.0.tar.gz

Wechseln Sie in das entpackte Verzeichnis.

cd guacamole-server-1.2.0

Konfigurieren Sie die Build-Umgebung.

./configure --with-init-dir=/etc/init.d

Dann kompilieren Sie guacamole-server.

sudo make

Installieren Sie den Guacamole-Server.

sudo make install

Aktualisieren Sie den System-Cache der installierten Bibliotheken.

sudo ldconfig

Laden Sie systemd neu, damit es guacd finden kann (Guacamole-Proxy-Daemon)-Dienst installiert in /etc/init.d/ Verzeichnis.

sudo systemctl daemon-reload

Starten Sie den guacd Dienst.

sudo systemctl start guacd

Autostart beim Booten aktivieren.

sudo systemctl enable guacd

Überprüfen Sie den Status.

systemctl status guacd

Wie Sie sehen können, ist es aktiv (wird ausgeführt) .

Guacd lauscht auf 127.0.0.1:4822 , wie mit ss gezeigt werden kann Dienstprogramm.

sudo ss -lnpt | grep guacd

Schritt 2:Installieren Sie die Guacamole-Webanwendung

Die Guacamole-Webanwendung ist in Java geschrieben, daher müssen wir einen Java-Servlet-Container wie Apache Tomcat installieren.

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

Apache Tomcat lauscht auf Port 8080, wie gezeigt werden kann mit:

sudo ss -lnpt | grep java

Wenn Sie andere Software haben, die Port 8080 überwacht, kann Tomcat keine Verbindung zu Port 8080 herstellen. Sie sollten den anderen Prozess so konfigurieren, dass er einen anderen Port verwendet, und dann Tomcat neu starten (sudo systemctl restart tomcat9). ).

Laden Sie als Nächstes die Guacamole-Webanwendung herunter.

wget https://downloads.apache.org/guacamole/1.2.0/binary/guacamole-1.2.0.war

Verschieben Sie die Datei in das Webanwendungsverzeichnis (/var/lib/tomcat9/webapps ) und gleichzeitig die Datei umbenennen (Versionsnummer löschen).

sudo mv guacamole-1.2.0.war /var/lib/tomcat9/webapps/guacamole.war

Starten Sie Tomcat und guacd neu.

sudo systemctl restart tomcat9 guacd

Schritt 3:Guacamole konfigurieren

Erstellen Sie ein Konfigurationsverzeichnis für Guacamole.

sudo mkdir /etc/guacamole/

Erstellen Sie eine Konfigurationsdatei.

sudo nano /etc/guacamole/guacamole.properties

Fügen Sie dieser Datei die folgenden Zeilen hinzu. Einige Leute sagen vielleicht, dass Sie diese Zeilen nicht hinzufügen müssen, da dies die Standardwerte sind. Ich zeige Ihnen eine grundlegende Konfiguration, damit Sie sie bei Bedarf anpassen können.

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

# Auth provider class (authenticates user/pass combination, needed if using the provided login screen)
auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping: /etc/guacamole/user-mapping.xml

Speichern und schließen Sie die Datei. Das Standard-Authentifizierungsmodul in Guacamole liest Benutzernamen und Passwörter aus einer XML-Datei:/etc/guacamole/user-mapping.xml . Bevor wir diese Datei erstellen, müssen wir mit dem folgenden Befehl einen MD5-Hash für Ihr Passwort generieren. Ersetzen Sie your_password mit Ihrem bevorzugten Passwort.

echo -n your_password | openssl md5

Beispielausgabe:

(stdin)= 1060b7b46a3bd36b3a0d66e0127d0517

Erstellen Sie als Nächstes die XML-Datei für die Benutzerzuordnung.

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

Fügen Sie die folgenden Zeilen hinzu. Hier geben wir an, dass das Backend das VNC-Protokoll (Virtual Network Computing) verwendet. Ersetzen Sie den Benutzernamen und den Passwort-Hash. Wir werden später ein VNC-Passwort erstellen.

<user-mapping>

    <!-- Per-user authentication and config information -->
    <authorize
         username="your_preferred_username"
         password="1060b7b46a3bd36b3a0d66e0127d051"
         encoding="md5">
      
       <connection name="default">
         <protocol>vnc</protocol>
         <param name="hostname">localhost</param>
         <param name="port">5901</param>
         <param name="password">vnc_password</param>
       </connection>
    </authorize>

</user-mapping>

Speichern und schließen Sie die Datei. Starten Sie Tomcat und guacd neu.

sudo systemctl restart tomcat9 guacd

Schritt 4:Installieren Sie eine Desktop-Umgebung auf Debian 10 Server

Da wir einen Remote-Desktop einrichten werden, benötigen wir eine Desktop-Umgebung. Stellen Sie sicher, dass Ihr Server über genügend RAM verfügt, bevor Sie eine Desktop-Umgebung installieren. Es gibt viele Desktop-Umgebungen. Ich habe festgestellt, dass die leichtgewichtige XFCE-Desktopumgebung in VNC gut funktioniert, also installieren Sie sie mit dem folgenden Befehl.

sudo apt update
sudo apt install xfce4 xfce4-goodies

Während der Installation werden Sie möglicherweise aufgefordert, einen Standardanzeigemanager auszuwählen. Diese Auswahl spielt keine große Rolle, da Sie den Anmeldebildschirm in einer VNC-Sitzung nicht sehen.

Da auf dem Server eine Desktop-Umgebung ausgeführt wird, wird dringend empfohlen, eine Firewall wie UFW zu verwenden, um den Zugriff einzuschränken und nur die erforderlichen Ports für die Öffentlichkeit zu öffnen. Sie können das folgende Tutorial lesen, um zu erfahren, wie Sie UFW unter Debian aktivieren und verwenden.

  • So verwenden Sie die UFW-Firewall unter Debian, Ubuntu, Linux Mint

Schritt 5:Installieren Sie einen VNC-Server auf Debian 10 Server

Es gibt mehrere VNC-Server-Software für Linux-Benutzer. Wir werden den TigerVNC-Server verwenden, da er am besten mit Guacamole funktioniert.

sudo apt install tigervnc-standalone-server

Führen Sie den folgenden Befehl aus, um den VNC-Server zu starten.

vncserver

Wenn TigerVNC zum ersten Mal startet, werden Sie aufgefordert, ein VNC-Passwort festzulegen. Beachten Sie, dass das Passwort nicht länger als 8 Zeichen sein sollte. Dann können Sie wählen, ob Sie ein Nur-Lesen-Passwort benötigen.

Jetzt sollten Sie die /etc/guacamole/user-mapping.xml bearbeiten Datei und ändern Sie das VNC-Passwort. Starten Sie dann Tomcat und guacd neu.

sudo systemctl restart tomcat9 guacd

Der tigervnc-standalone-server Paket wird mit einer Datei /etc/X11/Xvnc-session ausgeliefert die TigerVNC anweist, beim Start einen X-Server zu starten.

Der TigerVNC-Server wird nicht mit systemd-Serviceeinheiten ausgeliefert. Damit es beim Booten startet, müssen wir eine systemd-Diensteinheit erstellen.

sudo nano /etc/systemd/system/[email protected]

Fügen Sie die folgenden Zeilen in die Datei ein. Ersetzen Sie den Benutzernamen durch Ihren echten Benutzernamen.

[Unit]
Description=a wrapper to launch an X server for VNC
After=syslog.target network.target

[Service]
Type=forking
User=username
Group=username
WorkingDirectory=/home/username

ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

Speichern und schließen Sie die Datei. Beenden Sie die aktuelle VNC-Serverinstanz.

vncserver -kill :1

Starten Sie den VNC-Server mit systemd.

sudo systemctl start [email protected]

Autostart beim Booten aktivieren.

sudo systemctl enable [email protected]

Überprüfen Sie den Status:

systemctl status [email protected]

Wie Sie sehen können, ist es aktiv (wird ausgeführt).

Jetzt lauscht TigerVNC Server auf Port 5901.

sudo ss -lnpt | grep vnc

Schritt 6:Richten Sie einen Reverse-Proxy für die Guacamole-Webanwendung ein

Apache Tomcat lauscht auf Port 8080. Um auf einfache Weise auf die Guacamole-Webanwendung zuzugreifen, können wir einen Reverse-Proxy mit Apache oder Nginx einrichten, sodass Endbenutzer einen Domänennamen für den Zugriff auf die Webanwendung verwenden können. Außerdem können wir damit ganz einfach ein TLS-Zertifikat installieren, um die Verbindung zu verschlüsseln.

Apache

Wenn Sie Apache bevorzugen, installieren Sie Apache aus dem standardmäßigen Debian-Software-Repository.

sudo apt install apache2

Um Apache als Reverse-Proxy zu verwenden, müssen wir den proxy aktivieren Module und das Header-Modul.

sudo a2enmod proxy proxy_http headers proxy_wstunnel

Erstellen Sie dann eine virtuelle Hostdatei für Guacamole.

sudo nano /etc/apache2/sites-available/guacamole.conf

Fügen Sie die folgenden Zeilen in die Datei ein. Ersetzen Sie guacamole.example.com mit eigenem Domainnamen. Denken Sie daran, in Ihrem DNS-Manager einen A-Record für die Subdomain zu erstellen. Wenn Sie keinen echten Domainnamen haben, empfehle ich, zu NameCheap zu gehen, um einen zu kaufen. Der Preis ist niedrig und sie bieten Whois-Datenschutz lebenslang kostenlos.

<VirtualHost *:80>
      ServerName guacamole.example.com

      ErrorLog ${APACHE_LOG_DIR}/guacamole_error.log
      CustomLog ${APACHE_LOG_DIR}/guacamole_access.log combined

      <Location />
          Require all granted
          ProxyPass http://localhost:8080/guacamole/ flushpackets=on
          ProxyPassReverse http://localhost:8080/guacamole/
      </Location>

     <Location /websocket-tunnel>
         Require all granted
         ProxyPass ws://localhost:8080/guacamole/websocket-tunnel
         ProxyPassReverse ws://localhost:8080/guacamole/websocket-tunnel
     </Location>

     Header always unset X-Frame-Options
</VirtualHost>

Speichern und schließen Sie die Datei. Testen Sie die Syntax.

sudo apachectl -t

Wenn Syntx OK ist, aktivieren Sie diesen virtuellen Host.

sudo a2ensite guacamole.conf

Starten Sie Apache neu

sudo systemctl restart apache2

Jetzt können Sie über guacamole.example.com auf die Anmeldeseite von Apache Guacamole zugreifen . Wenn Sie die „ungültige Anfrage“ oder eine ähnliche Fehlermeldung sehen, könnte dies bedeuten, dass Apache Tomcat sich nicht an Port 8080 binden kann, da dieser Port bereits von einem anderen Prozess auf dem Server belegt ist. Sie sollten den anderen Prozess so konfigurieren, dass er einen anderen Port verwendet, und dann Tomcat neu starten.

Nginx

Wenn Sie Nginx bevorzugen, installieren Sie Nginx aus dem standardmäßigen Debian-Software-Repository.

sudo apt install nginx

Erstellen Sie eine Serverblockdatei für Guacamole.

sudo nano /etc/nginx/conf.d/guacamole.conf

Fügen Sie die folgenden Zeilen in die Datei ein. Ersetzen Sie guacamole.example.com mit eigenem Domainnamen. Denken Sie daran, in Ihrem DNS-Manager einen A-Record für die Subdomain zu erstellen. Wenn Sie keinen echten Domainnamen haben, empfehle ich, zu NameCheap zu gehen, um einen zu kaufen. Der Preis ist niedrig und sie bieten Whois-Datenschutz lebenslang kostenlos.

server {
        listen 80;
        listen [::]:80;
        server_name guacamole.example.com;

        access_log  /var/log/nginx/guac_access.log;
        error_log  /var/log/nginx/guac_error.log;

        location / {
                    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/ /;
        }

}

Speichern und schließen Sie diese Datei. Testen Sie dann die Nginx-Konfiguration.

sudo nginx -t

Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderung wirksam wird.

sudo systemctl reload nginx

Jetzt können Sie über guacamole.example.com auf die Anmeldeseite von Apache Guacamole zugreifen . Wenn Sie die „ungültige Anfrage“ oder eine ähnliche Fehlermeldung sehen, könnte dies bedeuten, dass Apache Tomcat sich nicht an Port 8080 binden kann, da dieser Port bereits von einem anderen Prozess auf dem Server belegt ist. Sie sollten den anderen Prozess so konfigurieren, dass er einen anderen Port verwendet, und dann Tomcat neu starten.

HTTPS aktivieren

Um den HTTP-Verkehr zu verschlüsseln, wenn Sie die Guacamole-Weboberfläche besuchen, können wir HTTPS aktivieren, indem wir ein kostenloses TLS-Zertifikat installieren, das von Let’s Encrypt ausgestellt wurde. Führen Sie den folgenden Befehl aus, um den Let’s Encrypt-Client (certbot) unter Debian 10 zu installieren.

sudo apt install certbot

Wenn Sie Apache verwenden, müssen Sie das Certbot-Apache-Plugin installieren.

sudo apt install python3-certbot-apache

Führen Sie als Nächstes den folgenden Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d guacamole.example.com

Wenn Sie Nginx verwenden, müssen Sie auch das Certbot Nginx-Plugin installieren.

sudo apt install python3-certbot-nginx

Führen Sie als Nächstes den folgenden Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d guacamole.example.com

Wo:

  • --nginx :Verwenden Sie das nginx-Plugin.
  • --apache :Verwenden Sie das Apache-Plugin.
  • --agree-tos :Nutzungsbedingungen akzeptieren.
  • --redirect :HTTPS durch 301-Umleitung erzwingen.
  • --hsts :Fügen Sie jeder HTTP-Antwort den Strict-Transport-Security-Header hinzu. Erzwingen, dass der Browser immer TLS für die Domäne verwendet. Schützt vor SSL/TLS-Stripping.
  • --staple-ocsp :Aktiviert OCSP-Heften. Eine gültige OCSP-Antwort wird an das Zertifikat geheftet, das der Server während TLS anbietet.

Das Zertifikat sollte nun abgerufen und automatisch installiert werden.

Und Sie können über HTTPS auf die Guacamole-Weboberfläche zugreifen. (https://guacamole.example.com).

Nach der Anmeldung können Sie den Remote-Desktop verwenden.

Abschluss

Ich hoffe, dieses Tutorial hat Ihnen geholfen, den Apache Guacamole-Remote-Desktop auf dem Debian 10-Server einzurichten. Wenn Sie diesen Beitrag nützlich fanden, abonnieren Sie wie immer unseren kostenlosen Newsletter, um weitere Tipps und Tricks zu erhalten. Pass auf dich auf 🙂


Debian
  1. So legen Sie eine statische IP-Adresse unter Debian 10 Buster fest

  2. So richten Sie RVM unter Debian 10 Buster ein

  3. So installieren Sie VirtualBox 6.1 auf Debian 10 (Buster)

  4. So installieren Sie ownCloud auf Debian 10 (Buster)

  5. Installieren Sie Apache unter Debian 10

So installieren Sie Apache CouchDB auf Debian 10 Buster

So installieren Sie Docker auf Debian 10 Buster

So installieren Sie Tomcat auf Debian 10 Buster

So installieren Sie Vagrant unter Debian 10 Buster

So installieren Sie Apache Guacamole unter Debian 11

So installieren Sie Apache unter Debian 10