【MEBX 设置】
Intel(R) AMT KVM特性需要能用起来,首先需要在MEBX中将AMT KVM特性激活:Ctrl+P进入MEBX菜单后,INTEL(R) AMT CONFIGURATION --> KVM Configuration --> KVM Feature Selection --> ENABLED。
考虑到接管用户桌面带来的隐私和安全问题,AMT设计了Opt-in用来完成一次性密码认证;同时为了企业IT管理的自动化和方便性,在MEBX菜单中提供了选项来打开或关闭Opt-in。“User Opt-in”菜单用来设置,当远程控制台需要与客户机端建立KVM连接时,是否需要通过一次性密码来认证。如下图所示,有两个选项,一个是不需要,一个是需要。
当配置成“User Consent is not required for KVM session”时,控制台发起KVM连接后,通过AMT的用户认证机制或VNC的认证机制后,就可以直接看到客户端的屏幕显示,并可以远程操作鼠标和键盘;如果配置成“User Consent is required for KVM Session”,则在控制台可以看到客户端屏幕和操作键盘鼠标之前,客户端本地显示会先弹出一个框,显示本次KVM连接需要的一次性密码,如下图所示,一个是用户本地屏幕显示,一个是控制台显示:
用户必须通过其他途径(比如电话,短信或邮件等方式),将此随机生成的一次性密码告知控制台端的操作人员,控制台端操作人员输入用户告知的一次性密码后远程操作才能继续。
上图客户端本地显示的一次性密码的提示框是不依赖于操作系统的,也就是这个提示框即使是在BIOS启动过程中,或操作系统启动过程中都能显示出来。如果试图在操作系统通过截屏来获取此提示框,是无法做到的,有兴趣的读者可以自己试试。
回到MEBX关于KVM特性选项,菜单“Opt-in Configurable from remote IT”用于设置是否允许远程控制台设置是否需要前面“User Opt-in”菜单提到的需要用户告知一次性密码,分Enable和Disable选项。选中Enable后,及时“User Opt-in”设置了需要用户的一次性密码,远程控制台也可以通过远程接口设置成不需要用户的一次性密码。
有一点需要注意的是,无法通过KVM操作MEBX的菜单。当启用KVM后,在启动过程中,按ctrl + p进入AMT的MEBX菜单的提示是没有的。
【KVM控制台】
Intel(R) AMT内部实现的KVM Server端是与标准的VNC兼容的,支持RFB 3.8和4.0版本; RFB 4.0版本在性能、可用性和可扩展能力上都有提高。因此,可以通过标准的VNC客户端软件连接AMT的KVM,也可以使用Intel(R) AMT SDK里面提供的工具来连接AMT的KVM。使用后者的性能将会更好。
Intel(R) AMT的KVM可以通过标准的RFB端口5900来呢连接,也可以通过AMT的传统重定向端口(16994和16995)来连接。连接RFB 5900端口时,走的是RFB的认证机制,需要提供RFB的认证密码;连接AMT重定向端口是,走的AMT本身的认证机制,需要提供具有重定向访问权限的用户名和密码。不管是走5900端口还是重定向窗口,前面提到的过的一次性密码是否需要提供,是单独设置的;也就是说,在认证方式上,可以是RFB密码+一次性密码;或仅RFB密码;或AMT用户名+密码+一次性密码;或仅AMT用户名+密码。不管是走RFB 5900端口或者是走AMT重定向端口,这两个能够连接KVM的端口默认都是关闭的,在使用之前需要通过相应的远程操作接口将其打开,然后才能连接。
1. 通过标准VNC客户端连接
笔者这里选择的是TightVNC来作为标准的VNC客户端连接AMT的KVM。标准的VNC客户端可以连接AMT的5900端口,也可以间接的连接AMT重定向端口来使用AMT的KVM功能。
第一种方法是直接连接AMT的5900端口;因为AMT内部的VNC服务器端是与标准兼容的,毋容置疑,直接连5900端口是可以的。通过TightVNC的Listen Mode连接AMT的5900,输入RFB密码,然后再输入一次性密码,就可以看到桌面了。
在使用上述方法连接时,笔者测试了做一些普通的桌面操作,比如浏览文件夹、打开图片、打开应用等,所需要的网络带宽大致如下图所示:
也就是至少需要100Mbps的12.5%的带宽才能满足比较流畅的画面,相对来说还是有一些拖尾感的。
有时候为了安全考虑,可能无法直接使用RFB的5900端口,那么这时候也可以通过标准的VNC客户端间接连接AMT的重定向端口,中间需要另外一个程序来做代理。AMT的最新SDK中提供了一个名为KVMTray的程序,运行后监听在内部127.0.0.1地址的5900端口;当有VNC客户端连接时,会自动弹出一个输入AMT连接和用户认证信息的窗口,然后就可以连接到AMT的重定向端口了,如下图所示。此时走的还是标准RFB协议,性能上和前面的数据差不多。
另外,如果是标准VNC客户端想通过CIRA方式连接KVM,则基本是需要走KVMTray这种代理的方式来连接;否则需要自己修改VNC客户端源码来支持CIRA连接方式了。
2. 通过AMT SDK中的KVMConsoleApplication程序
最新AMT SDK中提供的一个基于C#的例子,通过第三方优化的VNC连接库连接AMT的KVM,此程序目前名为KVMConsoleApplication,可以直接连接AMT的5900端口和重定向端口,支持TLS和CIRA方式的连接,还提供了设置KVM相关参数的功能。
通过“Default Port”连接时,需要输入AMT的IP地址和RFB密码;通过“Redirection Ports”连接时,需要输入AMT的IP地址和用户名以及密码。点击“Start Session”窗口后,就能打开KVM操作界面,如下图:
性能要比直接用VNC客户端连接要来得好,在基本相同的画质情况下,大概只需要一半左右的带宽,如下图。打开或拖动窗口时,基本已经没有明显的拖尾感了。
因此,如果想开发基于Intel(R) AMT KVM的应用,在已经有VNC客户端的情况下,如果和RFB 3.8兼容,则可以直接用来使用AMT的KVM特性;在没有VNC客户端情况下,则可以参考SDK里面的KVM控制台的实现来实现满足按自己需求的KVM控制台。