Opsætning af webbaseret Guacamole-værktøj til adgang til eksterne Linux/Windows-maskiner


Som systemadministrator kan du måske finde dig selv (i dag eller i fremtiden) i et miljø, hvor Windows og Linux eksisterer sammen. Det er ingen hemmelighed, at nogle store virksomheder foretrækker (eller er nødt til) at køre nogle af deres produktionstjenester i Windows-kasser og andre på Linux-servere. Hvis det er din sag, vil du byde denne guide velkommen med åbne arme (ellers gå videre og i det mindste sørg for at føje den til dine bogmærker).

I denne artikel vil vi introducere dig til guacamole, en ekstern desktop gateway drevet af Tomcat, der kun skal installeres på en central server.

Guacamole vil tilbyde et webbaseret kontrolpanel, der giver dig mulighed for at skifte hurtigt fra en maskine til en anden - alt sammen inden for det samme webbrowser-vindue.

I denne artikel har vi brugt følgende maskiner. Vi installerer Guacamole i en Ubuntu-boks og bruger den til at få adgang til en Windows 10-boks via Remote Desktop Protocol (RDP) og en RHEL 7-boks ved hjælp af SSH:

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

Når det er sagt, lad os komme i gang.

Installation af Guacamole Server

1. Inden du installerer guacamole, skal du først tage sig af dens afhængighed.

$ sudo apt-get install libcairo2-dev libjpeg62-dev libpng12-dev libossp-uuid-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libssh-dev tomcat7 tomcat7-admin tomcat7-user 
# yum install cairo-devel libjpeg-devel libpng-devel uuid-devel freerdp-devel pango-devel libssh2-devel libssh-dev tomcat tomcat-admin-webapps tomcat-webapps
# dnf install cairo-devel libjpeg-devel libpng-devel uuid-devel freerdp-devel pango-devel libssh2-devel libssh-devel tomcat tomcat-admin-webapps tomcat-webapps

2. Download og udpak tarball.
Fra begyndelsen af februar 2016 er den seneste version af Guacamole 0.9.9. Du kan henvise til downloadsiden for at finde ud af den nyeste version på et givet tidspunkt.

# wget http://sourceforge.net/projects/guacamole/files/current/source/guacamole-server-0.9.9.tar.gz 
# tar zxf guacamole-server-0.9.9.tar.gz 

3. Kompilér softwaren.

# cd guacamole-server-0.9.9 
# ./configure 

Som det kan forventes, vil configure kontrollere dit system for tilstedeværelsen af de krævede afhængigheder og for understøttede kommunikationsprotokoller (som det kan ses i den fremhævede firkant, Remote Desktop Protocol (RDP) og SSH understøttes af de afhængigheder, der er installeret tidligere) .

Hvis alt går som forventet, skal du se dette, når det er afsluttet (ellers skal du sørge for at installere alle de nødvendige afhængigheder):

Som den sidste linje i ovenstående billede antyder, skal du køre make og make install for at kompilere programmet:

# make 
# make install

4. Opdater cachen på installerede biblioteker.

# ldconfig 

og tryk Enter.

Installation af Guacamole-klient

Efter at have gennemført ovenstående trin, er guacamole-serveren blevet installeret. Følgende instruktioner hjælper dig nu med at opsætte guacd (proxy-dæmonen, der integrerer Javascript med kommunikationsprotokoller som RDP eller SSH) og guacamole.war (klienten), den komponent, der udgør den endelige HTML5-applikation, der vil blive præsenteret for du.

Bemærk, at begge komponenter (guacamole-server og klient) skal installeres på den samme maskine - der er ikke behov for at installere en såkaldt klient på de maskiner, du vil oprette forbindelse til).

Følg disse trin for at downloade klienten:

5. Download webapplikationsarkivet, og skift navnet til guacamole.war.

Bemærk: Afhængigt af din distribution kan Tomcat-biblioteksmappen muligvis være placeret på/var/lib/tomcat.

# cd /var/lib/tomcat7
# wget http://sourceforge.net/projects/guacamole/files/current/binary/guacamole-0.9.9.war
# mv guacamole-0.9.9.war guacamole.war

