GNU/Linux >> Znalost Linux >  >> Debian

Nastavte vzdálenou plochu Apache Guacamole na Debian 10 Buster

Tento tutoriál vám ukáže, jak nastavit vzdálenou plochu Guacamole na serveru Debian 10. Guacamole je bezplatná brána vzdálené plochy s otevřeným zdrojovým kódem vyvinutá softwarovou nadací Apache.

Funkce guacamole

  • Umožňuje vám přístup ke vzdálené ploše z webového prohlížeče. Na straně klienta není třeba instalovat žádný další software.
  • Podporuje standardní protokoly jako VNC, RDP, SSH a Kubernetes.
  • Relace VNC lze zaznamenávat graficky.
  • Jednotné přihlášení pomocí CAS, OpenID Connect nebo SAML 2.0
  • Wake-on-LAN
  • Snadná správa více relací vzdálené plochy.
  • Podporuje dvoufaktorové ověřování TOTP.
  • Podporuje schránku (kopírování a vkládání) a přenos souborů přes SFTP.
  • Podporuje zvukový vstup a výstup
  • a další.

Guacamole sám o sobě není protokol vzdálené plochy. Je to proxy mezi vzdálenou plochou a klientem, takže vzdálenou plochu lze zobrazit a ovládat ve webovém prohlížeči.

Krok 1:Sestavte server Guacamole ze zdroje

Přihlaste se ke svému serveru Debian 10 a nainstalujte balíčky závislostí.

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

Stáhněte si nejnovější stabilní verzi guacamole-server.

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

Rozbalte archiv.

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

Přejděte do extrahovaného adresáře.

cd guacamole-server-1.2.0

Nakonfigurujte prostředí sestavení.

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

Poté zkompilujte guacamole-server.

sudo make

Nainstalujte server guacamole.

sudo make install

Aktualizujte mezipaměť systému nainstalovaných knihoven.

sudo ldconfig

Znovu načtěte systemd, aby mohl najít guacd Služba (Démon proxy Guacamole) nainstalovaná v /etc/init.d/ adresář.

sudo systemctl daemon-reload

Spusťte guacd službu.

sudo systemctl start guacd

Povolit automatické spouštění při spouštění.

sudo systemctl enable guacd

Zkontrolujte jeho stav.

systemctl status guacd

Jak vidíte, je aktivní (běžící) .

Guacd poslouchá na 127.0.0.1:4822 , jak lze ukázat pomocí ss utility.

sudo ss -lnpt | grep guacd

Krok 2:Nainstalujte webovou aplikaci Guacamole

Webová aplikace Guacamole je napsána v jazyce Java, takže musíme nainstalovat kontejner Java Servlet, jako je Apache Tomcat.

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

Apache Tomcat bude naslouchat na portu 8080, jak lze ukázat pomocí:

sudo ss -lnpt | grep java

Pokud máte jiný software, který naslouchá na portu 8080, pak se Tomcat nemůže vázat na port 8080. Měli byste nakonfigurovat druhý proces tak, aby používal jiný port, a poté restartovat Tomcat (sudo systemctl restart tomcat9 ).

Dále si stáhněte webovou aplikaci Guacamole.

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

Přesuňte soubor do adresáře webové aplikace (/var/lib/tomcat9/webapps ) a zároveň soubor přejmenujte (smažte číslo verze).

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

Restartujte Tomcat a guacd.

sudo systemctl restart tomcat9 guacd

Krok 3:Nakonfigurujte Guacamole

Vytvořte konfigurační adresář pro Guacamole.

sudo mkdir /etc/guacamole/

Vytvořte konfigurační soubor.

sudo nano /etc/guacamole/guacamole.properties

Přidejte do tohoto souboru následující řádky. Někteří lidé mohou říci, že tyto řádky nemusíte přidávat, protože se jedná o výchozí hodnoty. Ukážu vám základní konfiguraci, takže si ji můžete přizpůsobit, když to bude potřeba.

# 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

Uložte a zavřete soubor. Výchozí ověřovací modul v Guacamole čte uživatelská jména a hesla ze souboru XML:/etc/guacamole/user-mapping.xml . Před vytvořením tohoto souboru musíme vygenerovat MD5 hash pro vaše heslo pomocí následujícího příkazu. Nahraďte your_password s vaším preferovaným heslem.

echo -n your_password | openssl md5

Ukázkový výstup:

(stdin)= 1060b7b46a3bd36b3a0d66e0127d0517

