收藏 分享(赏)

毕业论文——桌面虚拟化技术远程连接服务的探究与实现.doc

上传人:wo7103235 文档编号:5863274 上传时间:2019-03-20 格式:DOC 页数:54 大小:1.45MB
下载 相关 举报
毕业论文——桌面虚拟化技术远程连接服务的探究与实现.doc_第1页
第1页 / 共54页
毕业论文——桌面虚拟化技术远程连接服务的探究与实现.doc_第2页
第2页 / 共54页
毕业论文——桌面虚拟化技术远程连接服务的探究与实现.doc_第3页
第3页 / 共54页
毕业论文——桌面虚拟化技术远程连接服务的探究与实现.doc_第4页
第4页 / 共54页
毕业论文——桌面虚拟化技术远程连接服务的探究与实现.doc_第5页
第5页 / 共54页
点击查看更多>>
资源描述

1、本科毕业设计说明书题 目:桌面虚拟化技术远程连接服务的探究与实现院 (部):计算机科学与技术学院专 业: 计算机科学与技术班 级: 姓 名: 学 号:指导教师:完成日期:山东建筑大学毕业设计说明书目 录摘 要 VABSTRACTVI1 前 言1.1 选题背景 71.2 探索桌面虚拟化技术与远程连接服务的意义。 .82 主流连接协议技术简介2.1连接协议概览 92.1.1主流桌面连接协议概览 .92.1.2主流 CLI( Command Line Tools)终端传输协议概览 . 92.2 RDP 协议分析 .102.2.1RDP 协议连接原理简介 102.2.2RDP 客户端代码封装原理简述

2、.112.3 SSH 协议分析 .132.3.1SSH 协议连接原理简介 132.3.2SSH 协议代码封装原理概述 153 需求分析3.1 项目整体分析 183.2 项目模拟运行需求分析 .183.2.1 客户端硬件环境要求 .183.2.2 连接端环境要求 183.3 现有连接协议目前已知的问题 .204 概要设计4.1 系统分析 .234.1.1 功能模块 23II山东建筑大学毕业设计说明书4.1.2 功能描述 235 详细设计5.1 类库函数变量定义 255.1.1 说明 .255.1.2 RDP 协议连接格式概览 255.1.3 SSH 协议连接格式概览 265.2 参数处理 .29

3、5.2.1 RDP 协议接口设计详细说明 295.2.2 SSH 协议接口设计详细说明 305.3 代码展示 .315.3.1 主界面 .325.3.2 登陆界面 325.3.3 RDP 连接部分 .345.3.4 SSH 连接部分 .376 系统测试与故障处理6.1 测试目的 .396.2 测试环境 .396.3 测试过程及结果 396.3.1 RDP 连接测试 .396.3.2 SSH 连接测试 .396.4 部分异常处理与故障解决 .396.4.1 SSH 协议连接后的乱码问题及解决方案 406.4.2 RDP 协议出现组件错误的问题及解决方案 476.4.3 对 RDP 连接进行 Re

4、mote-FX 技术优化 497 结 论. 52谢 辞 . 53III山东建筑大学毕业设计说明书参考文献 54IV山东建筑大学毕业设计说明书摘 要近年来,很多 IT 厂商均着手建设自己的公有/ 私有云平台,而桌面云(DAAS,Desktop AsA Service)是云平台架构中一个重要的组成部分,通过桌面虚拟化技术架构(即 VDI,Virtual Desktop Infrastructure,由著名厂商 VMware 提出),可以将构建在服务器云端上的桌面分发给终端用户,使用户可以使用任意设备,方便的通过网络访问属于个人的桌面系统。现今主流的云平台组件,例如 OpenStack、CloudS

5、tack 等,均包含有 VDI 技术的身影。远程桌面连接服务虽然不完全等同于桌面虚拟化技术,远程连接桌面服务作为 VDI 技术的基础和雏形,实现了从服务器-客户端/服务器-服务器的远程连接,通过约定的协议,使得用户能够轻松的管理桌面终端。用户终端通过以太网登陆到虚拟主机上,只需要记住用户名和密码及网关信息,即可随时随地的通过网络访问自己的桌面系统,从而实现单机多用户的连接。本文旨在通过分析 Unix/Linux 字符界面的 SSH 协议和 Windows 下图形界面的 RDP 协议,通过分析协议下连接过程,带宽控制,收发报文的信息,分析图形界面远程连接与字符界面远程连接的不同点,从而编写一个具

