RDP:通過遠端桌面網關伺服器連接時,遠端應用程序不封裝流量
我有一個從第三方公司發布給我的一個客戶的遠端桌面應用程序。遠端桌面應用程序連接到遠端桌面網關伺服器 (RDGW),後者將請求轉發到遠端桌面伺服器群,其中使用最少的伺服器響應請求並打開應用程序。這適用於大多數情況。
今天我遇到了一種情況(假設該應用程序是為新客戶發布的),RemoteApp 會在驗證使用者並接受 RDS 場的證書後立即向使用者詢問他的憑據(域\使用者名和密碼), mstsc.exe 將停止工作,對取消或關閉按鈕完全沒有響應,並且必須通過任務管理器終止。
在解決此問題時,我發現 RemoteApp 與 RemoteDesktop Gateway 伺服器的連接方式有所不同。在我所有的正面測試場景中,我的 MSTSC 和遠端桌面伺服器網關之間的流量完全封裝在 HTTPS 中,如下所示:
在一個失敗的 mstsc 上記錄完全相同的過程的流量給了我這個:
第一個會話(在 NetMon 中稱為)是到 RemoteDesktop 網關伺服器的 HTTPS 連接(HTTPS,埠 443),然後是一個單獨的 RDP 連接,它嘗試通過其私有 IP 地址連接到 RD 伺服器本身(我只是出於隱私和安全原因,在圖片中將其空白)。第二個連接最終失敗,因為 RD 伺服器不在同一個位置/子網中,因此 mstsc 無法訪問私有地址。
起初我懷疑客戶端防火牆,因為它會檢查 HTTPS 流量,替換證書,因此它可能會破壞與 RDGW 伺服器的成功 HTTPS 連接。禁用防火牆上的所有 webfilter 功能後,問題仍然存在。我還嘗試通過 OpenVPN 隧道路由流量,使其完全繞過防火牆,遺憾的是也沒有成功。
什麼會迫使 mstsc 不像成功連接那樣將 rdp 連接封裝在 HTTPS 流量中?這是某種備份策略還是只是一個簡單的錯誤?什麼可以用作遠端應用程序的高級故障排除,因為它沒有有價值的日誌文件,並且 RDS 和 RDGW 伺服器不受我的控制?
編輯(添加匿名配置文件):
redirectclipboard:i:1 redirectprinters:i:1 redirectcomports:i:0 redirectsmartcards:i:1 devicestoredirect:s:* drivestoredirect:s:* redirectdrives:i:1 session bpp:i:32 prompt for credentials on client:i:1 span monitors:i:1 use multimon:i:1 remoteapplicationmode:i:1 server port:i:3389 allow font smoothing:i:1 promptcredentialonce:i:0 videoplaybackmode:i:1 audiocapturemode:i:1 gatewayusagemethod:i:2 gatewayprofileusagemethod:i:1 gatewaycredentialssource:i:0 full address:s:INTERNAL-FQDN-SERVER-HOSTNAME.CUSTOMER.NET <!! EDITED FOR ANONYMIZE REASON alternate shell:s:||name_of_remote_app_on_wts <!! EDITED FOR ANONYMIZE REASON remoteapplicationprogram:s:||name_of_remote_app_on_wts <!! EDITED FOR ANONYMIZE REASON remoteapplicationname:s:name_of_remote_app_on_wts <!! EDITED FOR ANONYMIZE REASON remoteapplicationcmdline:s: workspace id:s:INTERNAL-FQDN-SERVER-HOSTNAME.CUSTOMER.NET <!! EDITED FOR ANONYMIZE REASON use redirection server name:i:1 loadbalanceinfo:s:tsv://MS Terminal Services Plugin.1.RemoteApp-EXT alternate full address:s:INTERNAL-FQDN-SERVER-HOSTNAME.CUSTOMER.NET <!! EDITED FOR ANONYMIZE REASON authentication level:i:2 prompt for credentials:i:0 negotiate security layer:i:1 gatewayhostname:s:external.gateway.ourcustomer.com <!! EDITED FOR ANONYMIZE REASON signscope:s:Full Address,Alternate Full Address,Use Redirection Server Name,Server Port,GatewayUsageMethod,GatewayProfileUsageMethod,GatewayCredentialsSource,PromptCredentialOnce,Alternate Shell,RemoteApplicationProgram,RemoteApplicationMode,RemoteApplicationName,RemoteApplicationCmdLine,RedirectDrives,RedirectPrinters,RedirectCOMPorts,RedirectSmartCards,RedirectClipboard,DevicesToRedirect,DrivesToRedirect,LoadBalanceInfo screen mode id:i:2 winposstr:s:0,3,0,0,800,600 compression:i:1 keyboardhook:i:2 connection type:i:7 networkautodetect:i:1 bandwidthautodetect:i:1 displayconnectionbar:i:1 enableworkspacereconnect:i:0 disable wallpaper:i:0 allow desktop composition:i:0 disable full window drag:i:1 disable menu anims:i:1 disable themes:i:0 disable cursor setting:i:0 bitmapcachepersistenable:i:1 audiomode:i:0 redirectposdevices:i:0 autoreconnection enabled:i:1 remoteapplicationicon:s: shell working directory:s: gatewaybrokeringtype:i:0 rdgiskdcproxy:i:0 kdcproxyname:s:
那個設定:
gatewayusagemethod:i:2
可能不適合此服務。
這對應於設置“繞過本地地址的 RD 網關伺服器”。
第三方公司不應在啟用該設置的情況下傳遞 RDP 文件。