Dále vytvořte soubor XML pro mapování uživatele.

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

Přidejte následující řádky. Zde specifikujeme, že backend bude používat protokol VNC (Vritual Network Computing). Nahraďte uživatelské jméno a hash hesla. Heslo VNC vytvoříme později.

<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>

Uložte a zavřete soubor. Restartujte Tomcat a guacd.

sudo systemctl restart tomcat9 guacd

Krok 4:Instalace desktopového prostředí na Debian 10 Server

Protože budeme nastavovat vzdálenou plochu, potřebujeme desktopové prostředí. Před instalací desktopového prostředí se ujistěte, že má váš server dostatek paměti RAM. Existuje mnoho desktopových prostředí. Zjistil jsem, že lehké desktopové prostředí XFCE funguje ve VNC dobře, takže jej nainstalujte pomocí následujícího příkazu.

sudo apt update
sudo apt install xfce4 xfce4-goodies

Během instalace můžete být požádáni o výběr výchozího správce zobrazení. Na této volbě moc nezáleží, protože v relaci VNC neuvidíte přihlašovací obrazovku.

Vzhledem k tomu, že na serveru běží desktopové prostředí, důrazně se doporučuje používat firewall, jako je UFW, abyste omezili přístup a otevřeli veřejnosti pouze nezbytné porty. Můžete si přečíst následující tutoriál, kde se dozvíte, jak povolit a používat UFW v Debianu.

  • Jak používat UFW Firewall v systémech Debian, Ubuntu, Linux Mint

Krok 5:Instalace serveru VNC na server Debian 10

Pro uživatele Linuxu je k dispozici několik serverů VNC. Budeme používat server TigerVNC, protože nejlépe funguje s Guacamole.

sudo apt install tigervnc-standalone-server

Spusťte následující příkaz pro spuštění serveru VNC.

vncserver

Při prvním spuštění TigerVNC vás požádá o nastavení hesla VNC. Pamatujte, že heslo by nemělo mít více než 8 znaků. Poté si můžete vybrat, zda potřebujete heslo pouze pro prohlížení.

Nyní byste měli upravit /etc/guacamole/user-mapping.xml soubor a změňte heslo VNC. Poté restartujte Tomcat a guacd.

sudo systemctl restart tomcat9 guacd

tigervnc-standalone-server balíček se dodává se souborem /etc/X11/Xvnc-session který říká TigerVNC, aby při spuštění spustil X server.

Server TigerVNC se nedodává s žádnými systémovými servisními jednotkami. Aby se to spustilo v době bootování, musíme vytvořit servisní jednotku systemd.

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

Přidejte do souboru následující řádky. Nahraďte uživatelské jméno svým skutečným uživatelským jménem.

[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

Uložte a zavřete soubor. Zastavte aktuální instanci serveru VNC.

vncserver -kill :1

Spusťte VNC server pomocí systemd.

sudo systemctl start [email protected]

Povolit automatické spouštění při spouštění.

sudo systemctl enable [email protected]

Zkontrolujte jeho stav:

systemctl status [email protected]

Jak vidíte, je aktivní (běží).

Nyní TigerVNC Server naslouchá na portu 5901.

sudo ss -lnpt | grep vnc

Krok 6:Nastavení reverzního proxy pro webovou aplikaci Guacamole

Apache Tomcat naslouchá na portu 8080. Abychom měli snadný způsob přístupu k webové aplikaci Guacamole, můžeme nastavit reverzní proxy s Apache nebo Nginx, takže koncoví uživatelé budou moci pro přístup k webové aplikaci používat název domény. Umožňuje nám také snadno nainstalovat certifikát TLS pro šifrování připojení.

Apache

Pokud dáváte přednost použití Apache, nainstalujte Apache z výchozího softwarového úložiště Debianu.

sudo apt install apache2

Chcete-li používat Apache jako reverzní proxy, musíme povolit proxy moduly a modul záhlaví.

sudo a2enmod proxy proxy_http headers proxy_wstunnel

Poté vytvořte soubor virtuálního hostitele pro Guacamole.

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

Přidejte do souboru následující řádky. Nahraďte guacamole.example.com s vlastním názvem domény. Nezapomeňte vytvořit záznam A pro subdoménu ve správci DNS. Pokud nemáte skutečný název domény, doporučuji přejít na NameCheap a koupit si ho. Cena je nízká a poskytují ochranu soukromí whois doživotně zdarma.

<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>

Uložte a zavřete soubor. Otestujte syntaxi.

sudo apachectl -t

Pokud je Syntx v pořádku, povolte tohoto virtuálního hostitele.

sudo a2ensite guacamole.conf

Restartujte Apache

sudo systemctl restart apache2

Nyní máte přístup na přihlašovací stránku Apache Guacamole přes guacamole.example.com . Pokud se zobrazí „neplatný požadavek“ nebo podobná chybová zpráva, může to znamenat, že Apache Tomcat se nemůže navázat na port 8080, protože tento port je již obsazen jiným procesem na serveru. Měli byste nakonfigurovat druhý proces tak, aby používal jiný port, a poté restartovat Tomcat.

Nginx

Pokud dáváte přednost použití Nginx, nainstalujte Nginx z výchozího úložiště softwaru Debian.

sudo apt install nginx

Vytvořte soubor bloku serveru pro Guacamole.

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

Přidejte do souboru následující řádky. Nahraďte guacamole.example.com s vlastním názvem domény. Nezapomeňte vytvořit záznam A pro subdoménu ve správci DNS. Pokud nemáte skutečný název domény, doporučuji přejít na NameCheap a koupit si ho. Cena je nízká a poskytují ochranu soukromí whois doživotně zdarma.

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

}