6、有模拟简单远程连接服务的程序,以实现远程控制其他计算机的目的,从而更加深刻的理解桌面虚拟化技术的主要工作原理。关键词: 桌面虚拟化;远程连接服务;RDP 协议;SSH 协议;终端V山东建筑大学毕业设计说明书The Research of the Remote Connection Service in Virtual DesktopInfrastuctureABSTRACTFrom now on, more and more IT companys began to build their own public or private cloud platform. DAAS is an imp

7、ortant part of the cloud platform architecture. Through the Desktop Virtualization Infrastructure (i.e. VDI, by the famous vendors VMware proposed), will build in the cloud server desktop distributed to end users, users can use any device, convenient through the network access to personal desktop sy

8、stem. Nowadays the mainstream of cloud platform,such as OpenStack,CloudStack,are the figure includes VDI technology.Remote Desktop Connection Service, as the basic construction in VDI, realized form the Client-Server/Server-Server remote connection,through the agreed protocol,allowing users to easil

9、y the management desktop terminals. Terminal loging via LAN to a virtual host, only need to remember user name , password and gateway information, anytime, anywhere access to their desktop system over the network, in order to achieve a single multi-user.This paper aims to analyze under Unix / Linux

10、character based SSH protocol and the Windows graphical interface RDP protocol, through the connection process analysis under the agreement, bandwidth control, send and receive packets of information, analysis GUI remote connection remote connection to the character interface different points, so wri

11、te a simulation of a simple remote connection service program has, in order to achieve the purpose of remote control of other computers, so that a more profound understanding of the operating principle desktop virtualization technology.Key Words: Desktop Virtualization;Remote Connection Service ;Rem

12、ote DisplayProtocol ;Secure Shell Protocol;TerminalVI山东建筑大学毕业设计说明书1 前 言1.1 选题背景近年来,桌面云作为云端服务中很重要的一环,受到广泛关注。在介绍桌面云的定义前,我们需要对云计算进行一个定义,即:“云计算,是一种互联网上的资源利用新方式,可为大众用户依托互联网上异构、自治的服务进行按需即取的计算,云计算的资源是动态易扩展而且虚拟化的,通过互联网提供。”1 桌面云则是符合上述云计算定义的一种云。它是一种可以通过瘦客户端或者其他任何与网络相连的设备来访问跨平台的应用程序以及桌面的云端服务。桌面云应用面向终端用户,桌面虚拟化技

13、术架构具有以下特性。(1) 多样化的终端访问方式和灵活使用。解决了传统 PC 的体积和易用性问题,只要网络条件允许,即可快捷的连接制定电脑进行访问。(2) 终端采购维护成本降低。一个瘦客户机+显示器的模式的成本要比完整 PC 低 50%以上,在后续升级和维护方面,也是前者更长,能支持长达 6-7 年的时间。采用桌面虚拟化,服务器端虚拟机的配置可以灵活调整,减少了浪费。(3) 统一集中管理以及安全性提升。采用桌面云,最大的特性就是安全性得到提升,虚拟机与终端之间传输时,可以通过压缩等技术,控制数据的外传复制。而且由于桌面虚拟机存在于私有云的数据中心中,所以可以通过统一的管理进行实现,包括升级和应

14、用部署安装。(4) 节能减排。根据不完全统计,采用 VDI 架构的桌面云,一年下来平均比传统 PC 群架构节约 90%的电能成本。在大规模运用的时候,节能特性显得更加明显2。然而在发展中,桌面云也面临着以下的待解决的问题。(1) 网络带宽依赖。桌面应用的体验较大程度的依赖于带宽。该问题的解决主要依赖于桌面连接协议的更新和国家宽带战略的推动。(2) 外设支持困难。对类似扫描枪等非标准接口设备并不能很好的支持。(3) 3D 高性能处理能力一般。针对高清视频处理, 3D 动画处理等问题的桌面虚拟化还存在着很大的瓶颈。云计算的发展离不开各大业内厂商的大力支持,许多公司都在探索成熟的桌面云架构的过程中,

