在 KPCOS/炎帝 上为 xrdp 配置 SSL 加密后,Windows 用户需要按以下步骤设置安全连接:
Windows 客户端连接配置步骤
1. 获取服务器证书
# 在 KPCOS/炎帝主机上执行(将证书复制到 Windows)
scp user@炎帝主机ip:/etc/xrdp/cert.pem C:\Temp\xrdp-cert.pem
或直接从服务器下载证书文件
2. 导入证书到受信任根证书颁发机构
- 按
Win + R
输入certmgr.msc
- 展开 受信任的根证书颁发机构 → 右键 证书 → 所有任务 → 导入
- 选择下载的
xrdp-cert.pem
文件 - 完成导入向导
3. 创建安全连接配置文件
- 打开 远程桌面连接 (mstsc)
- 点击 显示选项
- 转到 高级 标签:
- 设置 身份验证选项:始终连接(即使身份验证失败)
- 点击 设置… 按钮
- 配置 SSL 设置:
安全层:SSL (TLS 1.0+) 服务器身份验证:使用受信任的证书颁发机构验证服务器身份
4. 连接配置示例
# 通过 CMD/PowerShell 连接(推荐)
mstsc /v:炎帝主机ip:3390 /f /cert-ignore /prompt
参数说明:
/v
:服务器地址和端口/f
:全屏模式/cert-ignore
:首次连接忽略证书警告(已手动导入证书)/prompt
:显示凭据输入窗口
连接过程详解
首次连接流程:
- 输入服务器地址:
炎帝主机ip:3390
(配置的 SSL 端口) - 出现证书警告时:
- 勾选 不再询问我是否连接到此计算机
- 点击 是
- 输入 炎帝主机 用户名/密码
- 选择会话类型:Xorg
后续连接:
- 直接使用保存的 RDP 文件
- 或运行快捷命令:
:: 创建 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. 组策略增强(企业环境)
- 运行
gpedit.msc
- 导航到:
计算机配置 > 管理模板 > Windows 组件 > 远程桌面服务 > 远程桌面连接客户端
- 启用:
- 配置服务器身份验证证书指纹
- 指定 SHA1 证书指纹(从 cert.pem 获取)
故障排查
连接失败常见问题:
-
证书不匹配错误:
"由于安全证书存在问题,因此远程计算机无法识别"
解决方案:
- 重新导入证书
- 或临时添加
/cert-ignore
参数
-
协议不兼容:
"发生身份验证错误。要求的函数不受支持"
修复方法:
- 服务器端编辑
/etc/xrdp/xrdp.ini
:[globals] tls_ciphers = HIGH:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK
- 服务器端编辑
-
端口不通:
Test-NetConnection 炎帝主机ip -Port 3390
日志检查:
- Windows 事件日志:
事件查看器 → Windows 日志 → 应用程序 → 来源:TerminalServices-RDPClient - 服务器日志:
tail -f /var/log/xrdp.log
最佳实践建议
-
证书管理:
- 每 90 天更新证书:
sudo openssl req -x509 -newkey rsa:4096 -keyout /etc/xrdp/key.pem -out /etc/xrdp/cert.pem -days 90 -nodes
- 通知用户重新导入新证书
- 每 90 天更新证书:
-
双因素认证:
# 安装 Google Authenticator 插件 sudo apt install libpam-google-authenticator -y sudo nano /etc/pam.d/xrdp-sesman
添加:
auth required pam_google_authenticator.so
-
连接模板:
创建标准 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 保护,有效防止中间人攻击。
发表回复