在Ubuntu 21.04上安装Apache Guacamole

在本指南中,我们将学习如何安装 阿帕奇鳄梨酱 在Ubuntu 21.04上。 Apache Guacamole是基于HTML5 Web的无客户端远程桌面网关,可通过Web浏览器远程访问服务器和桌面。它支持标准协议,例如VNC,RDP和SSH。

在Ubuntu 21.04上安装Apache Guacamole

鳄梨调味酱由两部分组成;

  • guacamole-server,它提供guacd代理以及Guacamole连接到远程桌面所需的所有本机服务器端组件。
  • guacamole-client 它提供了由servlet容器提供服务的客户端,通常是 Tomcat

您需要安装这两个组件来设置Apache Guacamole基于Web的远程桌面客户端。

在Ubuntu 21.04上安装Guacamole Server

运行系统更新

确保系统软件包缓存是最新的;

apt update

安装所需的构建工具

要安装guacamole-server,您需要从源代码构建它。因此,这要求您必须先安装必需的构建工具,然后才能开始构建guacamole-server组件。

apt install -y build-essential libcairo2-dev libjpeg-turbo8-dev libpng-dev 
libtool-bin libossp-uuid-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev 
freerdp2-dev libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev 
libssl-dev libvorbis-dev libwebp-dev

有关这些依赖工具的全面说明,请参见 所需的依赖项 部分。

在Ubuntu 21.04上构建Guacamole服务器

要构建guacamole服务器,请从以下位置下载最新的源存档tarball: 鳄梨酱发布页面Apache鳄梨酱1.3.0 是撰写本文时的最新发行版。

您只需运行以下命令即可下载Apache Guacamole 1.3.0。

wget https://downloads.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz

下载完成后,解压缩源tarball。

tar xzf guacamole-server-1.3.0.tar.gz

导航到鳄梨酱服务器源代码目录;

cd guacamole-server-1.3.0

跑过 configure 脚本来检查是否缺少任何必需的依赖性,并使Guacamole服务器适应您的系统。

./configure --with-init-dir=/etc/init.d

有关更多配置选项,请运行, ./configure --help

...
------------------------------------------------
guacamole-server version 1.3.0
------------------------------------------------

   Library status:

     freerdp2 ............ yes
     pango ............... yes
     libavcodec .......... yes
     libavformat.......... yes
     libavutil ........... yes
     libssh2 ............. yes
     libssl .............. yes
     libswscale .......... yes
     libtelnet ........... yes
     libVNCServer ........ yes
     libvorbis ........... yes
     libpulse ............ no
     libwebsockets ....... no
     libwebp ............. yes
     wsock32 ............. no

   Protocol support:

      Kubernetes .... no
      RDP ........... yes
      SSH ........... yes
      Telnet ........ yes
      VNC ........... yes

   Services / tools:

      guacd ...... yes
      guacenc .... yes
      guaclog .... yes

   FreeRDP plugins: /usr/lib/x86_64-linux-gnu/freerdp2
   Init scripts: /etc/init.d
   Systemd units: no

Type "make" to compile guacamole-server.

注意走出 configure 脚本。

在Ubuntu 21.04上编译并安装Guacamole Server;

make
make install

接下来,运行 ldconfig 命令创建必要的链接并缓存到在鳄梨酱服务器目录中找到的最新共享库。

ldconfig

在Ubuntu 21.04上运行Guacamole-Server

重新加载systemd配置文件,并在安装后启动并启用guacd(Guacamole Daemon)在启动时运行。

systemctl daemon-reload
systemctl start guacd
systemctl enable guacd

检查状态;

systemctl status guacd
● guacd.service - LSB: Guacamole proxy daemon
     Loaded: loaded (/etc/init.d/guacd; generated)
     Active: active (running) since Sat 2021-03-27 05:12:24 UTC; 1s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 22887 ExecStart=/etc/init.d/guacd start (code=exited, status=0/SUCCESS)
      Tasks: 1 (limit: 1042)
     Memory: 9.9M
     CGroup: /system.slice/guacd.service
             └─22891 /usr/local/sbin/guacd -p /var/run/guacd.pid