15、做出了自己的贡献,也形成了百家争鸣的业界标准。7山东建筑大学毕业设计说明书1.2 探索桌面虚拟化技术与远程连接服务的意义。在桌面云的架构中,连接协议是桌面虚拟化厂商研发竞争的焦点,因为协议效率决定了虚拟桌面的用户体验,而用户体验决定了桌面产品的生命力。目前由于桌面云和 DAAS 服务概念提出的时间较晚,在桌面云技术上还没有一套特别成熟的完整流程化解决方案,特别是在外设上面,各大厂商还处在探索阶段。我们以企业私有云中目前发展最优秀的 Openstack 云平台进行举例说明,在连接协议部分,Openstack Grizzy 之前的版本采用的是微软 RDP 协议。随着终端性能和网络要求的不断提高,R

16、ed Hat 的 SPICE 协议在外设支持上逐渐优于 RDP 协议,导致了 Openstack Grizzy 发行版及其以后的版本采用了 SPICE 协议,以代替 RDP 协议。即使如此,RDP 等传统协议仍然在其他云平台架构中担任着重要作用。本文的目的不仅仅是为了写出用于 PC 进行远程连接的程序,而是举一反三,通过对连接服务的研究,了解各大连接协议的优缺点,从而对主流连接服务的性能实现初步的评价,以达到在其他平台下,也能开发模拟桌面云中最重要的组件远程控制连接其他计算机的目的。8山东建筑大学毕业设计说明书2 主流连接协议技术简介2.1 连接协议概览2.1.1 主流桌面连接协议概览目前提供

17、桌面虚拟化解决方案的厂商各自采用不同的协议,主要概览如下。RDP 协议:RDP 协议早期是由 Citrix 开发的,后来该协议被微软并购。RDP 的服务端最早基于 Win2000/WinNT,扩展了基于 T.128(T.120 协议族)提供的多通道通信。VMware平台早期也采用 RDP 协议。该协议通过 TCP/IP 协议进行数据传输,在实际数据传输前进行了 ISO/MCS/SEC 三层的包装。其中前两层为多点并发式通信提供了可靠的传输保证,SEC层则提供对 RDP 数据的详细加解密处理。ICA 协议:Cirtix 自主研发的协议。ICA 协议能够为用户构建一个基于服务器计算的应用模式,在这

18、种应用模式下应用程序的安装配置、管理维护支持和执行都将基于服务器,同时将用户鼠标键盘的运行结果显示在客户端中。该协议对网络数据传输的要求低,能够很优秀的支持不同配置的瘦客户端设备。基于该协议,可以支持 Windows/Linux/UNIX 等多种平台,而且具有广泛的客户连接端支持。PCoIP 协议:该协议由 VMware 和 Teradici 共同开发,该协议最大的特点就是将用户的会话终端以图像的方式进行实时压缩传输,对于用户的操作,只传输画面变化部分,保证在低带宽下也能够高效率的使用。PCoIP 协议最大可以支持到 4 台 2560*1600 分辨率显示器的传输,同时它还支持 ClearTy

19、pe(清晰模式)技术。即使这样,得益于优秀的压缩算法,传输速度依然可以控制在一个较低的水平。SPICE 协议:由著名 Linux 发行厂商 RadHat 提出,能够为终端用户提供堪比个人计算机的连接体验。该协议用于 RedHat 企业虚拟化桌面版,基于多层架构基础。它的优势在于满足桌面用户的多媒体方面的丰富需求(而以上传统协议在 3D 和多媒体支持上并不能做到完美),该设计的核心是实现对用户端设备(CPU、RAM 等)或虚拟服务器上可用系统资源的智能访问。作为访问的结果,协议会以动态方式判定是在客户端设备还是主机服务器上对桌面应用程序进行呈现,从而实现任何网络条件下都能提供最佳的用户体验。该协

