安装 Apache Guacamole

在这篇文章中,我们将看到 Apache Guacamole 的安装, 一个基于免费软件的有趣工具,它将使我们能够以安全的方式连接到计算机, 多亏了 HTML5 和 HTTPS,我们将能够使用 RDP 访问计算机, VNC, SSH 或 TELNET.

我说了什么, 在这篇文章中,我们将了解 Apache Guacamole 的安装是什么, 由于其 Web 界面,这将允许用户访问他们的计算机. 这个想法是使用鳄梨酱作为门户, 因为只有发布 HTTPS 服务才能封装上述协议, 通过将他们的远程计算机集成到浏览器中,用户将能够通过 HTML5 以相同的方式工作. 在文章的最后,我们将了解如何使用反向代理进一步保护环境. 确实,使用 Apache Guacamole 除了允许他们连接到桌面之外, 我们可能会发布应用程序, 以及集成 Windows 身份验证或引入 2FA (双重认证).

在这篇文章中,我使用的是 Ubuntu 20.04, 因此,我们首先在更新的机器上安装,并准备开始! 照常, 我们从依赖项开始, 我们首先敦促他们:

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

我们必须安装 Tomcat:

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

是时候下载 Guacamole 了, 我们从 Server 组件开始, 看 哪个版本是最新的, 我们下载, 我们编译并安装:

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

我们运行 ldconfig 来创建链接和缓存, 除了在防火墙中打开端口 8080TCP:

sudo LDCONFIG sudo UFW 允许 8080/TCP

然后我们将安装我们将从同一网站下载的 Guacamole Client, 以及 WAR 文件. 我们解压缩它们并继续安装它们:

光盘 ..
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/

现在让我们开始配置是什么, 我们创建了 Guacamole 扩展和库的目录, 并添加以下环境变量:

sudo mkdir /etc/鳄梨酱/{扩展,自由}
汗水回声 "GUACAMOLE_HOME=/etc/鳄梨酱" >> /etc/default/tomcat9

我们创建 Guacamole 配置文件 (/etc/guacamole/guacamole.properties) 以连接 GUACD,我们将:

guacd 主机名: 本地主机 guacd 端口:     4822
用户映射:   /etc/guacamole/user-mapping.xml 身份验证提供程序:  net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider

我们将 Guacamole 配置目录链接到 Tomcat servlet:

sudo ln -s /etc/鳄梨酱 /usr/share/tomcat9/.鳄梨酱

在你继续之前, 我们需要为要使用的密码生成 MD5 哈希值, 我们可以通过执行:

echo -n 密码 | OpenSSL MD5
    (臭)= d287200e83ee04f67294de90dd72f9c6

我们现在将能够编辑文件,我们将在其中定义对 Apache Guacamole 的访问, 这是, 如果我们使用本地用户,我们可以在此处定义他们以及我们向他们提供的资源, '/etc/guacamole/user-mapping.xml 示例’ 我们将不得不开发:

<用户映射>
    <!-- 每用户身份验证和配置信息 -->
    <!-- 使用 md5 对密码 guacadmin user 及其下面的 md5 哈希密码进行哈希处理的用户用于登录 Guacamole Web UI-->
    <授权用户名="瓜卡姆"
            密码="D287200E83EE04F67294DE90DD72F9C6"
            编码="中路 5">
        <!-- 第一个授权的远程连接 -->
        <连接名称="Centos 服务器">
            <协议>sh</协议>
            <参数名称="主机名">192.168.1.46</参数>
            <参数名称="港口">22</参数>
        </连接>
        <!-- 第二个授权远程连接 -->
        <连接名称="窗户 2019">
            <协议>RDP</协议>
            <参数名称="主机名">192.168.1.100</参数>
            <参数名称="港口">3389</参数>
            <参数名称="用户名">管理员</参数>
            <参数名称="ignore-cert 的">真</参数>
        </连接>
    </授权>
</用户映射>

和, 顺便一提, 在完成所有安装和配置更改后,重新启动服务将是必不可少的, 以及使他们能够自动启动系统:

sudo systemctl restart tomcat9 sudo systemctl enable tomcat9 sudo systemctl restart guacd sudo systemctl enable guacd

现在是时候尝试一下了! 不?

我们将通过 Web 浏览器访问, 指向 HTTP://DIRECCION_IP_GUACAMOLE:8080/鳄梨酱,并根据上一个文件中定义的用户名和密码.

这将是我们第一次看到它的界面, 我们将拥有已发布的资源. 如果我们最近连接了一台电脑,我们会把它放在一瞥的顶部.

当您单击任何连接时,RDP 连接将打开,集成在浏览器中, 或 VNC, o SSH, o Telnet… 我将此链接与所有手册和官方指南一起留给您,以便能够根据您的需要对其进行配置, 一个应用程序, 使用 LDAP 进行身份验证, OTP/令牌…

爆炸, 不? 目前最糟糕的是安全性,因为这是 HTTP, 所以至少我们得在里面放一个反向代理, 并且它通过 SSL…

使用 Apache 启用反向代理

井, 好吧,如果我们想给它额外的安全层, 我们将不得不在另一台机器上安装 Apache (或在同一…) 充当反向代理:

sudo apt-get 安装 apache2

我们启用了以下 apache 模块:

sudo A2ensite 默认-SSL sudo A2Enmod SSL sudo A2Enmod 代理 sudo A2Enmod proxy_http sudo A2Enmod proxy_balancer sudo A2Enmod lbmethod_byrequests sudo SystemCTL 重启 Apache2

然后我们编辑默认的 SSL 文件 (/etc/apache2/sites-available/default-ssl.conf), 我们必须为此提供我们的网站证书, 以及我们鳄梨酱的 URL, 留下类似:

<IfModule mod_ssl.c>
        <VirtualHost _default_ (虚拟主机 _default_):443>
                ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log 合并了 SSLEngine on SSLCertificateFile /etc/apache2/ssl/bujarra.crt SSLCertificateKeyFile /etc/apache2/ssl/bujarra.key SSLProxyEngine on SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off SSLProxyCheckPeerExpire off
                <地点 /鳄梨酱/>
                    允许顺序,拒绝允许来自所有 ProxyPass http://DIRECCION_IP_GUACAMOLE:8080/鳄梨酱/ flushpackets=在 ProxyPassReverse http 上://DIRECCION_IP_GUACAMOLE:8080/调味 酱/
                </位置>
                SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
                <文件匹配 "\.(CGI 电脑成像|shtml|Phtml|菲律宾语)$">
                                SSLOptions +StdEnvVars
                </文件匹配>
                <目录 /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </目录>
        </虚拟主机>
</IfModule 模块>

我们重新启动 Apache 并指示它在每次我启动机器时启动:

sudo systemctl restart apache2 sudo systemctl enable apache2

除了尝试,别无他法! 我们打开浏览器: https://DIRECCION_IP_PROXY/鳄梨酱/ 我们的部署应该更安全一些.

一如既往,希望您觉得它们有趣, 但这些类型的解决方案非常适合小型企业, 微型中小企业, 阻止他们能够将 RDP 直接发布到 Internet. 通过这种类型的解决方案,我们打开了一个到 Internet 的单一端口, 443TCP, 其余的都关门了. 简单快捷, 在某一时刻,我们有一个工具允许在没有资源的公司中进行远程办公, 学习中心, 院校…

拥抱!

推荐文章

作者

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, 请随时与我联系, 我会尽我所能帮助你, 分享就是生活 ;) . 享受文档!!!