在CentOS 8上安装和使用Guacamole远程桌面

时间:2020-02-23 14:31:11  来源:igfitidea点击:

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提示我们输入用户名和密码。

输入服务器密码