20、议也是新兴协议中市场潜力最大的。2.1.2 主流 CLI(Command Line Tools)终端传输协议概览除了桌面连接之外,在服务器运维等应用模式中,还会运用到基于命令行终端的传输协议。由于终端连接传输协议相对于图像传输要简单,发展历史也更加久远,所以相比桌9山东建筑大学毕业设计说明书面连接的协议,成熟度更高。SSH 协议:由 IETF 的网络工作小组(Network Working Group )制定。该协议是建立在互联网应用层和传输层基础上的安全连接协议。也是目前较为可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效进行远程连接和数据传输,安全性较高,在

21、各大 UNIX、Linux 发行版中都有预置,也是目前安全性较高的终端协议。Telnet 协议:Telnet 是一个在 Internet 上有着广泛应用的连接协议。它位于 TCP 的应用层上,采用了通用的,面向 8 位字节的双向通信手段,可以用于终端与终端之间的通信,也可以用于终端设备和面向进程之间通信的接口。但是由于 Telnet 协议的发展较为缓慢,安全性也成为了制约其进一步推广的因素,现在有被 SSH 协议代替的危险。FTP 协议:即文件传输协议的缩写,主要用于与远程计算机之间的文件传输。它采用B/S 模式,客户机与服务器之间利用 TCP 建立连接,可以实现下载文件与上传服务器文件等功能

22、,相比其他连接方式比,该协议局限性较大,不能很好的控制远程计算机,但在文件管理上有其优越之处。2.2 RDP 协议分析2.2.1 RDP 协议连接原理简介在上述介绍过的桌面协议中,RDP 协议依托对 Windows 系统良好的支持与微软官方提供的多平台扩展性能,具有成熟的发展历史和广泛的应用。它能够较为简便的实现客户机与目标机的远程连接。RDP 协议基于 TCP/IP 网络协议之上,共分为五层 (如图 2.1)。图 2.1 RDP 协议五层架构10山东建筑大学毕业设计说明书TCP 层:RDP 协议基于 TCP/IP 协议,由于传输的数据量比较大,因此在协议底层构建了 TCP 层,它包含了定义的

23、分割过的 RDP 数据逻辑包,避免由于网络包过长导致传输过程中的数据丢失。ISO 层:主要功能是进行 RDP 数据的正常连接通信。MCS 层:在 ISO 层上,RDP 标准定义了一个虚拟通道层,用来拆分标示为不同虚拟通道的数据,加快客户端的处理速度,节省占用网络接口的时间。SEC 层:用于 RDP 协议传输过程中的安全控制,对所有经过的数据进行加解密处理。 RDP 层(一些资料中又称 ASP 层):处理各种传输画面信息,本地资源转换,声音数据,打印数据等。根据数据类型的分割又分为不同的内部层次结构3。RDP 协议连接过程可以简要概括如下:1、发送 TCP 请求,使客户端连接远程计算机。2、IS

24、O 层建立连接。3、发送初始化协议相关信息。4、MCS 层虚拟通道申请。5、SEC 层进行加密,转发客户端的系统信息,进行加密协议验证。6、平台软件连接,端口验证,证书验证。7、各功能成功建立连接,开启数据传输。2.2.2 RDP 客户端代码封装原理简述虽然 Microsoft 并没有公布 RDP 协议的官方文档,但是已经有大量开源项目组织对RDP网络编程的数据包报文格式进行了研究,初步得出了 RDP 报文格式的基本原理,并在此基础上将网络通信协议加以封装,形成了 RDP 协议的代码类库,以方便开发者进一步在Java/Python/C#甚至移动端开发中方便使用 RDP 连接的相关类库。本文的

25、DEMO 演示部分便采用了微软官方封装的 AxInterop.MSTSCLib.dll 组件,此外还有 Rdesktop、Winconnect、LinRDP 等非官方类库。这些类库的封装方式大致如下。根据上文的 RDP 五层协议模型,RDP 协议也采取与 TCP/IP 逐层从低级到高级添加数据包头流程相同的方式,例如 MCS 层完整报文=MCS 头数据+SEC 头数据+RDP 头数据+传输数据,以此类推。TCP 层的格式与标准 TCP 连接的数据头相同,这里不再详述。(1) ISO 层数据包报文格式:根据 RFC2126 和 RFC905 的定义,ISO 层的数据头长7 字节,即 Versio

