在Debian 10上安装Apache Guacamole

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

在Debian 10上安装Apache Guacamole

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

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

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

在Debian 10上安装Guacamole Server

运行系统更新

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

apt update

安装所需的构建工具

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

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

接下来,安装FreeRDP库,以通过鳄梨酱支持RDP。您需要从Debian Backport仓库安装FreeRDP库。否则,如果从默认的Debian存储库安装,则在编译Guacamole服务器时可能会遇到这样的错误;

configure: error: 
  --------------------------------------------
   You are building against a development version of FreeRDP. Non-release
   versions of FreeRDP may have differences in behavior that are impossible to
   check for at build time. This may result in memory leaks or other strange
   behavior.

   *** PLEASE USE A RELEASED VERSION OF FREERDP IF POSSIBLE ***

   If you are ABSOLUTELY CERTAIN that building against this version of FreeRDP
   is OK, rerun configure with the --enable-allow-freerdp-snapshots
  --------------------------------------------

因此,要克服此问题,请安装Backport仓库并安装FreeRDP库。

echo "deb http://deb.debian.org/debian buster-backports main" > /etc/apt/sources.list.d/backports.list
apt update
apt install freerdp2-dev/buster-backports

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

在Debian 10上构建鳄梨酱服务器

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

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

为了简化操作,只需在终端上为当前稳定发行版设置一个变量。

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

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

tar xzf guacamole-server-$VER.tar.gz

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

cd guacamole-server-$VER

跑过 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 脚本。

在Debian 10上编译并安装Guacamole Server;

make
make install

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

ldconfig

在Debian 10上运行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 16:18:30 EAT; 6s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 20717 ExecStart=/etc/init.d/guacd start (code=exited, status=0/SUCCESS)
    Tasks: 1 (limit: 2359)
   Memory: 10.4M
   CGroup: /system.slice/guacd.service
           └─20720 /usr/local/sbin/guacd -p /var/run/guacd.pid

Mar 27 16:18:29 debian systemd[1]: Starting LSB: Guacamole proxy daemon...
Mar 27 16:18:30 debian guacd[20718]: Guacamole proxy daemon (guacd) version 1.3.0 started
Mar 27 16:18:30 debian guacd[20717]: Starting guacd: guacd[20718]: INFO:        Guacamole proxy daemon (guacd) version 1.3.0 started
Mar 27 16:18:30 debian guacd[20717]: SUCCESS
Mar 27 16:18:30 debian systemd[1]: Started LSB: Guacamole proxy daemon.
Mar 27 16:18:30 debian guacd[20720]: Listening on host 127.0.0.1, port 4822

安装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 16:24:56 EAT; 16s ago
     Docs: https://tomcat.apache.org/tomcat-9.0-doc/index.html
 Main PID: 22522 (java)
    Tasks: 37 (limit: 2359)
   Memory: 100.7M
   CGroup: /system.slice/tomcat9.service
           └─22522 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/var/lib/tomcat9/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.C

Mar 27 16:25:03 debian tomcat9[22522]: Deployment of deployment descriptor [/etc/tomcat9/Catalina/localhost/host-manager.xml] has finished in [5,851] ms
Mar 27 16:25:03 debian tomcat9[22522]: 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)。

ufw allow 8080/tcp

在Debian 10上安装Guacamole客户端

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

创建鳄梨酱配置目录;

mkdir /etc/guacamole

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

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

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

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

同样,我们使用相同的客户端版本变量。

VER=1.3.0
wget https://downloads.apache.org/guacamole/$VER/binary/guacamole-$VER.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

在Debian 10上配置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仪表板,并且应该能够看到添加的连接。

在Debian 10上安装Apache Guacamole

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

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

在Debian 10上安装Apache Guacamole

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

sudo apt自动删除

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

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

相关指南;

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

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

其他教程

在Ubuntu 21.04上安装Apache Guacamole

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

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

在Ubuntu 20.04上安装Apache Guacamole

Sidebar