Apache Guacamole installieren

In diesem Beitrag sehen wir die Installation von Apache Guacamole, Ein interessantes Tool, das auf freier Software basiert und es uns ermöglicht, auf sichere Weise eine Verbindung zu Computern herzustellen, Dank HTML5 und HTTPS können wir mit RDP auf Computer zugreifen, VNC, SSH o TELNET.

ich sagte:, In diesem Beitrag werden wir sehen, was die Apache Guacamole-Installation ist, Dank der Weboberfläche können Benutzer auf ihre Computer zugreifen. Die Idee ist, Guacamole als Gateway zu verwenden, da Sie nur durch Veröffentlichen des HTTPS-Dienstes die zuvor genannten Protokolle kapseln können, Benutzer können auf die gleiche Weise über HTML5 arbeiten und ihre Remote-Geräte in den Browser integrieren. Am Ende des Beitrags werden wir sehen, wie Sie die Umgebung durch einen Reverse-Proxy ein wenig mehr schützen können. Es ist wahr, dass mit Apache Guacamole abgesehen davon, dass sie sich mit Desktops verbinden können, Wir können Bewerbungen veröffentlichen, sowie die Windows-Authentifizierung integrieren oder eine 2FA eingeben (Doppelfaktorauthentifizierung).

In diesem Beitrag arbeite ich mit einem Ubuntu 20.04, Wir beginnen daher mit der Installation auf einem aktualisierten Computer und können loslegen! wie immer, Wir beginnen mit den Abhängigkeiten, wir drängen sie zuerst:

sudo apt-get install libcairo2-dev libjpeg-turbo8-dev libjpeg-dev libpng-dev libtool-bin libossp-uuid-dev make maven -y
sudo apt-get install libavcodec-dev libavformat-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libwebsockets-dev libpulse-dev -y

Wir müssen Tomcat installieren:

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

Es ist Zeit, Guacamole herunterzuladen, Wir beginnen mit der Serverkomponente, wir sehen welche Version ist die neueste, wir laden es herunter, kompilieren und installieren:

tar -xzf guacamole-server-1.2.0.tar.gz
cd guacamole-server-1.2.0/
./configure --with-init-dir=/etc/init.d
make
sudo make install

Ejecutamos ldconfig para crear vínculos y caché, además de abrir en el firewall el puerto 8080tcp:

sudo ldconfig
sudo ufw allow 8080/tcp

A continuación instalaremos el Cliente de Guacamole que descargaremos de la misma web, así como el fichero WAR. Los descomprimimos y procedemos a su instalación:

cd ..
tar -xzf guacamole-client-1.2.0.tar.gz
cd guacamole-client-1.2.0/
mvn package
sudo mkdir /etc/guacamole
sudo cp guacamole-1.2.0.war /etc/guacamole
sudo ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/

Comenzamos ahora lo que es la configuración, creamos el directorio para las extensiones y librerías de Guacamole, y añadimos la siguiente variable del entorno:

sudo mkdir /etc/guacamole/{extensions,lib}
sudo echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9

Creamos el fichero de configuración de Guacamoles (/etc/guacamole/guacamole.properties) para que conecte con guacd y añadimos:

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

Enlazamos el directorio de configuración de Guacamole al servlet de Tomcat:

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

bevor Sie fortfahren, necesitamos generar el hash MD5 para la contraseña que vamos a querer usar, fácilmente lo sacaremos ejecutando:

echo -n CONTRASEÑA | openssl md5
    (stdin)= d287200e83ee04f67294de90dd72f9c6

Ya podremos editar el fichero donde definiremos los accesos a Apache Guacamole, nämlich, Wenn wir lokale Benutzer verwenden, können wir diese hier sowie die Ressourcen definieren, die wir ihnen präsentieren, '/etc/guacamole/user-mapping.xml Beispiel’ dass wir uns entwickeln müssen:

<user-mapping>
    <!-- Authentifizierungs- und Konfigurationsinformationen pro Benutzer ->
    <!-- Ein Benutzer, der md5 verwendet, um das Kennwort zu hashen
         Der Benutzer von guacadmin und sein md5-Hash-Passwort werden verwendet
             Melden Sie sich bei Guacamole Web UI-- an>
    <autorisieren
            Benutzername ="Guacadmin"
            Passwort ="d287200e83ee04f67294de90dd72f9c6"
            Kodierung ="md5">
        <!-- Erste autorisierte Remote-Verbindung ->
        <Verbindungsname ="Server Hunderte">
            <Protokoll>ssh</Protokoll>
            <param name ="Host-Namen">192.168.1.46</param>
            <param name ="Hafen">22</param>
        </Verbindung>
        <!-- Zweite autorisierte Fernverbindung ->
        <Verbindungsname ="Windows 2019">
            <Protokoll>rdp</Protokoll>
            <param name ="Host-Namen">192.168.1.100</param>
            <param name ="Hafen">3389</param>
            <param name ="Nutzername">Administrator</param>
            <param name ="Ignorieren-Zertifikat">wahr</param>
        </Verbindung>
    </autorisieren>