26、n|Reserved Length|headerlen|ISO_TPDU_CODE|Data。11山东建筑大学毕业设计说明书(2) MCS 层数据包报文格式:基于 T.125 协议标准,数据头长 8 字节,即MCS_PDU_TYPE|MCS_userid|channelid|Flags|Data Length。(3) SEC 层数据包报文格式:该层没有数据包报文的固定格式,因为采用的是 RSA 加密算法,并不是网络协议。对于 RSA 算法,在数据上添加的信息为 12 字节,前 4 字节为 sec_flags,用来判断类型,后 8 字节为公钥 public_key。即sec_flags|publ

27、ic_key。(4) RDP(ASP)层数据包报文格式:分为 8 种数据类型,ASP_CONTROL_PDU_TYPE 、ASP_DATA_PDU_TYPE 、ASP_INPUT_DEVICE 、ASP_ORDER_TYPE 、 ASP_PDU_TYPE 、 ASP_POINTER_PDU_TYPE 、 ASP_SECONDARY_ORDER_TYPE 、 ASP_UPDATE_ PDU_TYPE, 分别负责标识控制、数据、输入设备、命令、活动、屏幕指针、二级命令和数据更新 8 种 数 据 包 的 不 同 状 态 。最 重 要 的 ASP_PDU_TYPE 有 4 种取值, 包括标识一次 AS

28、P 会话的开始和结束。上述四段报文格式进行综合,就是一段完整的 RDP 报文(如图 2.2) 4。图 2.2 RDP 协议报文格式12山东建筑大学毕业设计说明书由该图可以得出网络数据流的数据结构代码,它也是现今 RDP 协议类库的封装基础。typedef struct stream unsigned char p; /* 数据流中的当前指针 */unsigned char end; /* 结尾指针, 永远指向末尾, 检测数据是否越界 */unsigned char data; /* 开始指针, 永远指向开头, 方便结构传递 */unsigned int size;/* 数据流的长度 */*4

29、种数据包头的头指针 */unsigned char *iso_hdr;unsigned char *mcs_hdr;unsigned char *sec_hdr;unsigned char *rdp_hdr; *STREAM;2.3 SSH 协议分析2.3.1 SSH 协议连接原理简介SSH 协议框架中最主要的部分是三个协议:1、传输层协议(The Transport Layer Protocol)提供服务器认证,数据机密性,信息完整性等的支持。2、用户认证协议(The User Authentication Protocol)则为服务器提供客户端的身份鉴别。3、连接协议(The Connec

30、tion Protocol)将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议使用;各种高层应用协议可以相对地独立于 SSH 基本体系之外,并依靠这个基本框架,通过连接协议使用 SSH 的安全机制。同时 SSH 协议框架中还为许多高层的网络安全应用协议提供扩展的支持。它们之间的层次关系可以这样来表示(如图 2.3):13山东建筑大学毕业设计说明书图 2.3 SSH 协议架构在整个通信过程中,经过下边几个阶段,协商实现认证连接。1、 由客户端向服务器发送 TCP 连接请求。TCP 连接建立后,客户端进入等待。服务器向客户端发送第一个报文,宣告自己的版本号,包括协议版本号以及软件版本号。

31、协议版本号由主版本号和次版本号两部分组成。它和软件版本号一起构成形如:“SSH-.-n“的字符串。其中软件版本号字符串的最大长度为 40 个字节,仅供调试使用。同时会检查 SSH 两端的连接版本问题。2、 双方开始使用 RSA 加密协议进行通信。由连接端向控制端返回 RSA 公共密钥,同时附带一个 64 字节的明文识别码,之后控制端接收到返回值之后,服务器向客户端发第二个包,证实客户端的数据包已经收到。3、 双方进行认证阶段。认证方式有很多,比如 RSA 认证、口令认证,利用 RSA 改进的/.rhosts 或者/etc/hosts.equiv 认证等。客户端向连接端发送SSH_CMSG_US

