在CentOS 8上安装和使用Guacamole远程桌面
Apache Guacamole是无客户端远程桌面网关,它支持标准协议,例如VNC,RDP和SSH。多亏了HTML5,在服务器上安装了鳄梨调味酱之后,只需使用Web浏览器即可访问桌面。
Guacamole分为两部分:guacamole-server,提供guacd代理和相关的库,以及guacamole-client,提供由servlet容器提供服务的客户端。在大多数情况下,我们唯一需要构建的资源就是guacamole-server,并且从项目下载最新的guacamole.war就足以为客户提供。信誉:Guacamole
服务器准备
Apache Guacamole具有许多依赖关系,我们将在此步骤中处理大多数依赖关系。我们会注意到,我使用了Devel存储库中的某些软件包,因为从官方存储库中获取它们是一个挑战。一旦安装了我们需要的软件包,请禁用它。
sudo dnf update sudo dnf install -y vim wget unzip make cmake wget gcc zlib-devel compat-openssl10 sudo dnf config-manager --set-enabled PowerTools sudo dnf config-manager --enable Devel sudo dnf -y install cairo-devel libuv-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool uuid-devel freerdp-devel pango-devel libvncserver-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel libssh2-devel libwebsockets-devel libtheora opus lame-libs sudo dnf config-manager --disable Devel
从源代码安装其他库
有一些库在存储库上尚不可用。它们包括libtelnet
wget https://github.com/seanmiddleditch/libtelnet/releases/download/0.23/libtelnet-0.23.tar.gz tar -xf libtelnet-0.23.tar.gz cd libtelnet-0.23 ./configure make && sudo make install
安装Apache Tomcat
对准备工作进行排序后,请运行以下命令以安装可为Guacamole Java客户端和所有必需的依赖项提供服务的Apache Tomcat Javaservelet容器。由于它是Java语言,因此我们首先安装Java。
在CentOS 8上安装Java
运行以下命令以获取java-11-openjdk。
sudo yum install java-11-openjdk-devel
创建一个文件并设置Java环境变量。
$sudo vim /etc/profile.d/java11.sh export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac)))) export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
提供文件源以开始使用它而无需注销。
source /etc/profile.d/java11.sh
在CentOS 8上安装Apache Tomcat
要安装Apache Tomcat,请遵循我们有关如何在CentOS 8上安装Apache Tomcat 9的详细指南。由于我们已经安装了Java安装部件,因此请忽略它。
从源代码构建鳄梨酱服务器
guacamole-server包含Guacamole连接到远程桌面所需的所有本机服务器端组件。它提供了所有其他本机组件都依赖的通用C库libguac,以及每种受支持协议的独立库,以及代理守护程序guacd(鳄梨酱的核心)。
下载guacamole-server的最新稳定版本
cd ~ wget http://mirror.cc.columbia.edu/pub/software/apache/guacamole/1.2.0/source/guacamole-server-1.2.0.tar.gz
解压缩下载的档案。
tar -xvf guacamole-server-1.2.0.tar.gz
转到提取的目录。
cd guacamole-server-1.2.0
配置构建环境。运行configure将确定系统上可用的库,并将根据实际安装的内容选择适当的组件进行构建。
./configure --with-init-dir=/etc/init.d
然后编译鳄梨酱服务器。编译所有组件时,相当多的输出将在屏幕上滚动
make
一切完成后,剩下要做的就是执行sudo make install来安装已构建的组件,然后输入ldconfig来更新已安装库的系统缓存。
sudo make install
更新已安装库的系统缓存。
sudo ldconfig
刷新systemd来找到/etc/init.d/目录中安装的guacd(鳄梨酱代理守护程序)服务。
sudo systemctl daemon-reload
重新启动后,启动guacd服务。
sudo systemctl start guacd sudo systemctl enable guacd
要让脸上露出微笑,请检查其状态。
$systemctl status guacd ● guacd.service - LSB: Guacamole proxy daemon Loaded: loaded (/etc/rc.d/init.d/guacd; generated) Active: active (running) since Thu 2017-08-27 10:26:04 UTC; 43s ago Docs: man:systemd-sysv-generator(8) Process: 51357 ExecStart=/etc/rc.d/init.d/guacd start (code=exited, status=0/SUCCESS) Tasks: 1 (limit: 11070) Memory: 11.9M CGroup: /system.slice/guacd.service └─51360 /usr/local/sbin/guacd -p /var/run/guacd.pid
安装Guacamole Web应用程序
Guacamole的部署涉及两个关键文件:guacamole.war(它是包含Web应用程序的文件)和guacamole.properties,它是Guacamole的主要配置文件。推荐使用Guacamole的方法是将这些文件放置在标准位置,然后创建指向它们的符号链接,以便Tomcat可以找到它们
guacamole-client包含Guacamole的所有Java和Maven组件(guacamole,guacamole-common,guacamole-ext和guacamole-common-js)。这些组件最终构成了将为连接到服务器的用户提供HTML5鳄梨调味酱客户端的Web应用程序。此Web应用程序将代表已连接的用户连接到guacamole服务器的一部分guacd,以便为他们提供他们有权访问的任何远程桌面。
在CentOS 8上安装Guacamole Client
鳄梨酱客户端可作为二进制文件使用。要安装它,只需从Guacamole二进制文件下载页面中将其拉出,如下所示,将其复制到/etc/guacamole /目录并同时重命名即可。
cd ~ sudo mkdir /etc/guacamole wget https://downloads.apache.org/guacamole/1.2.0/binary/guacamole-1.2.0.war -O /etc/guacamole/guacamole.war
要安装Guacamole客户端二进制文件,请创建guacamole客户端到Tomcat webapps目录的符号链接,如下所示;
sudo ln -s /etc/guacamole/guacamole.war /usr/share/tomcat/webapps/
配置鳄梨酱服务器
安装Guacamole服务器守护程序后,我们需要定义如何在/etc/guacamole/guacamole.properties配置文件下将Guacamole客户端连接到Guacamole服务器(guacd)。在此配置中,我们只需定义Guacamole服务器的主机名,端口,用户映射配置文件,身份验证提供程序。
GUACAMOLE_HOME是Guacamoles配置目录的名称,默认情况下位于/etc/guacamole。所有配置文件,扩展名等都位于此目录中。
创建GUACAMOLE_HOME环境变量
echo "GUACAMOLE_HOME=/etc/guacamole" | sudo tee -a /etc/default/tomcat
创建/etc/guacamole/guacamole.properties配置文件并填充,如下所示:
$sudo vim /etc/guacamole/guacamole.properties guacd-hostname: localhost guacd-port: 4822 user-mapping: /etc/guacamole/user-mapping.xml auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
配置如上所示后,保存它,并将Guacamole配置目录链接到Tomcat servlet目录,如下所示。
sudo ln -s /etc/guacamole /usr/share/tomcat/.guacamole
设置鳄梨酱身份验证方法
Guacamoles的默认身份验证方法从一个名为user-mapping.xml的文件读取所有用户和连接。在此文件中,我们需要定义允许访问Guacamole Web UI的用户,要连接的服务器以及连接方法。
为将用于登录Guacamole Web用户界面的用户生成密码的MD5哈希。相应地替换密码。
$echo -n StrongPassword | openssl md5 (stdin)= 0f6e4a1df0cf5ee97c2066953bed21b2
准备好密码后,创建带有以下示例内容的用户映射文件。我们可以根据环境放置任何主机名,用户名和主机。
$sudo vim /etc/guacamole/user-mapping.xml <user-mapping> <!-- Per-user authentication and config information --> <!-- A user using md5 to hash the password guacadmin user and its md5 hashed password below is used to login to Guacamole Web UI--> <authorize username="tech" password="0f6e4a1df0cf5ee97c2066953bed21b2" encoding="md5"> <!-- First authorized Remote connection --> <connection name="RHEL 7 Maipo"> <protocol>ssh</protocol> <param name="hostname">10.10.10.10</param> <param name="port">22</param> </connection> <!-- Second authorized remote connection --> <connection name="Windows Server 2019"> <protocol>rdp</protocol> <param name="hostname">10.10.10.5</param> <param name="port">3389</param> <param name="username">tech</param> <param name="ignore-cert">true</param> </connection> </authorize> </user-mapping>
好东西。完成所有操作后,重新启动Tomcat和guacd以实现所做的更改。
sudo systemctl restart tomcat guacd
如果我们正在运行防火墙并且尚未允许端口,那么可以按照以下方法尽快这样做:
sudo firewall-cmd --permanent --add-port={4822,8080}/tcp sudo firewall-cmd --reload
获取鳄梨调味酱鳄梨酱Web界面
到目前为止,我们已经很好地设置了所有内容,因此我们应该准备好访问我们一直在努力提出的应用程序。要访问Guacamoles Web界面,只需将浏览器指向http://ip-or-domain-name:8080/guacamole,然后会出现如下所示的登录屏幕:
如我们所见,登录时已经加载了我们在配置文件中建立的连接。
只需单击我们想要连接的那个,即可通过SSH或者RDP提示我们输入用户名和密码。
输入服务器密码