</user-mapping>

und, sicher, Nach allen Installations- und Konfigurationsänderungen ist es wichtig, die Dienste neu zu starten, sowie ermöglichen ihnen, automatisch mit dem System zu starten:

sudo systemctl starte tomcat9 neu
sudo systemctl aktiviert tomcat9
sudo systemctl guacd neu starten
sudo systemctl enable guacd

Und es ist Zeit, es zu versuchen! Nein?

Wir werden über einen Webbrowser zugreifen, auf http zeigen://DIRECCION_IP_GUACAMOLE:8080/guacamole und entsprechend dem in der vorherigen Datei definierten Benutzernamen und Passwort.

Dies wäre die Schnittstelle, wenn wir sie zum ersten Mal sehen, wo wir die Ressourcen haben werden, die veröffentlicht wurden. Und wenn wir uns kürzlich mit einem Team verbunden haben, haben wir es auf einen Blick.

Wenn Sie auf eine Verbindung klicken, wird die RDP-Verbindung im Browser integriert geöffnet, o VNC, o SSH, o Telnet… Ich überlasse Ihnen diesen Link mit dem gesamten Handbuch und der offiziellen Anleitung, um es an Ihre Bedürfnisse anpassen zu können, eine App, auth con LDAP, OTP / Token…

Ein Letztes, Nein? Die vorerst schlechte Sicherheit, da dies HTTP ist, Zumindest müssen wir einen Reverse-Proxy setzen, und auch, dass es per SSL geht…

Reverse Proxy mit Apache aktivieren

gut, Nun, wenn wir ihm eine zusätzliche Sicherheitsebene geben wollen, Wir müssen Apache auf einem anderen Computer installieren (oder im selben…) um uns zu einem Reverse Proxy zu machen:

sudo apt-get install apache2

Wir aktivieren die folgenden Apache-Module:

sudo a2ensite default-ssl
sudo a2enmod ssl
sudo a2enmod Proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
sudo systemctl apache2 neu starten

Und wir bearbeiten die Standard-SSL-Datei (/etc / apache2 / sites-available / default-ssl.conf), zu dem wir unsere Site-Zertifikate angeben müssen, sowie die URL unserer Guacamole, Sein etwas wie:

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin webmaster @ localhost
                DocumentRoot / var / www / html
                Fehlerprotokoll ${APACHE_LOG_DIR}/Fehlerprotokoll
                CustomLog ${APACHE_LOG_DIR}/access.log combined
                SSLEngine on
                SSLCertificateFile      /etc/apache2/ssl/bujarra.crt
                SSLCertificateKeyFile   /etc/apache2/ssl/bujarra.key
                SSLProxyEngine on
                SSLProxyVerify none
                SSLProxyCheckPeerCN off
                SSLProxyCheckPeerName off
                SSLProxyCheckPeerExpire off
                <Location /guacamole/>
                    Order allow,deny
                    Allow from all
                    ProxyPass http://DIRECCION_IP_GUACAMOLE:8080/guacamole/ flushpackets=on
                    ProxyPassReverse http://DIRECCION_IP_GUACAMOLE:8080/guacamole/
                </Ort>
                SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
                SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Verzeichnis>
        </Virtual>
</IfModule>

Reiniciamos apache e indicamos que inicie también cada vez que arranque la máquina con:

sudo systemctl restart apache2
sudo systemctl enable apache2

¡Y no quedaría más que probar! Abrimos un navegador contra: https://DIRECCION_IP_PROXY/guacamole/ y debería estar algo más segura nuestro despliegue.

Wie immer in der Hoffnung, dass sie interessant sein können, Diese Art von Lösungen ist jedoch für kleine Unternehmen nützlich, Kleinstunternehmen, verhindern, dass sie RDP direkt ins Internet stellen. Mit dieser Art von Lösung öffnen wir einen einzigen Port zum Internet, die 443tcp, der Rest schloss. Schnell und einfach, An einem Punkt haben wir ein Tool, um Telearbeit in Unternehmen ohne Ressourcen zu ermöglichen, Studienzentren, Hochschulen…

Eine Umarmung!