32、ER 包,根据用户和返回情况,连接端会返回 SSH_SMSG_SUCCESS和 SSH_SMSG_FAILURE 报文进行回应。如果初次认证失败,客户机会采用其他方法申请认证,直到连接超时(一般为 5 分钟)或者目标主机主动关闭 SSH 连接端口为止(一般为端口 22)。4、 认证完成后,连接端会向目标主机提交会话请求,包括:申请终端、启动 X11 、 TCP/IP 端口转发、启动认证代理、运行 shell、执行命令等。以上报文要求 IP 的服务类型(TOS)使用选项 IPTOS_THROUGHPUT,服务器向客户端回应 SSH_SMSG_SUCCESS 包,否则回应 SSH_SMSG_FAI

33、LUREs 包。14山东建筑大学毕业设计说明书5、 会话申请成功后,连接进入交互回话模式,数据在两个方向上交互传送,直到连接关闭5。2.3.2 SSH 协议代码封装原理概述SSH 采用二进制的数据包进行传输。一个报文头部包括: Reserved Length|headerlen|SSH_CODE(1-7 个字节的填充部分)|SSH_TYPE|DATA|CRC_AREA(和校验域)加密部分包括:SSH_CODE|SSH_TYPE|DATA|CRC_AREA数据包如果在带宽允许的情况下会进行 gzip 压缩,压缩和加密方法支持以下几种数据报文。SSH_CIPHER_NONE 不加密SSH_CIPH

34、ER_IDEA IDEA 加密SSH_CIPHER_DES DES 加密SSH_CIPHER_3DES 3DES 加密法SSH_CIPHER_ARCFOUR ArcFour 加密法SSH_CIPHER_CLOWFISH BlowFish 加密法在服务器端有一个主机密钥文件,该文件以固定分割方式分割为主机密钥的公钥与私钥。在服务器上程序运行的第一步,是按读取规则读取主机密钥文件,随后生成一个随机数,利用如下数据结构生成服务密钥:void rsa_generate_keyRSAPrivateKey *prv;RSAPublicKey *pub;RandomState *state;Unsigned

35、 int bits;RSA 公钥和 RSA 私钥数据结构为:typedef structunsigned int bits;MP_INT e;15山东建筑大学毕业设计说明书MP_INT n; RSAPublicKey; typedef structunsigned int bits; MP_INT n; MP_INT e; MP_INT d; MP_INT u; MP_INT p; MP_INT q; RSAPrivateKey;公钥和私钥都采用了部分 hash 加密的内容。其中的单字母变量则为模数、Hash 取的指数,根据 p,q 指数的 RSA 数学定理得出结论,具体这里不在赘述。图 2.

36、4 SSH 协议加密传输连接密钥传送过程(如图 2.4)为双向发生。进入认证阶段,认证方法分为两种:1、 基于主机的认证方法。数据结构如下16山东建筑大学毕业设计说明书Byte SSH_MSG_USERAUTH_REQUESTString 用户名String 服务名String BasedHostString 主机密钥的公开密钥算法String 客户主机的公开主机密钥和证书String 客户端主机名字(FQDN; US-ASCII )String 远程客户机上的用户名(ISO-10646 UTF-8)String 签名信息2、 基于用户名的认证方法,数据结构如下:String 主机密钥的公开密

37、钥算法String 客户主机的公开主机密钥和证书String 客户端主机名字(FQDN; US-ASCII )String 远程客户机上的用户名(ISO-10646 UTF-8)String 签名信息认证成功后,即可开始服务。同时 SSH 仍然存在一些缺点,在实际的使用过程中仍然需要注意。例如主机欺骗危险,允许客户第一次连接一台主机(服务器)时可以直接接受其主机密钥而不检查该密钥是否真正属于该主机。主机系统单向决定的安全,这样对主机系统的安全性没有任何提高,一旦主机系统被入侵或控制,SSH 无法保证传输安全。但是作为 Unix/Linux 下面使用最为广泛的连接程序之一,SSH 如同单机一般的

