Zoeken op website

Installeer Guacamole voor externe Linux/Windows-toegang in Ubuntu


Als systeembeheerder kan het zijn dat u (nu of in de toekomst) in een omgeving werkt waar Windows en Linux naast elkaar bestaan.

Het is geen geheim dat sommige grote bedrijven sommige van hun productiediensten liever in Windows-boxen draaien en andere in Linux-servers.

Als dat uw geval is, zult u deze gids met open armen ontvangen (anders kunt u uw gang gaan en hem in ieder geval aan uw bladwijzers toevoegen).

In dit artikel laten we u kennismaken met guacamole, een externe desktopgateway aangedreven door Tomcat die alleen op een centrale server hoeft te worden geïnstalleerd.

Guacamole biedt een webgebaseerd controlepaneel waarmee u snel van de ene machine naar de andere kunt overschakelen – allemaal binnen hetzelfde webbrowservenster.

Omgeving testen

In dit artikel hebben we de volgende machines gebruikt. We installeren Guacamole in een Ubuntu-box en gebruiken deze om toegang te krijgen tot een Windows 10-box via Remote Desktop Protocol ( RDP) en een RHEL box die het SSH-netwerkprotocol gebruikt:

Guacamole server: Ubuntu 20.04 - IP 192.168.0.100
Remote SSH box: RHEL 8 – IP 192.168.0.18
Remote desktop box: Windows 10 – IP 192.168.0.19

Dat gezegd hebbende, laten we aan de slag gaan.

Guacamole-server installeren in Ubuntu

1. Voordat u guacamole installeert, moet u eerst de afhankelijkheden regelen.

sudo apt update
sudo apt install -y gcc vim curl wget g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev \
libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev build-essential \
libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev freerdp2-dev libwebsockets-dev \
libssl-dev libvorbis-dev libwebp-dev tomcat9 tomcat9-admin tomcat9-user

2. Download en pak de tarball uit. Vanaf begin februari 2021 is de nieuwste versie van Guacamole 1.3.0. U kunt de Guacamole Downloads-pagina raadplegen om op een bepaald moment de nieuwste versie te vinden.

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

3. Compileer de software.

cd guacamole-server-1.3.0/
./configure

Zoals te verwachten is, zal configure uw systeem controleren op de aanwezigheid van de vereiste afhankelijkheden en op ondersteunde communicatieprotocollen (zoals te zien is in het gemarkeerde vierkant, Remote Desktop Protocol > (RDP) en SSH worden ondersteund door de eerder geïnstalleerde afhankelijkheden).

Als alles naar verwachting verloopt, zou je dit moeten zien wanneer het is voltooid (zorg er anders voor dat je alle benodigde afhankelijkheden hebt geïnstalleerd):

Zoals de laatste regel in de bovenstaande afbeelding suggereert, voer je make en make install uit om het programma te compileren:

make 
sudo make install

4. Update de cache van geïnstalleerde bibliotheken.

sudo ldconfig 

en druk op Enter.

Guacamole-client installeren in Ubuntu

Na het voltooien van bovenstaande stappen is de guacamole-server geïnstalleerd. De volgende instructies helpen u nu bij het instellen van guacd (de proxy-daemon die Javascript integreert met communicatieprotocollen zoals RDP of SSH) en guacamole.war (de client), het onderdeel waaruit de uiteindelijke HTML5-applicatie bestaat die aan u wordt gepresenteerd.

Houd er rekening mee dat beide componenten (guacamole server en client) op dezelfde machine moeten worden geïnstalleerd. Het is niet nodig om een zogenaamde client te installeren op de machines die u wilt gebruiken verbinden aan).

Volg deze stappen om de client te downloaden:

5. Download het archief van de webapplicatie en verander de naam in guacamole.war.

Opmerking: Afhankelijk van uw distributie kan de map Tomcat-bibliotheken zich bevinden op /var/lib/tomcat.

cd /var/lib/tomcat9/
sudo wget https://dlcdn.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war
sudo mv guacamole-1.3.0.war webapps/guacamole.war

6. Maak het configuratiebestand (/etc/guacamole/guacamole.properties). Dit bestand bevat de instructies voor Guacamole om verbinding te maken met guacd:

sudo mkdir /etc/guacamole
sudo mkdir /usr/share/tomcat9/.guacamole
sudo nano /etc/guacamole/guacamole.properties

Voeg de volgende inhoud in /etc/guacamole/guacamole.properties. Houd er rekening mee dat we verwijzen naar een bestand dat we in de volgende stap zullen maken (/etc/guacamole/user-mapping.xml):

