配置 Windows 远程桌面客户端使用 SSL 连接到 KPCOS/炎帝 xrdp 服务

在 KPCOS/炎帝 上为 xrdp 配置 SSL 加密后,Windows 用户需要按以下步骤设置安全连接:


Windows 客户端连接配置步骤

1. 获取服务器证书

# 在 KPCOS/炎帝主机上执行(将证书复制到 Windows)
scp user@炎帝主机ip:/etc/xrdp/cert.pem C:\Temp\xrdp-cert.pem

或直接从服务器下载证书文件

2. 导入证书到受信任根证书颁发机构

  1. Win + R 输入 certmgr.msc
  2. 展开 受信任的根证书颁发机构 → 右键 证书所有任务导入
  3. 选择下载的 xrdp-cert.pem 文件
  4. 完成导入向导

3. 创建安全连接配置文件

  1. 打开 远程桌面连接 (mstsc)
  2. 点击 显示选项
  3. 转到 高级 标签:
    • 设置 身份验证选项:始终连接(即使身份验证失败)
    • 点击 设置… 按钮
  4. 配置 SSL 设置:
    安全层:SSL (TLS 1.0+)
    服务器身份验证:使用受信任的证书颁发机构验证服务器身份

4. 连接配置示例

# 通过 CMD/PowerShell 连接(推荐)
mstsc /v:炎帝主机ip:3390 /f /cert-ignore /prompt

参数说明:

  • /v:服务器地址和端口
  • /f:全屏模式
  • /cert-ignore:首次连接忽略证书警告(已手动导入证书)
  • /prompt:显示凭据输入窗口

连接过程详解

首次连接流程:

  1. 输入服务器地址:炎帝主机ip:3390(配置的 SSL 端口)
  2. 出现证书警告时:
    • 勾选 不再询问我是否连接到此计算机
    • 点击
      证书警告
  3. 输入 炎帝主机 用户名/密码
  4. 选择会话类型:Xorg

后续连接:

  1. 直接使用保存的 RDP 文件
  2. 或运行快捷命令:
    :: 创建 RDP 快捷方式
    echo full address:s:炎帝主机ip:3390 > %USERPROFILE%\YanDi-Secure.rdp
    echo prompt for credentials:i:1 >> %USERPROFILE%\YanDi-Secure.rdp

高级安全配置

1. 自动登录脚本

# 创建安全连接脚本 connect_secure.ps1
$cred = Get-Credential
cmdkey /generic:TERMSRV/炎帝主机ip /user:$cred.UserName /pass:$cred.GetNetworkCredential().Password
mstsc /v:炎帝主机ip:3390 /f

2. 证书验证检查

# 验证证书安装
Get-ChildItem Cert:\LocalMachine\Root | Where-Object {$_.Subject -match "炎帝主机ip"}

3. 组策略增强(企业环境)

  1. 运行 gpedit.msc
  2. 导航到:
    计算机配置 > 管理模板 > Windows 组件 > 远程桌面服务 > 远程桌面连接客户端
  3. 启用:
    • 配置服务器身份验证证书指纹
    • 指定 SHA1 证书指纹(从 cert.pem 获取)

故障排查

连接失败常见问题:

  1. 证书不匹配错误

    "由于安全证书存在问题,因此远程计算机无法识别"

    解决方案

    • 重新导入证书
    • 或临时添加 /cert-ignore 参数
  2. 协议不兼容

    "发生身份验证错误。要求的函数不受支持"

    修复方法

    • 服务器端编辑 /etc/xrdp/xrdp.ini
      [globals]
      tls_ciphers = HIGH:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK
  3. 端口不通

    Test-NetConnection 炎帝主机ip -Port 3390

日志检查:

  • Windows 事件日志
    事件查看器 → Windows 日志 → 应用程序 → 来源:TerminalServices-RDPClient
  • 服务器日志
    tail -f /var/log/xrdp.log

最佳实践建议

  1. 证书管理

    • 每 90 天更新证书:
      sudo openssl req -x509 -newkey rsa:4096 -keyout /etc/xrdp/key.pem -out /etc/xrdp/cert.pem -days 90 -nodes
    • 通知用户重新导入新证书
  2. 双因素认证

    # 安装 Google Authenticator 插件
    sudo apt install libpam-google-authenticator -y
    sudo nano /etc/pam.d/xrdp-sesman

    添加:

    auth required pam_google_authenticator.so
  3. 连接模板
    创建标准 RDP 文件分发给用户:

    screen mode id:i:2
    use multimon:i:0
    desktopwidth:i:1920
    desktopheight:i:1080
    session bpp:i:32
    winposstr:s:0,1,0,0,800,600
    full address:s:debian-ip:3390
    audiomode:i:0
    redirectprinters:i:0
    disable wallpaper:i:1
    allow font smoothing:i:1
    prompt for credentials:i:1

提示:对于企业环境,建议使用商业 SSL 证书(如 Let’s Encrypt)替代自签名证书,避免客户端信任问题。

通过以上配置,Windows 用户可以安全地连接到启用 SSL 加密的 炎帝主机 xrdp 服务,所有传输数据均受 TLS 保护,有效防止中间人攻击。


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

zh_CN简体中文