在 Ubuntu 中安装 Guacamole 以进行远程 Linux/Windows 访问
作为系统管理员,您可能会发现自己(现在或将来)在 Windows 和 Linux 共存的环境中工作。
众所周知,一些大公司更喜欢(或必须)在 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 由之前安装的依赖项支持)。
如果一切按预期进行,完成后您应该会看到这一点(否则,请确保安装了所有必要的依赖项):
如上图中最后一行所示,运行 make
和 make 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 的...)设置访问。
与往常一样,如果您对本文有任何疑问或建议,请随时给我们留言。我们也期待听到您的成功故事。