6. Opret konfigurationsfilen (/etc/guacamole/guacamole.properties). Denne fil indeholder instruktioner til Guacamole til at oprette forbindelse til guacd:

# mkdir /etc/guacamole
# mkdir /usr/share/tomcat7/.guacamole

Indsæt følgende indhold i /etc/guacamole/guacamole.properties. Bemærk, at vi henviser til en fil, som vi opretter i næste trin (/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

Og opret et symbolsk link til Tomcat for at kunne læse filen:

# ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat7/.guacamole/

7. Guacamole bruger user-mapping.xml, opret denne fil for at definere, hvilke brugere der har tilladelse til at godkende til Guacamole-webgrænsefladen (mellem <authorize> tags) og hvilke forbindelser de kan bruge (mellem < kode> tags):

Følgende brugerkortlægning giver adgang til Guacamole-webgrænsefladen til bruger tecmint med adgangskode tecmint01. Derefter skal vi inden for SSH-forbindelsen placere et gyldigt brugernavn for at logge ind på RHEL-feltet (du bliver bedt om at indtaste den tilsvarende adgangskode, når Guacamole initierer forbindelsen).

I tilfælde af Windows 10-boksen er der ingen grund til at gøre det, da vi får vist loginskærmen over RDP.

For at hente md5-hash af adgangskoden tecmint01 skal du skrive følgende kommando:

# printf '%s' "tecmint01" | md5sum

Indsæt derefter output af kommandoen i adgangskodefeltet inden for tags <authorize>:

<user-mapping>
        <authorize 
                username="tecmint" 
                password="8383339b9c90775ac14693d8e620981f" 
                encoding="md5">
                <connection name="RHEL 7">
                        <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>

Som det er tilfældet med alle filer, der indeholder følsomme oplysninger, er det vigtigt at begrænse tilladelserne og ændre ejerskabet af filen user-mapping.xml :

# chmod 600 /etc/guacamole/user-mapping.xml
# chown tomcat7:tomcat7 /etc/guacamole/user-mapping.xml

Start Tomcat og guacd.

# service tomcat7 start
# /usr/local/sbin/guacd &

Lancering af Guacamole Web Interface

8. For at få adgang til Guacamole-webgrænsefladen skal du starte en browser og pege den på http:/server: 8080/guacamole hvor serveren er værtsnavnet eller IP-adressen på din server (i vores tilfælde er det < kode> http://192.168.0.100:8080/guacamole ) og log ind med de tidligere legitimationsoplysninger (brugernavn: tecmint, adgangskode: tecmint01):

9. Når du har klikket på Login, føres du til den administrative grænseflade, hvor du vil se listen over forbindelser, som bruger tecmint har adgang til, i henhold til user-mapping.xml :

10. Gå videre og klik på RHEL 7-boksen for at logge ind som gacanepa (det brugernavn, der er angivet i forbindelsesdefinitionen).

Bemærk, hvordan forbindelseskilden er indstillet til 192.168.0.100 (IP for Guacamole-serveren), uanset IP-adressen på den maskine, du bruger til at åbne webgrænsefladen:

11. Hvis du vil lukke forbindelsen, skal du skrive exit og trykke på Enter. Du bliver bedt om at vende tilbage til hovedgrænsefladen (Hjem), genoprette forbindelse eller logge ud fra Guacamole:

12. Nu er det tid til at prøve den eksterne desktopforbindelse til Windows 10:

Tillykke! Nu kan du få adgang til en Windows 10-maskine og en RHEL 7-server fra en webbrowser.

Resumé

I denne artikel har vi forklaret, hvordan du installerer og konfigurerer Guacamole til at give adgang til eksterne maskiner via RDP og SSH. Det officielle websted indeholder en omfattende dokumentation, der hjælper dig med at konfigurere adgang ved hjælp af andre protokoller, såsom VNC og anden godkendelsesmekanisme, såsom DB-baseret ..

Tøv ikke med at sende os en note, hvis du har spørgsmål eller forslag til denne artikel. Vi ser også frem til at høre dine succeshistorier.

Reference Links: http://guac-dev.org/