Mar 27 05:12:24 hirsute systemd[1]: Starting LSB: Guacamole proxy daemon...
Mar 27 05:12:24 hirsute guacd[22888]: Guacamole proxy daemon (guacd) version 1.3.0 started
Mar 27 05:12:24 hirsute guacd[22887]: Starting guacd:
Mar 27 05:12:24 hirsute guacd[22888]: guacd[22888]: INFO:        Guacamole proxy daemon (guacd) version 1.3.0 started
Mar 27 05:12:24 hirsute guacd[22887]: SUCCESS
Mar 27 05:12:24 hirsute guacd[22891]: Listening on host 127.0.0.1, port 4822
Mar 27 05:12:24 hirsute systemd[1]: Started LSB: Guacamole proxy daemon.

安装Tomcat Servlet

Apache Tomcat用于为通过Web浏览器连接到鳄梨酱服务器的用户提供鳄梨酱客户端内容。要安装Tomcat,请运行以下命令;

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

Tomcat9已启动,并可以在安装后在系统启动时运行。通过运行以下命令检查状态;

systemctl status tomcat9.service
● tomcat9.service - Apache Tomcat 9 Web Application Server
     Loaded: loaded (/lib/systemd/system/tomcat9.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-03-27 05:17:40 UTC; 2min 40s ago
       Docs: https://tomcat.apache.org/tomcat-9.0-doc/index.html
    Process: 24611 ExecStartPre=/usr/libexec/tomcat9/tomcat-update-policy.sh (code=exited, status=0/SUCCESS)
   Main PID: 24615 (java)
      Tasks: 29 (limit: 1042)
     Memory: 72.8M
     CGroup: /system.slice/tomcat9.service
             └─24615 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/var/lib/tomcat9/conf/logging.properties -Djava.util.logging.manager=org.apache.jul>

Mar 27 05:17:45 hirsute tomcat9[24615]: Deployment of deployment descriptor [/etc/tomcat9/Catalina/localhost/host-manager.xml] has finished in [1,800] ms
Mar 27 05:17:45 hirsute tomcat9[24615]: Deploying deployment descriptor [/etc/tomcat9/Catalina/localhost/manager.xml]

默认情况下,Apache Tomcat在端口8080 / tcp上进行侦听;

ss -altnp | grep 80
LISTEN 0      100                *:8080            *:*    users:(("java",pid=24615,fd=37))

要允许外部访问serverlet,请在UFW上打开serverlet端口8080 / tcp。

ufw allow 8080/tcp

在Ubuntu 21.04上安装Guacamole Client

guacamole-client contains提供了Web应用程序,该应用程序将为连接到您服务器的用户提供HTML5 Guacamole客户端。然后,Web应用程序将代表已连接的用户连接到guacd,以便为他们提供他们有权访问的任何远程桌面。

创建鳄梨酱配置目录;

mkdir /etc/guacamole

下载鳄梨调味酱客户端二进制文件

鳄梨酱客户端可以从源代码或现成的二进制文件中安装。本演示中使用二进制安装。

从下载下载Guacamole-client 鳄梨酱发布页面 适用于各自的最新版本(在撰写本文时为v1.3.0),并将其存储在上面创建的配置目录中。

要下载当前的发行版v1.3.0,只需运行以下命令即可;

wget https://downloads.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war -O /etc/guacamole/guacamole.war

创建鳄梨酱客户端到Tomcat webapps目录的符号链接,如下所示;

ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/

重新启动Tomcat以部署新的Web应用程序;

systemctl restart tomcat9

也重新启动guacd守护程序;

systemctl restart guacd

在Ubuntu 21.04上配置Apache Guacamole

鳄梨酱有两个主要的配置文件:

  • /etc/guacamole 这是由 GUACAMOLE_HOME 环境变量
  • /etc/guacamole/guacamole.properties 这是Guacamole及其扩展名使用的主要配置文件。

也有鳄梨调味酱扩展名和库配置。您需要为这些配置创建目录。

mkdir /etc/guacamole/{extensions,lib}

设置guacamole主目录环境变量并将其添加到 /etc/default/tomcat9 配置文件。

echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9

配置鳄梨酱服务器连接

定义鳄梨酱如何连接到 guacd,创建 guacamole.properties 文件下 /etc/guacamole 目录包含以下内容。

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目录,如下所示。

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

配置鳄梨调味酱身份验证方法

鳄梨酱的默认身份验证方法从一个名为的文件读取所有用户和连接 user-mapping.xml

在此文件中,您需要定义 用户被允许访问Guacamole Web UI 要连接的服务器连接方法

支持其他身份验证方法,但超出了本教程的范围。

首先,为要用于登录Guacamole Web用户界面的用户生成密码的MD5哈希。 相应地替换您的密码;

echo -n password | openssl md5

输出;

(stdin)= 5f4dcc3b5aa765d61d8327deb882cf99

或者

printf '%s' password | md5sum

输出;

5f4dcc3b5aa765d61d8327deb882cf99  -

请务必更换 密码 使用您的强密码。

接下来,创建默认的用户身份验证文件, user-mapping.xml 具有以下内容。

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="guacadmin"
            password="5f4dcc3b5aa765d61d8327deb882cf99"
            encoding="md5">

        <!-- First authorized Remote connection -->
        <connection name="Ubuntu 20.04 Server SSH">
            <protocol>ssh</protocol>
            <param name="hostname">192.168.57.3</param>
            <param name="port">22</param>
        </connection>

        <!-- Second authorized remote connection -->
        <connection name="Windows 7 RDP">
            <protocol>rdp</protocol>
            <param name="hostname">192.168.56.103</param>
            <param name="port">3389</param>
            <param name="username">koromicha</param>
            <param name="ignore-cert">true</param>
        </connection>

    </authorize>

</user-mapping>

如果您未在文件中指定用户名和密码,则在尝试登录时会提示您提供用户名和密码,我认为这样做有些安全。

如果需要在配置文件中显式定义用户名和密码,请添加参数;

<param name="username">USERNAME</param>
<param name="password">PASSWORD</param>

保存并退出配置文件。

重新启动Tomcat和guacd以完成更改。

systemctl restart tomcat9 guacd

请务必检查系统日志, /var/log/syslog 或者 /var/log/tomcat9/CATALINA-* 对于任何问题。

通过浏览访问Apache Guacamole

现在已安装Apache Guacamole服务器。您可以使用以下地址从网络浏览器访问它 http://server-IP:8080/guacamole

使用您为其上面的密码生成MD5哈希的用户的凭据。

成功登录后,您将进入Apache Guacamole Web仪表板,并且应该能够看到添加的连接。

在Ubuntu 21.04上安装Apache Guacamole

单击一个连接以命名以启动远程登录。

例如,要SSH进入我的Ubuntu服务器,只需单击连接名称。这将为您提供登录提示;

在Ubuntu 21.04上安装Apache Guacamole

要通过RDP登录Windows 7,只需单击Windows 7;然后单击“确定”。

sudo apt自动删除

然后你去。输入密码,然后转到桌面。

现在,您可以为鳄梨酱添加更多连接。这标志着我们在Ubuntu 21.04上安装Apache Guacamole的指南的结尾。

相关指南;

使用Nginx反向代理配置Guacamole SSL / TLS

如何通过鳄梨调味酱启用RDP / SSH文件传输

进一步阅读

鳄梨酱用户手册

其他教程

在Kali Linux 2020上安装NoMachine远程桌面工具

在Ubuntu 20.04上安装和设置Chrome远程桌面

在Ubuntu 20.04上安装Apache Guacamole

Sidebar