guacd-hostname: localhost
guacd-port:    4822
user-mapping:    /etc/guacamole/user-mapping.xml
auth-provider:    net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping:    /etc/guacamole/user-mapping.xml

En maak een symbolische link zodat Tomcat het bestand kan lezen:

sudo ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat9/.guacamole/

7. Guacamole gebruikt de user-mapping.xml, maak dit bestand om te definiëren welke gebruikers zich mogen authenticeren bij de Guacamole-webinterface (tussen <authorize> tags) en welke verbindingen ze kunnen gebruiken (tussen <connection> tags):

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

De volgende gebruikerstoewijzing verleent toegang tot de Guacamole-webinterface aan een gebruiker tecmint met wachtwoord tecmint01. Vervolgens moeten we binnen de SSH-verbinding een geldige gebruikersnaam plaatsen om in te loggen op de RHEL-box (u wordt gevraagd het bijbehorende wachtwoord in te voeren wanneer Guacamole de verbinding tot stand brengt).

In het geval van de Windows 10-box is dit niet nodig, omdat we het inlogscherm via RDP te zien krijgen.

Om de md5-hash van het wachtwoord tecmint01 te verkrijgen, typt u de volgende opdracht:

printf '%s' "tecmint01" | md5sum

Voeg vervolgens de uitvoer van de opdracht in het wachtwoordveld in tussen de <authorize>-tags:

<user-mapping>
        <authorize 
                username="tecmint" 
                password="8383339b9c90775ac14693d8e620981f" 
                encoding="md5">
                <connection name="RHEL 8">
                        <protocol>ssh</protocol>
                        <param name="hostname">192.168.0.18</param>
                        <param name="port">22</param>
                        <param name="username">gacanepa</param>
                </connection>
                <connection name="Windows 10">
                        <protocol>rdp</protocol>
                        <param name="hostname">192.168.0.19</param>
                        <param name="port">3389</param>
                </connection>
        </authorize>
</user-mapping>

Zoals het geval is met alle bestanden die gevoelige informatie bevatten, is het belangrijk om de rechten te beperken en het eigendom van het bestand user-mapping.xml te wijzigen:

sudo chmod 600 /etc/guacamole/user-mapping.xml
sudo chown tomcat:tomcat /etc/guacamole/user-mapping.xml

Start Tomcat en guacd.

sudo service tomcat9 start
sudo /usr/local/sbin/guacd &

Lancering van de Guacamole-webinterface

8. Om toegang te krijgen tot de Guacamole-webinterface, start u een browser en wijst u deze naar http://server:8080/guacamole waarbij de server de hostnaam of het IP-adres van uw server (in ons geval is dit http://192.168.0.100:8080/guacamole) en log in met de eerder opgegeven inloggegevens (gebruikersnaam: tecmint, wachtwoord: tecmint01):

9. Nadat u op Inloggen heeft geklikt, wordt u naar de administratieve interface geleid waar u de lijst ziet met verbindingen waartoe gebruiker tecmint toegang heeft, volgens user- mapping.xml:

10. Ga je gang en klik op het vak RHEL 8 om in te loggen als gacanepa (de gebruikersnaam die is opgegeven in de verbindingsdefinitie).

Merk op hoe de verbindingsbron is ingesteld op 192.168.0.100 (het IP-adres van de Guacamole-server), ongeacht het IP-adres van de machine die u gebruikt om de webinterface te openen:

11. Als je de verbinding wilt verbreken, typ je exit en druk je op Enter. U wordt gevraagd terug te keren naar de hoofdinterface (Home), opnieuw verbinding te maken of uit te loggen bij Guacamole:

12. Nu is het tijd om de externe bureaubladverbinding met Windows 10 te proberen:

Gefeliciteerd! Nu hebt u vanuit een webbrowser toegang tot een Windows 10-machine en een RHEL 8-server.

Samenvatting

In dit artikel hebben we uitgelegd hoe u Guacamole installeert en configureert om toegang tot externe machines via RDP en SSH mogelijk te maken. De officiële website biedt uitgebreide documentatie om u te helpen bij het instellen van toegang met behulp van andere protocollen, zoals VNC en andere authenticatiemechanismen, zoals op DB gebaseerde...

Aarzel zoals altijd niet om ons een bericht te sturen als u vragen of suggesties heeft over dit artikel. Wij zijn ook benieuwd naar uw succesverhalen.