安装Guacamole的详细步骤
步骤1:服务器准备
Apache Guacamole有很多依赖项,我们将在这一步中处理大部分依赖项。让我们开始安装我们的Guacamole服务器和我们需要的每一个依赖项。按以下命令安装:
sudo apt update
sudo apt install -y gcc nano vim curl wget g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin libossp-uuid-dev \
libavcodec-dev libavformat-dev libavutil-dev libswscale-dev build-essential libpango1.0-dev libssh2-1-dev libvncserver-dev \
libtelnet-dev libpulse-dev libvorbis-dev libwebp-dev
接下来,安装FreeRDP2:
我们将安装remmina PPA中托管的FreeRDP2版本如下:
sudo add-apt-repository ppa:remmina-ppa-team/remmina-next-daily
sudo apt update
sudo apt install freerdp2-dev freerdp2-x11 -y
安装OpenSL 1.1.l。这是因为最新的OpenSL已经放弃了Guacamole仍然使用的一些功能。如果您的OpenSSL高于3.0.我们建议您卸载它,然后执行以下操作:
wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz -P ~
sudo tar -xzf openssl-1.1.1l.tar.gz
cd ~/openssl-1.1.1l
./config
make
sudo make install
sudo cp /usr/local/bin/openssl /usr/bin
sudo ldconfig
确认OpenSL的安装:
$ openssl version
OpenSSL 1.1.1l
Guacamole对我们的包和库的要求应该完成,现在我们应该开始安装它了。
步骤2:安装Apache Tomcat
在此步骤中,我们将安装Apache Tomcat Java Servlet容器将运行Guacamole Java 为Guacamole提供war文件 Java客户端提供服务。因为是Java,首先要安装Java:
sudo apt install openjdk-17-jdk -y
安装后,您可以检查安装版本
$ java --version
openjdk 17.0.3
OpenJDK Runtime Environment (build 17.0.3+7-Ubuntu-0ubuntu0.22.04.1
OpenJDK 64-Bit Server VM (build 17.0.3+7-Ubuntu-0ubuntu0.22.04.1 mixed mode, sharing)
1、tomcat系统用户创建tomcat系统
建议使用系统中除root用户以外的用户操作应用程序。对于tomcat,我们将创建一个用于操作tomcat应用程序的用户。
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
2、获取Apache Tomcat
您可以从官方Tomcat下载页面获得Apache Tomcat二进制发行版。在选择本文时,新的稳定版本是9.0.x:
VER="9.0.63"
wget https://downloads.apache.org/tomcat/tomcat-9/v${VER}/bin/apache-tomcat-${VER}.tar.gz -P ~
下载完成后,继续将tar文件解压缩到/opt/tomcat目录如下:
sudo mkdir -p /opt/tomcat
sudo tar -xzf apache-tomcat-${VER}.tar.gz -C /opt/tomcat/
sudo mv /opt/tomcat/apache-tomcat-${VER} /opt/tomcat/tomcatapp
因为tomcat用户将运行apachee tomcat,所以我们必须给它一个访问/opt/tomcat目录所需的权限。操作以下命令以实现此操作:
sudo chown -R tomcat: /opt/tomcat
然后使/opt/tomcat/tomcatapp/bin目录中的所有shell脚本都可以执行:
sudo find /opt/tomcat/tomcatapp/bin/ -type f -iname "*.sh" -exec chmod +x {} \;
接下来,我们准备添加tomcat的systemd服务,这样我们就可以像服务器中的其他服务一样轻松地管理它的生命周期。要做到这一点,我们必须创建一个新的文件,并填写正确的配置,如下所示,操作命令和内容如下:
$ sudo vim /etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"
Environment="CATALINA_BASE=/opt/tomcat/tomcatapp"
Environment="CATALINA_HOME=/opt/tomcat/tomcatapp"
Environment="CATALINA_PID=/opt/tomcat/tomcatapp/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/tomcatapp/bin/startup.sh
ExecStop=/opt/tomcat/tomcatapp/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
正如你所看到的,我们的新systemd文件是干净的。保存它,然后重新加载保护程序,以便Systemd保护程序读取它:
sudo systemctl daemon-reload
然后启动服务:
sudo systemctl enable --now tomcat
操作如下命令:
$ systemctl status tomcat
返回信息大致如下:
tomcat.service - Tomcat 9 servlet container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
Active: active (running)
在默认情况下,Tomcat侦听端口8080,我们需要通过允许防火墙上的端口远程访问应用程序。如下所示:
sudo ufw allow 8080/tcp
步骤3:Guacamole服务器从源代码构建
guacamole服务器包含guacamole连接到远程桌面所需的所有本地服务器端组件。它提供了一个通用的C库libguac,所有其他机器组件都依赖于它,每个支持协议的独立库,以及代理保护程序guacd,guacamole的核心。
以下是下载命令:
wget https://downloads.apache.org/guacamole/1.4.0/source/guacamole-server-1.4.0.tar.gz -P ~
下载后提取源tarballll:
tar xzf ~/guacamole-server-1.4.0.tar.gz
更改为guacamole服务器源代码目录:
cd ~/guacamole-server-1.4.0
然后执行脚本配置,检查是否缺乏必要的依赖项,并使Guacamole服务器适应您的系统:
./configure --disable-guacenc --with-init-dir=/etc/init.d
上述命令将导致大量输出。当它结束时,您应该看到以下输出,该输出包含yes:RDP、SSH、Telnet和VNC:
之后,只需按照最后一条消息中的建议操作make命令:
make
给它一些时间,让它做它的事。完成后,按以下步骤安装:
sudo make install
要完成这一切,请运行ldconfig命令创建必要的链接并将其缓存到guaa在camole服务器目录中找到的最新共享库:
sudo ldconfig
刷新systemd,查找安装/etc/init.d目录中的guacd(guacamole代理守护程序)服务:
sudo systemctl daemon-reload
重新加载后,启动并启用guacd服务:
sudo systemctl start guacd
sudo systemctl enable guacd
请检查其状态:
$ systemctl status guacd
步骤4:Guacamole安装安装 网络应用程序
设置Guacamole的推荐方法是将这些文件放置在标准位置,然后创建指向它们的符号链接,以便Tomcat找到它们。
guacamole客户端包含guacamole的所有Java和Maven组件(guacamole、guacamole common、guacamle ext和guacamole common js)。这些组件最终构成了web应用程序,它将为连接到服务器的用户提供HTML5 Guacamole客户端。这个web应用程序将代表连接到guacamole服务器的用户连接到guacd的一部分,为他们提供任何有权访问的远程桌面。
1、Ubuntu 22.04 Guacamole客户端安装在LTS上
Guacamole客户端提供二进制文件。要安装它,只需从下面的Guacamole二进制文件下载页面中取出,复制到/etc/Guacamole/目录并同时重命名:
sudo mkdir /etc/guacamole
wget https://downloads.apache.org/guacamole/1.4.0/binary/guacamole-1.4.0.war -P ~
sudo mv ~/guacamole-1.4.0.war /etc/guacamole/guacamole.war
要安装Guacamole客户端二进制文件,请创建Guacamole客户端到Tomcatt webaps目录的符号链接如下所示:
sudo ln -s /etc/guacamole/guacamole.war /opt/tomcat/tomcatapp/webapps/
步骤5:Guacamole服务器配置
安装Guacamole服务器保护程序后,您需要定义Guacamole客户端如何连接到/etc/GuacamoleGuacamole下的Guacamole/ server(guacd)。属性配置文件。在此配置中,您需要简单定义Guacamole服务器的主机名称、端口、用户映射配置文件和身份验证程序。
GUACAMOLE_HOME是GUACAMOLE配置目录的名称,默认位于/etc/GUACAMOLE。所有配置文件和扩展名都位于目录中。
创建GUACAMOLE_HOME环境变量:
echo "GUACAMOLE_HOME=/etc/guacamole" | sudo tee -a /etc/default/tomcat
echo "export GUACAMOLE_HOME=/etc/guacamole" | sudo tee -a /etc/profile
创建/etc/guacamole/guacamole。属性配置文件及填充如下:
$ 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配置目录保存并链接到Tomcatservlet目录,如下所示:
sudo ln -s /etc/guacamole /opt/tomcat/tomcatapp/.guacamole
sudo chown -R tomcat: /opt/tomcat
步骤6:设置Guacamole身份验证方法
Guacamole的默认身份验证方法从一个名为user-mapping.在xml文件中读取所有用户和连接。您需要定义允许访问Guacamole的文件 web UI用户,要连接的服务器和连接方法。
为了登录Guacamole 用户在web界面上生成密码的MD5哈希。相应地替换密码:
$ echo -n GoodStrongPassword | openssl md5
(stdin)= 2df81fbfb14c621dbfd98e0008c2f3
$ echo -n AdminStrongPassword | openssl md5
(stdin)= 53bdac1400db24248d8b6cf93dc6cf93dc6
准备好密码后,使用以下示例创建用户映射文件。它将添加两个用户。如果您有更多信息,请创建下面共享的另一个块。您可以根据环境放置任何主机名称、用户名和主机。操作命令和内容如下:
$ sudo vim /etc/guacamole/user-mapping.xml
username="GeeksAdmin"
password=2df81fbfb14c621dbfd98e08c2f35
encoding="md5">
172.25.169.26
22
10.10.10.5
3389
tech
true
username="TechAdmin"
password=53bdac1400db248db6cf93dc6
encoding="md5">
10.10.10.1
3389
test
test
172.1.15.26
22
到目前为止,我们进展顺利。在完成所有操作后,重新启动Tomcat和guacd,以实现所做的改变:
sudo systemctl restart tomcat guacd
步骤7:访问Guacamole Web界面
到目前为止,我们已经做好了一切准备,所以我们应该准备好访问我们努力配置的应用程序。访问Guacamole的web界面,只需将浏览器指向http://ip-or-domain-name:8080/guacamole,您应该看到一个登录屏幕,如下所示:
本例中的用户名可以是“GeeksAdmin或TechAdmin密码分别是“GoodstrongPasword或AdminStrongPassword”。
正如您所看到的,我们在配置文件中建立的连接,即服务器名称,在您登录时已加载:
只需单击您想要连接的一个,系统将提示您输入用户名和密码,无论是通过SSH还是RDP,这取决于操作系统。如果凭证正确,您应该被允许进入服务器。
到目前为止,Ubuntunt Guacamole安装在22.04系统中