38、命令行体验保证了运维人员工作的顺利,具有极大的优势。17山东建筑大学毕业设计说明书3 需求分析3.1 项目整体分析本项目作为演示程序,模拟了用户远程通过 RDP 及 SSH 协议远程登录到其他计算机的过程。采用了 Client/Server 端的连接方式,其中 Server 端为目标的 Linux/Windows 系统,因为系统中相应的预置了 RDP 和 SSH 的协议,所以服务端并不需要做过多的配置,记录下用户名、密码、端口等连接必须的信息即可。这样在实际的生产环境中,可以采用精简的 Windows PE 或者 Linux 的系统的瘦客户机,可以高效的进行开发和连接使用。该项目能够起到良好的

39、模拟效果,使得能快速的在瘦客户机上进行部署。3.2 项目模拟运行需求分析3.2.1 客户端硬件环境要求1) PC/ARM/MAC 系列能够安装 Windows 系统的设备2) CPU:1.00GHz 以上3) 内存: 512M 以上4) 操作系统:Windows 2003 及以上版本操作系统 (32bit/64bit)5) 硬盘:系统驱动器在 3G 以上的空间6) 网络:10M/100M 系列全双工网卡7) 分辨率:最低要求 1024*768,增强色 16 位8) 鼠标:微软兼容的鼠标指针即可3.2.2 连接端环境要求1) 操作系统:Windows XP/2003/2008/7/8 系统(RD

40、P 协议)Ubuntu 10.04/CentOS 5.5/Fedora 10 以上系统(SSH 协议)Mac OS 10.6.5 以上系统(SSH 协议)2) 开发环境:Visual Studio 2008 Enterprise 版本3) 类库引用:Generados 1.03 版本AxMSTECilib 44) 前置工作:RDP 协议:出于安全性检查以及用户验证(UAC)的控制,RDP 协议在 Windows 系统中默认为关闭状态,需要手动打开进行设置。打开步骤如下。18山东建筑大学毕业设计说明书1) 在 Windows 系统中,找到“我的电脑”(Win8 系统更名为“ 这台计算机”),在图

41、标上点击右键,选择“ 属性 ”,进入系统管理设置 (如图 3.1)。2) 找到“远程设置” 选项卡,将允许远程协助设置为打开状态,并且反向勾选“ 仅允许使用网络级别身份验证的远程桌面的计算机连接”,勾选该选项会增加远程桌面连接中的安全性,但是会导致出现兼容性问题。在 DEMO 中建议进行关闭。这样便可以打开目标机器 RDP 连接的权限。图 3.1 在 Windows 8 系统中开启远程桌面功能SSH 协议(Linux/Unix 平台):某些版本在精简安装下默认不会安装 OpenSSH 组件,需要进行检测。检测方式如下。1) 打开系统终端。19山东建筑大学毕业设计说明书2)在系统终端中输入 ss

42、h 命令(如图 3.2),如果没有安装软件,会提示 Command Not Found,反之会提示使用方法,如果没有安装的话,需要用下载或者 APT-GET 等管理工具进行安装。图 3.2 在 Unix 系统中查看 SSH 命令可用或者在命令行内输入 ps ef|grep sshd 查看进程(如图 3.3),看 sshd 守护进程是否在正常工作,如果正常工作,会看到进程正在运行。图 3.3 在 Unix 系统中查看 SSH 所在进程20山东建筑大学毕业设计说明书确认协议在目标机器上得到了正确的安装之后,前置准备工作完成。3.3 现有连接协议目前已知的问题对于 Windows XP(Media

43、Center Edition 除外),默认连接协议的主要限制是每次只能登录一个交互式用户。当 Windows XP 中的快速用户切换允许登录多个用户时,无论这些用户对于 PC 是本地用户还是远程用户,只有一个用户可以交互地使用鼠标或键盘。对于 Windows Server 版本(不作为终端服务器运行),可以一次连接两个远程桌面会话。要在 Windows Server 2003 中通过远程桌面连接到实际控制台会话,您需要使用可选参数/console 启动终端服务客户端应用程序 (MSTSC.exe)。控制台会话非常重要,因为一些较早的应用程序由于设计不合理,未考虑终端服务会话,常常会仅在控制台会

