简介
本文档提供有关思科自适应安全设备(ASA)无客户端安全套接字层VPN(SSLVPN)用户可用的远程桌面协议(RDP)插件的一些常见问题的解答。
RDP插件仅是用户可用的插件之一,以及其他插件,如安全外壳(SSH)、虚拟网络计算(VNC)和Citrix。RDP插件是此集合中使用最频繁的插件之一。本文档提供有关此插件的部署和故障排除过程的详细信息。
注意:本文档不提供有关如何配置RDP插件的信息。有关其他信息,请参阅Cisco ASA 5500 SSL VPN部署指南8.x版。
背景信息
RDP插件已从纯基于Java的RDP插件发展为包括ActiveX RDP客户端(Internet Explorer)和Java客户端(非Internet Explorer浏览器)。
Java插件
Java RDP客户端使用适当的Java RDP小程序。然后,Java小程序将封装在允许在ASA无客户端门户中安装的插件中。
Active-X插件
RDP插件还包括Microsoft ActiveX RDP客户端,该插件根据浏览器确定是使用Java还是ActiveX客户端。即:
- 如果Internet Explorer(IE)用户尝试通过无客户端SSLVPN门户使用RDP,且书签URL不包含ForceJava=true参数,则使用ActiveX客户端。如果ActiveX无法执行,则插件将启动Java客户端。
- 如果非IE用户尝试启动RDP书签或URL,则仅启动Java客户端。
有关RDP ActiveX和USER权限要求的详细信息,请参阅Microsoft远程桌面Web连接要求文章。
下一张图显示了在启动插件后可在浏览器窗口中选择的三个链接:
- 新门户页面 — 此链接在新浏览器窗口中打开门户页面。
- 全屏 — 在全屏模式下使用RDP窗口。
- 重新连接Java — 这会强制插件重新连接并使用Java而不是ActiveX。
RDP插件
RDP和RDP-2插件使用
- RDP插件:这是创建的原始插件,包含Java和ActiveX客户端。
- RDP2插件:由于RDP协议中的更改,已更新正确的Java RDP客户端以支持Microsoft Windows 2003终端服务器和Windows Vista终端服务器。
提示:最新的RDP插件将RDP和RDP2协议结合在一起。因此,RDP2插件已过时。建议使用RDP插件的最新版本。RDP插件命名法遵循以下结构:rdp-plugin.yymmdd.jar,其中yy是两位数的年格式,mm 是两位数的月格式,dd 是两位数的日格式。
要下载插件,请访问思科软件下载页。
ActiveX与Java客户端定位
RDP-ActiveX
RDP-Java
- 在所有支持Java的浏览器上工作。
- 仅当ActiveX无法启动或ForceJava=true参数在RDP书签中传递时,才在IE中启动Java客户端。
- RDP-Java实现基于Proper Java RDP项目,这是一个开源计划;为应用提供尽力支持。
RDP书签格式
以下是RDP书签的示例格式:
rdp://server:port/?Parameter1=value&Parameter2=value&Parameter3=value
以下是有关格式的一些重要说明:
- server — 这是唯一必需的属性。输入托管Microsoft终端服务的计算机的名称。
- port (可选) — 这是托管Microsoft终端服务的远程计算机中的虚拟地址。默认值3389与Microsoft终端服务的公认端口号匹配。
- parameters — 这是由参数 — 值对组成的可选查询字符串。问号用于标记参数字符串的开头,每个参数值对都用与号分隔。
以下是可用参数列表:
- geometry — 这是客户端屏幕的大小(以像素(宽x高)为单位)。
- bpp — 这是每像素位(颜色深度),8|16|24|32。
- domain — 这是登录域。
- username — 这是登录的用户名。
- password — 这是登录密码。小心使用密码,因为密码在客户端使用,可以观察。
- console — 用于连接到服务器上的控制台会话(是/否)。
- ForceJava — 将此参数设置为yes,以便仅使用Java客户端。默认设置为否。
- shell — 将此参数设置为在您连接RDP时自动启动的可执行/应用程序的路径(例如rdp://server/?shell=path)。
以下是其他仅ActiveX参数的列表:
- RedirectDrives — 将此参数设置为true,以便在本地映射远程驱动器。
- RedirectPrinters — 将此参数设置为true,以便在本地映射远程打印机。
- 全屏 — 将此参数设置为true,以便在全屏模式下启动。
- ForceJava — 将此参数设置为yes以强制Java客户端。
- audio — 此参数用于通过RDP会话进行音频转发:
- 0 — 将远程声音重定向到客户端计算机。
- 1 — 在远程计算机上播放声音。
- 2 — 禁用声音重定向;不在远程服务器上播放声音。
RDP插件和VPN负载均衡
使用基于域名服务器(DNS)的全局服务器负载均衡可支持多地理位置负载均衡。由于DNS结果缓存差异,插件在不同操作系统中的运行可能会有所不同。Windows DNS缓存允许插件在启动Java小程序时解析相同的IP地址。在Macintosh(MAC)OS X上,Java小程序可以解析不同的IP地址。因此,插件无法正确启动。
DNS轮询的一个示例是,当您有单个URL(https://www.example.com)时,www.example.com的DNS条目可以解析192.0.2.10(ASA1)或198.51.100.50(ASA2)。
在用户通过ASA1上的浏览器登录到无客户端WebVPN门户后,可以启动RDP插件。在启动Java客户端期间,MAC OS X计算机执行新的DNS解析请求。使用轮询DNS配置时,此第二个解析响应返回为初始WebVPN连接选择的同一站点的可能性为50%。如果DNS服务器响应是198.51.100.50(ASA2),而不是192.0.2.10(ASA1),则Java客户端会发起到错误ASA(ASA2)的连接。 由于ASA2上不存在用户会话,因此连接请求被拒绝。
这可能会导致Java错误消息类似如下:
java.lang.ClassFormatError: Incompatible magic value 1008813135 in
class file net/propero/rdp/applet/RdpApplet
常见问题
为什么某些键入的字符不显示在远程RDP会话中?
RDP会话中的远程计算机可能具有与本地计算机不同的键盘区域设置。由于这种差异,远程计算机可能不显示某些键入的字符或不正确的字符。只有使用Java插件时,才会看到此行为。要解决此问题,请使用keymap属性将本地密钥映射映射到远程PC。
例如,要设置德语键盘映射,请使用:
rdp://
/?keymap=de
The following keymaps are available:
---------------------------------------------------------------------
ar de en-us fi fr-be it lt mk pl pt-br sl tk
da en-gb es fr hr ja lv no pt ru sv tr
---------------------------------------------------------------------
键盘映射的已知问题
- Cisco Bug ID CSCth38454 -为RDP插件实施匈牙利密钥映射。
- Cisco Bug ID CSCsu77600 - WebVPN RDP插件窗口密钥不正确。Shift(键)。jar。
- Cisco Bug ID CSCtt04614 - WebVPN - ES键盘符号被RDP插件错误管理。
- Cisco Bug ID CSCtb07767 - ASA插件 — 配置默认参数。
提示:另一个可能的解决方法是为mstsc.exe使用应用智能隧道。这是在WebVPN子配置模式下使用以下命令进行配置的:smart-tunnel list RDP_List RDP mstsc.exe平台窗口。
Java RDP插件是否支持全屏RDP会话?
目前,不支持全屏RDP会话。为了实施此功能,已提交增强请求CSCto87451。如果将几何参数(几何=1024x768,例如)设置为用户监视器的分辨率,则它在全屏模式下运行。由于用户屏幕大小不同,可能需要创建多个书签链接。ActiveX客户端本机支持全屏RDP会话。
Java客户端能否使用AES-256进行加密通信?
为了允许Java客户端正确协商SSL,请调整ASA SSL密码集的顺序以匹配以下项:
Enabled cipher order: aes256-sha1 rc4-sha1 aes128-sha1 3des-sha1
Disabled ciphers: des-sha1 rc4-md5 null-sha1
如果密码集顺序不同,Java客户端可能会显示此错误:
[Thread-12] INFO net.propero.rdp.Rdp - javax.net.ssl.SSLHandshakeException:
Received fatal alert: handshake_failure
排除RDP问题
如果您遇到RDP插件的其他问题,收集此数据以排除RDP问题可能会很有用:
- ASA的show tech输出
- ASA的show import webvpn plug-in详细输出
- 用户计算机操作系统和补丁级别
- 目标计算机操作系统和补丁级别
- 使用的客户端(ActiveX或Java)和Java JRE版本
- 确定ASA是在负载均衡集群、基于DNS还是基于ASA
已知问题说明
Microsoft安全更新问题
- KB2695962 - Microsoft安全建议:ActiveX终止位的更新汇总:2012年5月8日。
- KB2675157 - MS12-023:Internet Explorer的累积安全更新:2012年4月10日。
- cisco-sa-20120314-asaclient - Cisco ASA 5500系列自适应安全设备无客户端VPN ActiveX控制远程代码执行漏洞3月14日。
- 思科漏洞ID CSCtx68075 — 应用Windows补丁KB2585542时ASA WebVPN中断(8.2.5.29 / 8.4.3.9)。
- KB2585542 - MS12-006:Windows中Webio、Winhttp和Schannel的安全更新说明:2012年1月10日。
ActiveX客户端
- 症状:升级到ASA OS版本8.4.3后,ActiveX客户端无法从IE版本6到9加载。
- 请参阅Cisco Bug ID CSCtx58556。此修复程序适用于8.4.3.4及更高版本。
- 解决方法:强制使用Java客户端。
- 症状:ASA OS版本降级到8.4.3之前的版本后,ActiveX客户端无法加载。这影响在ASA上使用ActiveX客户端并修复思科Bug ID CSCtx58556,并使用8.4.3之前的版本连接到此ASA的用户。这是由于新的ActiveXASA 8.4.3版中引入的RDP插件,与早期版本不兼容。
- 症状:与启用网络级身份验证(NLA)的设备的RDP连接失败。
- 症状:ActiveX RDP无法加载,并显示空白页。
- 请参阅Cisco Bug ID CSCsx49794。
- 当ASA SSL证书的证书链大于四个证书(例如ROOT、SUBCA1、SUBCA2和ASA CERT)时,会发生这种情况。
- 解决方法:
- 请勿在ASA上安装大型证书链。
- 已知Java RDP插件工作正常,而ActiveX插件不工作。
- 当您使用智能隧道配置本地Windows mstsc.exe时,RDP也能正常工作。
- 症状:使用ActiveX RDP客户端后,用户单击“注销”按钮,并收到HTTP 404 - Page Not Found错误。请参阅Cisco Bug ID CSCtz33266。此问题已通过插件版本rdp-plugin.120424.jar或更高版本得到解决。
- 症状:用户在IE中打开两个选项卡 — 一个用于RDP会话,另一个用于空白或其他网页。关闭RDP选项卡后,IE无法正确运行。
- 请参阅Cisco Bug ID CSCua69129。
- 解决方法:使用Java RDP插件(设置ForceJava=true)。
- 症状:ActiveX插件导致IE的CPU使用率较高。请参阅Cisco Bug ID CSCua16597。
- 症状:安装Windows更新KB2695962后,ActiveX RDP插件不加载。当打开新的RDP会话时,ActiveX客户端尝试安装Cisco SSL VPN端口转发器(这并不总是发生)并返回到无客户端门户页面,而不连接到远程计算机。这是由于漏洞CVE-2012-0358,Microsoft安全顾问(2695962)在客户端解决了该漏洞。
Java客户端
注意: Cisco重新分发插件而不进行任何更改。由于GNU通用公共许可证,思科不会更改或扩展插件应用。properJavaRDP 插件是一个开源应用程序,任何与插件软件有关的问题都必须由项目所有者解决。
- 症状:当通过Java RDP客户端访问时,处理器密集型应用程序在远程计算机上运行,并且出现Java小程序崩溃。
- 此错误消息可能显示:FATAL net.propero.rdp - javax.net.ssl.SSLException:连接已关闭:.....
- 在两个或多个CPU密集型应用之间快速切换时触发该行为。
- 此问题已在插件版本rdp.2012.6.4.jar及更高版本中解决。
- 解决方法:
- 使用ActiveX客户端进行连接。
- 请勿在应用程序之间快速切换。
- 症状:Java RDP客户端生成以下错误消息:net.propero.rdp.rdp - java.net.SocketException:套接字已关闭java.net.SocketException:套接字关闭,然后关闭。
- 此问题是由仅配置了FQDN(例如http://www.example.com)的group-url的隧道组引起的。
- 请参阅Cisco Bug ID CSCuh72888。
- 解决方法:
- 删除隧道组中没有“/”的group-URL条目。
- 使用ActiveX客户端。
- 症状:Java RDP客户端连接到Windows 8计算机时失败。
- Java RDP客户端当前不支持此功能。
- 请参阅Cisco Bug ID CSCuc79990
- 解决方法:
- 使用ActiveX RDP客户端。
- 智能隧道Windows本地RDP客户端(mstsc.exe)。
- 症状:Java RDP客户端失败,并显示以下错误消息:ARSigningException:在资源中找到未签名的条目:https://10.105.130.91/+CSCO+3a75676763663A2F2F2E637968747661662E++/vnc/VncViewer.jar。
- 此问题是由ASA webVPN Java重写程序中的Bug引起的。
- 请参阅Cisco Bug ID CSCuj88114。
- 解决方法:降级到Java版本7u40。