Uložte a zavřete tento soubor. Poté otestujte konfiguraci Nginx.

sudo nginx -t

Pokud je test úspěšný, znovu načtěte Nginx, aby se změna projevila.

sudo systemctl reload nginx

Nyní máte přístup na přihlašovací stránku Apache Guacamole přes guacamole.example.com . Pokud se zobrazí „neplatný požadavek“ nebo podobná chybová zpráva, může to znamenat, že Apache Tomcat se nemůže navázat na port 8080, protože tento port je již obsazen jiným procesem na serveru. Měli byste nakonfigurovat druhý proces tak, aby používal jiný port, a poté restartovat Tomcat.

Povolit HTTPS

Pro šifrování HTTP provozu, když navštívíte webové rozhraní Guacamole, můžeme povolit HTTPS instalací bezplatného TLS certifikátu vydaného od Let’s Encrypt. Spuštěním následujícího příkazu nainstalujte klienta Let’s Encrypt (certbot) na Debian 10.

sudo apt install certbot

Pokud používáte Apache, musíte si nainstalovat plugin Certbot Apache.

sudo apt install python3-certbot-apache

Dále spusťte následující příkaz pro získání a instalaci certifikátu TLS.

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

Pokud používáte Nginx, musíte si také nainstalovat plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Dále spusťte následující příkaz pro získání a instalaci certifikátu TLS.

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

Kde:

  • --nginx :Použijte plugin nginx.
  • --apache :Použijte plugin Apache.
  • --agree-tos :Souhlas se smluvními podmínkami.
  • --redirect :Vynutit HTTPS přesměrováním 301.
  • --hsts :Přidejte hlavičku Strict-Transport-Security do každé odpovědi HTTP. Vynucení prohlížeče, aby pro doménu vždy používal TLS. Chrání před odstraněním SSL/TLS.
  • --staple-ocsp :Umožňuje sešívání OCSP. Platná odpověď OCSP je přišita k certifikátu, který server nabízí během TLS.

Certifikát by nyní měl být získán a automaticky nainstalován.

A můžete přistupovat k webovému rozhraní Guacamole přes HTTPS. (https://guacamole.example.com).

Po přihlášení budete moci používat vzdálenou plochu.

Zabalení

Doufám, že vám tento tutoriál pomohl nastavit vzdálenou plochu Apache Guacamole na serveru Debian 10. Jako vždy, pokud vám tento příspěvek přišel užitečný, přihlaste se k odběru našeho bezplatného zpravodaje, kde získáte další tipy a triky. Opatruj se 🙂


Debian
  1. Jak nainstalovat VirtualBox 6.1 na Debian 10 (Buster)

  2. Jak nainstalovat ownCloud na Debian 10 (Buster)

  3. Nainstalujte Apache na Debian 10

  1. Jak nastavit statickou IP adresu na Debian 10 Buster

  2. Jak nastavit RVM na Debian 10 Buster

  3. Jak nainstalovat Apache na Debian 9

  1. Jak nainstalovat Apache Guacamole na Debian 11

  2. Jak nainstalovat a používat Apache Guacamole Remote Desktop na Rocky Linux 8

  3. Jak nainstalovat LAMP Stack na Debian 10 Buster Server/Desktop