44、话(会话 0)上弹出一些对话框。此外,网络带宽和组策略都可能影响远程桌面体验。Windows XP 能够提供高达 24 位的分辨率以及对声音、本地打印机、磁盘和用于剪切和粘贴的剪贴板的重定向。根据远程桌面绘制屏幕的方式,从远程会话中删除图形元素(主题、背景等等)能够显著增加可用网络带宽,因而会话可以更迅速地对用户做出响应。Windows Vista 在此基础上增添了 32 位分辨率和对更多设备的重定向。请注意,在带宽不足的情况下,某些操作(例如占用大量图形资源的操作)甚至对于最佳的远程桌面会话也是一种挑战,因此请做出相应的规划。除此之外,对于 Windows Vista 及以后的版本,微软改进

45、了 RDP 连接协议中的网络级别身份验证 (NLA)部分。NLA 可以帮助您防止中间人攻击,在这样的攻击中恶意用户会欺骗您正在连接的信任服务器。NLA 还通过不启动全局 Windows 用户界面进行身份验证改善了身份验证体验,最大程度地降低了对远程系统的影响并降低了对拒绝服务攻击的敏感性。NLA 要求在客户端和远程系统上都安装 Windows Vista。请注意,如果您要连接到的远程系统运行的是早于 Windows Vista 的 Windows 版本,则要确保至少为该连接设置了警告;否则连接会失败。还需要记住的一个重要更改,是用户通常不能访问会话 0(通常为控制台会话,在该会话中旧有应用程序

46、会弹出对话框消息)。这将减少系统服务(该服务在会话 0 中运行,尽管是以非交互方式运行)与交互式用户之间的交互。它还允许减小由 Windows Vista 中的高度特权服务和交互式用户带来的攻击面,Windows Vista 已致力于降低权限(通过用户帐户控制和其他安全增强功能)。通常情况下,您无需关心此类问题,除非您在 Windows Vista 上运行旧版软件,并且在安装时或应用程序运行时发生行为错误。21山东建筑大学毕业设计说明书而对于 Linux/Unix 系统终端中常用的 OpenSSH 来说,连接问题最多的在权限控制环节。许多 Linux/Unix 版本为了安全性起见,ssh 服务

47、没有默认打开 Root 用户的 SSH 权限。对于这种情况,需要修改/etc/ssh/sshd_config 文件,将 PermitRootLogin no 字段修改为 yes 即可 6。另外,多次连接同一台主机时,会出现形如以下字段的错误:WARNING:REMOTE HOST IDENTIFICATION HAS CHANGED! IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Someone could be eavesdropping on you right now (man-in-the-middleattack)!It i

48、s also possible that the RSA host key has just been changed.The fingerprint for the RSA key sent by the remote host is76:fb:b3:70:14:48:19:d6:29:f9:ba:42:46:be:fb:77.Please contact your system administrator.Add correct host key in /home/.ssh/known_hosts to get rid of thismessage.Offending key in /ho

49、me /.ssh/known_hosts:68RSA host key for 172.16.81.221 has changed and you have requested strict checking.Host key verification failed.这种状态下的解决方法主要是删除.ssh/known_host 下边的对应 IP 字段,重置 SSH 连接配置文件可以有效的解决该问题。22山东建筑大学毕业设计说明书4 概要设计4.1 系统分析整个系统采用 C#编写,通过引用类库的方式快捷实现远程桌面连接功能。该系统出于模拟的目的,力求简单实用。4.1.1 功能模块根据简洁实用的原则,只有两个模块,RDP 连接部分和 SSH 连接部分,而且连接界面保持一致性原则,方便进行移植。图 4.1 功能模块界面4.1.2 功能描述本设计主要涉及远程桌面连接的协议部分,具有如下功能:1、利用 RDP 和 SSH 两种不同的协议来联系不同操作系统的主机。2、连接过程中可以指定用户名,密码以及端口号,自动匹配目标桌面的分辨率和色彩深度,能够方便的进行远程操作。3、SSH 协议自动进行命令行连接。4、可以通过绑定动态域名的方式跨网段进行连接。23山东建筑大学毕业设计说明书5、具有断线自动重连,人工断开连接等功能。24山东建筑大学毕业

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报