网站搜索

在 Ubuntu 中安装 Guacamole 以进行远程 Linux/Windows 访问


作为系统管理员,您可能会发现自己(现在或将来)在 WindowsLinux 共存的环境中工作。

众所周知,一些大公司更喜欢(或必须)在 Windows 机器上运行某些生产服务,而在 Linux 服务器上运行其他服务。

如果这是您的情况,您将张开双臂欢迎本指南(否则请继续,至少确保将其添加到您的书签中)。

在本文中,我们将向您介绍guacamole,这是一个由Tomcat支持的远程桌面网关,只需安装在中央服务器上。

鳄梨酱将提供一个基于网络的控制面板,使您可以快速从一台机器切换到另一台机器 - 所有这些都在同一个网络浏览器窗口中进行。

测试环境

在本文中,我们使用了以下机器。我们将在 Ubuntu 盒子中安装 Guacamole,并使用它通过远程桌面协议 访问 Windows 10 盒子( RDP)和使用 SSH 网络协议的 RHEL 盒子:

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

也就是说,让我们开始吧。

在 Ubuntu 中安装鳄梨酱服务器

1.在安装guacamole之前,您需要首先处理它的依赖项。

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. 下载并解压 tarball。截至2021 年 2 月上旬Guacamole 的最新版本为 1.3.0。您可以参考鳄梨酱下载页面来查找给定时间的最新版本。

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.编译软件。

cd guacamole-server-1.3.0/
./configure

正如预期的那样,配置将检查您的系统是否存在所需的依赖项以及支持的通信协议(如突出显示的方框中所示,远程桌面协议 > (RDP) 和 SSH 由之前安装的依赖项支持)。

如果一切按预期进行,完成后您应该会看到这一点(否则,请确保安装了所有必要的依赖项):

如上图中最后一行所示,运行 makemake install 来编译程序:

make 
sudo make install

4.更新已安装库的缓存。

sudo ldconfig 

并按Enter

在 Ubuntu 中安装鳄梨酱客户端

完成上述步骤后,鳄梨酱服务器就已经安装完毕。以下说明现在将帮助您设置 guacd (将 Javascript 与 RDP 或 SSH 等通信协议集成的代理守护进程)和 guacamole.war (客户端),构成将呈现给您的最终 HTML5 应用程序的组件。

请注意,两个组件(鳄梨酱服务器客户端)需要安装在同一台计算机上 - 无需在您想要的计算机上安装所谓的客户端连接到)。

要下载客户端,请按以下步骤操作:

5. 下载 Web 应用程序存档并将其名称更改为 guacamole.war

注意:根据您的发行版,Tomcat 库目录可能位于/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. 创建配置文件 (/etc/guacamole/guacamole.properties)。此文件包含 Guacamole 连接到 guacd 的说明:

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

将以下内容插入/etc/guacamole/guacamole.properties。请注意,我们正在引用将在下一步中创建的文件 (/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

并为 Tomcat 创建一个符号链接以便能够读取该文件:

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

7. Guacamole 使用 user-mapping.xml,创建此文件来定义允许哪些用户对 Guacamole Web 界面进行身份验证(在 <authorize> 标签)以及它们可以使用哪些连接(在 <connection> 标签之间):

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

以下用户映射向使用密码 howtoing01 的用户 howtoing 授予对 Guacamole Web 界面的访问权限。然后,在SSH连接中,我们需要输入一个有效的用户名来登录RHEL框(当Guacamole启动连接时,系统会提示您输入相应的密码)。

对于 Windows 10 框,无需执行此操作,因为我们将通过 RDP 看到登录屏幕。

要获取密码 howtoing01 的 md5 哈希值,请输入以下命令:

printf '%s' "tecmint01" | md5sum

然后将命令的输出插入到 <authorize> 标记内的密码字段中:

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

由于所有包含敏感信息的文件都是如此,因此限制权限并更改 user-mapping.xml 文件的所有权非常重要:

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

启动 Tomcat 和 guacd。

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

启动鳄梨酱 Web 界面

8. 要访问 Guacamole Web 界面,请启动浏览器并将其指向 http://server:8080/guacamole,其中服务器是您的主机名或 IP 地址服务器(在我们的例子中是http://192.168.0.100:8080/guacamole)并使用之前给出的凭据登录(用户名:howtoing,密码:howtoing01):

9. 单击“登录”后,您将进入管理界面,您将在其中看到用户 howtoing 有权访问的连接列表,根据 user-映射.xml:

10. 继续并单击 RHEL 8 框以 gacanepa(连接定义中指定的用户名)身份登录。

请注意连接源如何设置为 192.168.0.100(Guacamole 服务器的 IP),无论您用来打开 Web 界面的计算机的 IP 地址如何:

11.如果您想关闭连接,请输入exit并按Enter。系统将提示您返回主界面(Home)、重新连接或从Guacamole注销:

12. 现在是时候尝试远程桌面连接到 Windows 10 了:

恭喜!现在,您可以从网络浏览器中访问 Windows 10 计算机和 RHEL 8 服务器。

概括

在本文中,我们解释了如何安装和配置 Guacamole 以允许通过 RDP 和 SSH 访问远程计算机。官方网站提供了大量文档,帮助您使用其他协议(例如 VNC)和其他身份验证机制(例如基于 DB 的...)设置访问。

与往常一样,如果您对本文有任何疑问或建议,请随时给我们留言。我们也期待听到您的成功故事。