如何在 Ubuntu 22.04 上安装 XRDP 时安装证书

如何在 Ubuntu 22.04 上安装 XRDP 时安装证书

我正在 Ubuntu 中设置 RDP 连接,并尝试通过 Microsoft 的远程桌面连接从另一台 Windows 计算机访问它。设置很好,使用用户名和密码可以正常工作。

但是,我们希望确保只有在指定证书(非常类似于 SSH 中使用的公钥-私钥对)并输入密码时才允许使用 RDP,从而确保其安全。
我在我的 Ubuntu 机器上运行了以下命令(未使用密码):

openssl req -x509 -newkey rsa:2048 -keyout private.key -out public.cert -days 365

它生成了一个证书文件和一个密钥文件,我正尝试在 XRDP 的 ini 文件中使用它们(/etc/xrdp/xrdp.ini)以及设置中的一些其他更改:

在此处输入图片描述

此后我重新启动服务:

sudo systemctl restart xrdp

但即便如此,我仍可以通过 Windows 10 的 RDP 连接到计算机,并且它不会要求提供任何证书,并显示它是安全的。如果它要求提供证书,我也不知道如何提供,因为远程桌面连接。

请帮助我解决这个问题,如何在 xrdp 上安装证书以确保其安全。

答案1

看起来您已经使用 OpenSSL 生成了自签名证书,但 XRDP 未配置为使用此证书进行身份验证。要让 XRDP 使用您生成的证书进行安全的 RDP 连接,您需要更新其配置以指向生成的密钥和证书文件。

您需要执行以下操作:

  1. 更新 XRDP 配置:编辑 XRDP 配置文件 /etc/xrdp/xrdp.ini 并指定生成的密钥和证书文件的路径。在文本编辑器中打开该文件,找到 [ssl] 部分。更新 key_file 和 cert_file 参数以分别指向 private.key 和 public.cert 文件的位置。

[ssl] ... key_file=/路径/到/private.key cert_file=/路径/到/public.cert

  1. 重新启动 XRDP 服务:将更改保存到 xrdp.ini 后,重新启动 XRDP 服务以应用新配置:

sudo systemctl 重新启动 xrdp

  1. 使用远程桌面连接进行连接:现在,当您尝试使用远程桌面连接从 Windows 连接到 Ubuntu 计算机时,它会提示您选择证书。您需要事先将公共证书 (public.cert) 导入 Windows 证书存储区。导入证书后,当您使用远程桌面连接进行连接时,它应该会显示该证书进行身份验证。

  2. 证书验证:为了确保只允许具有有效证书的连接,您可能还需要配置 XRDP 以要求客户端证书。这可以通过在 xrdp.ini 的 [ssl] 部分中设置 require_client_cert=yes 来实现。

[ssl]...require_client_cert=yes

通过此配置,XRDP 将只允许来自出示有效证书的客户端的连接。

附言:如果您正在探索 Linux 上 RDP 服务器的替代方案,您可能需要考虑 ThinLinc。ThinLinc 提供强大的远程桌面解决方案,其功能专为安全高效的远程访问而设计。

相关内容