基于Java的Web服务器远程管理系统的.doc
本科毕业设计(论文)基于Java的Web服务器远程管理系统的设计与实现Design and implementation of Java - based Web server remote management system院 (系)计算机学院专 业网络工程班 级三班学 号16210220328学生姓名张晓坤指导教师罗海波提交日期毕业设计(论文)原创性声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行的设计(研究)工作及取得的成果,论文中引用他人的文献、数据、图件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包人已含他经发表或撰写的作品及成果。对本文的研究作出贡献的个人和集体,均已在论文中作了明确的说明。本人完全意识到本声明的法律结果由本人承担。毕业论文作者(签字): 签字日期: 年 月 日成绩评定 成绩项论文成绩(百分制)折合比例实得成绩(折合分)指导教师成绩30%评阅教师成绩20%答辩成绩50%总评成绩 注:毕业设计(论文)成绩按百分制评定。答辩成绩不及格的(评分低于60分的),则该毕业设计(论文)总评成绩为答辩成绩中文摘要随着互联网的发展,各种网络服务器种类也随之不断增加,而我们的传统维护服务器的工具确依旧通用而单一。常见的服务器管理工具通常采用基于SSH协议进行开发,但很多时候SSH工具也有不方便的时候,如业余人员操作管理自己的Web服务器,服务器所在内网没有VPN又是通过NAT进行端口映射的。所以本论文阐述的系统便是解决此类问题,方便小白使用,提高工作效率。论文从系统需求分析与概要设计、应用所用技术与开发环境、设计与实现,系统运行测试和安全分析五个模块对Web服务器管理系统进行阐明本系统是如何设计开发以及使用的。其中本系统的主要功能有文件的基本操作、文件传输、shell执行、数据库管理,以及其他维护服务器的辅助功能。关键词:Web、SSH、文件管理、shell、数据库管理AbstractWith the development of the Internet, various kinds of network servers are also increasing, and our traditional server maintenance tools are still common and single.Common server management tools are usually developed based on SSH protocol, but many times SSH tools also have inconvenient times, such as amateurs operating and managing their own Web server, the server is located in the Intranet without VPN and port mapping through NAT.So the system described in this paper is to solve this kind of problem, convenient to use, improve work efficiency.From the system requirements analysis and outline design, application technology and development environment, design and implementation, system operation test and security analysis five modules to the Web server management system to explain how the system is designed and developed and used.Among them, the main functions of this system are the basic operation of files, file transfer, shell execution, database management, and other auxiliary functions of maintaining servers.Key words: WEB、SSH、File manager、shell、Database management目录第一章 绪论11.1 Web服务器远程管理系统的产生和意义11.2 Web服务器远程管理系统的发展趋势11.3 Web服务器远程管理系统的优势11.4 Web服务器远程管理系统存在的缺陷21.5 论文结构及内容安排2第二章 系统的需求分析与概要设计32.1 系统的需求32.2 系统的设计原则32.2.1 实用性和便捷性原则32.2.2 兼容性和可扩展性原则32.2.3 可维护性原则32.2.4 安全性原则32.3 系统的结构设计42.4 系统的功能模块设计4第三章 系统所用技术与开发环境53.1 技术整理53.1.1 Base64编码技术53.1.2 Session技术53.1.3 Runtime类的使用53.1.4 File类的使用53.2 开发环境53.2.1 NetBeans IDE63.2.2 JDK63.2.3 MySQL6第四章 系统的设计与实现74.1 登录设计与实现74.1.1 登录设计74.1.2 安全设计74.2 文件管理设计与实现84.2.1 文件和目录的浏览84.2.2 文件的增删改84.2.3 文件的复制和移动94.2.4 文件的压缩和解压94.2.5 文件的上传和下载104.3 shell操作的实现104.3.1shell操作原理104.3.2 shell操作性能104.4 数据库管理104.4.1 数据库连接104.4.2 数据库兼容104.5 其他功能扩展114.5.1 端口管理114.5.2 反向连接114.5.3 文件下载114.5.4 端口映射114.5.5 远程桌面114.5.6 环境信息12第五章 系统的测试135.1 运行测试135.1.1 测试环境135.1.2 登录测试135.1.3 文件管理145.1.4 shell测试175.1.5 数据库测试185.1.6 其他功能测试195.2 测试总结24第六章 安全分析256.1 编程分析256.2 安全部署25第七章 总结与展望26参 考 文 献27参考文献1第一章 绪论1.1 Web服务器远程管理系统的产生和意义随着互联网的不断发展,Web已经影响了我们生活的方方面面,而对Web服务器的维护和管理也成为了一重大任务。就传统而言,我们维护各种各样的服务器一般采用远程SSH连接,面对各种各样的操作系统,我们需要掌握各种各样的shell语言,还需要记住各种各样的命令。维护这样的服务器需要专业的维护人员,这样对于小白而言无疑是一个门槛。此外Web服务器通常假设在内网中,如果内网没有提供VPN,需要对其远程管理也无疑是个麻烦,所以开发一个可跨平台,界面操作的维护服务器工具系统便变得有意义。1.2 Web服务器远程管理系统的发展趋势目前很多服务器虚拟化技术都支持对服务器的管理,如微软 Windows Server 2008 Hyper-V,思杰Citrix XenServer和VMware ESX Server,都能对虚拟服务器进行方便的管理,但是对于仅仅一台单独的服务器进行维护管理的,人们普遍还是使用了远程连接软件。目前国内外对于服务器维护管理的SSH软件有Xshell,putty和secureCTR等,然而对于此类工具的使用无疑是需要掌握一些基本的shell操作指令和基本工具的使用操作,这对于一些只会操作windows的小白用户无疑是一道门槛。另外如Xmanager等既可以使用命令模式,也可以使用图形化界面操作模式的软件,确实可以很方便对服务器的管理和使用,但是它们使用的前提是服务器系统上要安装好图形化界面服务,这样一来是降低了服务器的性能,二是浪费了服务器的内存。如果能够直接像Web后台管理维护和管理网站那样方便的管理服务器,或者将该管理和维护功能也嵌入Web后台管理,那么这对于个人网站的维护将更加方便。1.3 Web服务器远程管理系统的优势随着Web相关的安全机制的增强,一些比较敏感的功能也可以逐渐通过Web进行使用。Web服务器远程管理可以如同如在操作电脑界面一样操作服务器文件,可以让远程的Web服务器下载公网文件和上传,也可以对一些服务器上的日记文件进行浏览审阅,还可以操作服务器上的数据库,必要时可以通过shell进行一些如防火墙管理等安全高级操作。1.4 Web服务器远程管理系统存在的缺陷安全性问题:本程序很容易被中间劫持而导致服务器沦陷,还有是黑客若能通过其他漏洞获取些许文件权限,当查阅到有这工具脚本后,可能会导致更大的权限被获取,所以后面第六章将会对其安全缺陷进行分析和避免。编程缺陷问题:由于本系统是尽个人能力结合网络上的一些函数接口所写,功能体验方面难免有所缺陷。1.5 论文结构及内容安排本文的大概结构如下:第一章,绪论第二章,系统的需求分析与概要设计第三章,系统所用技术与开发环境第四章,系统的设计与实现第五章,系统的测试第六章,安全分析第七章,总结与展望第二章 系统的需求分析与概要设计本章主要分析Web服务器管理系统需要什么基本功能才能满足人们的使用以及一些系统设计原则。这个可以通过常见基于SSH开发的远程连接管理软件进行参考。2.1 系统的需求对于一个工具而言,需要有很好的可跨平台性,而java语言支持跨平台开发。其次其功能得满足人们对服务器的基本操作功能,如文件的增删改查,上传下载,压缩解压邢俊鑫.基于Java编程语言的计算机软件开发技术J.电子技术与软件工程,2017(23):47-48.,以及网络文件下载薛冬杰.用Java制作网络文件下载系统J.开放系统世界,2002(12):104-106.。此外对于一些基本习惯通过操作指令来操作服务器的,还需要提供相应的shell操作熊海燕,胡蓉.基于Java的远程控制系统的研究J.电脑知识与技术,2010(18):5115-5117.。最后维护服务器再进行日志审阅时也需要支持文件日志审阅等功能。2.2 系统的设计原则2.2.1 实用性和便捷性原则由于Web产品的不断兴起,一些小型Web网站或者个人网站的比重也不断增加,小型企业还好,个人网站则很少为了维护自己的网站而去学习各种远程连接工具的使用和各种系统的shell操作。例如很多刚完成了自己人生中的第一个网站,在公有云上买了服务器部署上去后,如要对其后续进行管理,则会因为操作系统不熟而放弃管理。而本工具采用脚本形式,只需要在已经部署好的网站中添加该脚本工具,就可以像操作自己电脑界面对远程服务器进行基本操作。2.2.2 兼容性和可扩展性原则一个合格的脚本工具的前提是它要能够在很多系统上兼容,而本系统采用java具有可跨平台,无论是linux还是windows都可以使用。此外,该系统还支持后续功能扩展开发,应该改系统采用模块分离,简单的框架设计上开发的,只需要根据模板格式,便可以很方便地进行扩展开发。2.2.3 可维护性原则本系统就一个轻小的脚本工具,功能模块分离,非常便于维护修改。2.2.4 安全性原则本系统的安全依赖于其部署配置和防火墙安全配置等张向芳,李华.Web应用中的安全部署J.山西科技,2007(3):61-62,64.。因为本脚本的安全比较敏感,所以可以采用白名单的方式保证指定用户才能对其进行访问使用。2.3 系统的结构设计本Web服务器管理系统通过浏览器触发操作后发送request请求给服务器,服务器获取request后,根据操作类型使用相应的invoke,判断其身份ID,如果验证成功,则获取其操作数据,对需要操作的数据进行操作,处理完后将结果response返回祝瑞,车敏.基于HTTP协议的服务器程序分析J.现代电子技术,2012(4):117-119.。图2.3 系统逻辑结构图2.4 系统的功能模块设计 根据上述对本Web服务器管理系统的需求分析,系统的设计原则和系统的结构设计,设计出以下5个功能模块:(1)登录设计模块:此模块主要是用于管理系统的用户登录,身份认证和退出,需要认证成功后才能使用本系统的主要功能。(2)文件管理模块:此模块主要分为文件目录的浏览、增删改查、复制移动、压缩解压、上传下载和文件浏览等。(3)shell操作模块:此模块比较特殊,它提供了基于指令式对服务器进行操作。(4)数据库管理模块:此模块就是用于对本服务器的数据库进行连接管理的,由于服务所安装的数据库可能会不同,所以设计成支持多数据库连接。(5)其他功能模块:其他辅助功能。第三章 系统所用技术与开发环境3.1 技术整理本文在对基于Java的Web服务器远程管理系统设计与实现的过程中,主要用到Java语言开发,开发所用的IDE是NetBeans,其他语言有HTML,CSS和JS,基于HTTP协议写成脚本工具类型,无框架。3.1.1 Base64编码技术Base64王芳,白宇.基于JavaScript的轻量化BASE64编码及解码算法J.软件,2015(4):24-27.是网络上最常见的用于传输编码的常用方式之一,特别是基于HTTP协议进行开发的Web程序,Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,其数据包即便在网络中被截取,也需要先解码后才能阅读。本系统采用此编码技术,主要用于用户登录时对密码进行加密,减少密码被暴力被破解的可能性和文件上传作用。3.1.2 Session技术Session徐兵,谢仕义.Web应用程序会话安全模块的设计J.计算机工程,2008(19):176-178.,称为“会话控制”。由于HTTP协议是无状态连接的,服务端不能知道当前连接的用户时候在之前已经连接过了,所以Session主要用于存储特定用户会话所需的属性及配置信息,解决HTTP无状态的问题,这样用户就不需要每次访问页面时都需要再验证自身的ID了。此外Session还能用于存储一些比较常用的占内容不多的关键数据,方便后端进行数据保存和判断。3.1.3 Runtime类的使用Runtime类封装了运行时的环境。每个Java应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接。简单的说,Runtime实例可以将你的程序与本地系统环境进行数据交换操作,在本系统中其主要作用是获取桌面图片和运行shell操作。3.1.4 File类的使用File类Java2核心技术 卷:高级特性(原书第7版)J.电脑编程技巧与维护,2006(4):94-94,94.是文件和目录路径名的抽象表示,本系统的文件管理就是通过此类的实例化操作服务器上的文件,主要用于文件的增删改查,移动复制,压缩解压等操作。3.2 开发环境开发软件:NetBeans IDEJava环境配置:JDK1.8.0数据库:MySQL(或者其他常见数据库)服务软件:Tomcat操作系统:Window 103.2.1 NetBeans IDENetBeans是开源软件开发集成环境,采用此编辑器是因为其发开集成环境,安装简单,界面操作也方便,而且扩展性好。3.2.2 JDKJDK提供了Java的运行所需的环境JVM和Java系统类库以及Java的工具,是Java语言的软件开发必不可少的工具包和Java开发的核心。在Web服务器管理系统开发中,JDK是最不可或缺的底层支持。3.2.3 MySQLMySQL是最流行的关系型数据库管理系统,采用MySQL主要是其适合小型网站,开源,跨平台性好,而且使用操作容易。第四章 系统的设计与实现本章主要讲解登录设计、文件管理设计、shell操作设计,数据库管理设计和其他扩展功能中的几个功能的实现。4.1 登录设计与实现登录功能这一模块关系着整个系统的安全性,所以判断登录用的合法性是非常关键的,因为凡是非法用户登录成功了,那么他便可以肆无忌惮地使用该工具提供的所有功能,所以在登录模块中需要加入token和加密机制。4.1.1 登录设计本登录功能和其他Web常见登录功能原理基本一致,均基于HTTP协议进行设计开发,如下图所示,其中o为object。图4.1.1 登录原理图采用用户ID(账号和密码)登录,后台获取登录的ID信息,判断是否合法,合法则进行登录至功能主页。4.1.2 安全设计为了防止白名单过滤不足,造成简单的密码爆破,我在登录系统中对登录的密码进行了base64编码,和后端进行token验证。这样如果想进行密码暴力破解,需要先将原来的密码本的所有密码先进行base64编码,再通过脚本或者工具将每次登录页面的token获取再进行登录尝试,但是这样频繁地对服务器进行访问,我们后面可以对访问策略进行设置,对于平凡访问某个页面的IP用户进行拉黑。而对于登录后可能存在重放攻击,那么在其他功能执行前,也都会验证一下此时相应的token。最后最麻烦的便是中间人攻击中客户端的浏览经过了黑客,黑客可以很容易的劫持数据进行获取对服务器的操作。为了解决此类事件,一个很好的方案就是:采用HTTPS,如果对要求更高者,可以采用CA认证方式对其进行改造。4.2 文件管理设计与实现本系统的文件管理主要实现功能有:文件和目录浏览、文件的增删改、文件的复制移动,文件的压缩解压和文件的上传下载,最终实现本系统的文件管理功能。其主要实现方式是先将当前内存信息,当前路径,当前文件夹和文件都以展示给客户端,客户端对想要操作的文件进行操作,后端接收到相应的文件操作后,获取该文件的名字,操作指令,对其操作完后返回给浏览器。4.2.1 文件和目录的浏览(1)当前内存磁盘展示当前内存磁盘信息不仅提供了用户了解当前内存清楚,它还提供了后台编程的所有磁盘的根目录。这就有助于用户切换磁盘目录。使用File类,可以获取当前服务器上的所有磁盘,磁盘当前内存和空余内存等信息,不过它给的是以Bit为单位的信息,因此为了方便用户审阅,还需要自行把Bit转化为更高的内存单位。(2)文件内存的大小仅仅是文件大小的计算很容易,使用f.length()再对其内存单位进行转换就行了。(3)文件目录排序文件目录需要对其进行排序,达到目录在前,文件在后。可以使用Arrays.sort(list,new Comparator()进行排序,list为File遍历当前文件夹下所有文件夹和文件的file集合,而Comparator()函数是一个比较器,需要自己进行实现。(4)文件目录其他信息文件的修改时间、当前用户对其拥有的权限等,也可以通过File特定函数进行获取,不过时间需要再进行格式转化,否则会以毫秒为单位。4.2.2 文件的增删改(1)新增文件和文件夹新增文件和文件夹的实现思路是:通过浏览器点击新增文件或者文件夹,触发JS输入文件名,然后通过将操作类型(新建文件或者文件夹),当前文件路径和新建文件的名称一同发送于服务器,服务器接收到后使用File类相关的创建操作后,将当前新的文件目录结果返回浏览器。(2)删除文件删除文件操作的实现思路是:将当前所有文件都放于多选框中,通过浏览器选择需要删除的文件,点击提交时触发JS对所选择的所有文件进行格式处理,通过将每个文件的名字加特殊符号进行隔开,最后组成新的字符串,再将本次操作类型和格式化后的文件名字符串以及当前文件路径发送到服务器,服务器接收到后将文件名字符串通过特殊符号进行拆解还原,然后依次将文件名加在当前文件路径后面,如果要删除的是单个文件,则直接删除,如果要删除的是一整个文件夹,则使用递归方法占先运.JAVA语言的递归程序设计方法J.湖南税务高等专科学校学报,2005(3):41-42.,将该文件夹下每个子目录里的文件都调用递归文件删除方法,如果采用的是批量删除文件,则需要所有要删除的文件夹和文件存放入数组里,然后依次判断是否为文件夹,如果是文件夹则采用递归方法依次删除文件,否则直接删除文件。最后将当前新的文件目录结果返回浏览器。(3)文件修改文件修改操作的实现思路是:通过浏览器点击想要修改的文件名字,将相关操作类型,文件名字和当前文件路径发送于服务器,服务器接收到后读取相应的文件,并将文件名,文件内容,当前文件路径返回给浏览器,而用户只需要通过浏览器修改文件内容后发送回服务器,服务器会将新的文件内容保存入对应的文件。最后将当前新的文件目录结果返回浏览器。4.2.3 文件的复制和移动文件复制移动操作的实现思路是:通过浏览器点击文件的移动或者复制操作,触发JS输入需要移动到或者复制到的新文件路径,然后将相关操作类型,文件名称,当前文件路径和新文件路径发送到服务器。服务器获取相关信息后,执行相关操作。如果是复制文件,则将源文件进行读取,在新目录路径下创建于之相同的文件,如果是移动文件,则和复制文件一样,只是最后要将旧的文件进行删除操作。最后将当前新的文件目录结果返回浏览器。4.2.4 文件的压缩和解压文件的压缩张军丽.Java中文件压缩的实现J.池州师专学报,2005(3):10-12.和解压操作的实现思路是:由于本系统没有应用第三方库,采用原始压缩解压方式,服务器获取浏览器相关操作的参数后,将文件读取后写入到ZipOutputStream流中,若为多文件压缩,则需要对文件夹采用递归方法找出文件夹里所有文件,然后再依次读取其文件句柄再写入ZipOutputStream流中。而解压操作则实现方式和压缩思路相反。最后将当前新的文件目录结果返回浏览器。主要过程:1)要压缩到的文件句柄输出流zoutZipOutputStream zout = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(saveF);2)获取需要压缩文件的句柄,通过下面向zout中新建要压缩文件的名称,所有需要压缩的文件都需要经过此步骤(集合压缩在一起,带很多文件的文件夹压缩)ZipEntry entry = new ZipEntry(pF.getName();zout.putNextEntry(entry);/在压缩文件中建立该压缩文件3)通过读取逐个读取需要压缩的文件的内容,输入到zout压缩输出流中。4.2.5 文件的上传和下载文件的上传下载操作鲁正军,田坚,李攀.基于Web的医院文件共享系统设计与实现J.电脑知识与技术,2016(5X):60-62.的实现思路是:浏览器点击文件上传后,选择要上传的文件,将文件名,操作类型以及当前文件路径发送到服务器,服务器则新建文件句柄,然后request.getInputStream()获取浏览器发送过来的文件内容。而文件下载则更容易实现,只需要通过response.setHeader()函数进行发送文件给浏览器就行了。不过其中有很关键的注意点就是response.setHeader()函数的filename参数值需要经过url编码,不然对于中文名字文件的传输时,文件名称会乱码。4.3 shell操作的实现4.3.1shell操作原理shell操作王风义.远程计算机控制系统开发与设计J.科技创业月刊,2009(12X):34-34,34.的实现思路是:通过浏览器将操作相关的类型和需要执行的shell命令提交给服务器,服务器通过判断操作类型,再使用相应的invoker进行操作,在服务器上进行执行该shell指令,最后将结果显示返回给浏览器。4.3.2 shell操作性能通过process = Runtime.getRuntime().exec(command),保存当前执行shell的进程,解决每次运行shell指令时都需要重新开启新的进程,节省服务器性能消耗。4.4 数据库管理4.4.1 数据库连接数据库连接和操作岳旭平,王道顺.可重用Java数据库操作组件的设计和实现J.计算机应用研究,2006(2):160-162,166.的实现思路是:通过浏览器将操作类型和连接数据库所需要的参数如driver、url,uid和pwd发送到后端后服务器进行连接操作,同理,执行数据库语句也是通过将操作类型和数据库语句发送至后端进行执行,并将结果返回给浏览器。4.4.2 数据库兼容从数据库的连接上看,其连接各种数据库所需要的参数是一样的,所以返回浏览器的数据库连接参数我们可以设置其可以选择各种数据库连接所需要的参数,用户只需要选择服务当前服务器中存在的数据库就可以进行连接操作了。4.5 其他功能扩展主要为一些辅助性的功能扩展,用于方便用户快捷使用,方便对服务器的管理。4.5.1 端口管理本系统目前只实现了对服务器端口的开放情况进行扫描,其实现思是通过socket连接方式判断端口是否开放,浏览器将相应的操作类型和需要扫描的端口发送给服务器后,服务器进行扫描,最后将结果返回给浏览器。4.5.2 反向连接如果你的服务器架设在防火墙后面的内网中,无法通过其他一些SSH连接或者VPN访问到服务器的话,可以考虑使用反向连接功能刘静,裘国永.基于反向连接、HTTP隧道和共享DNS的防火墙穿透技术J.郑州轻工业学院学报:自然科学版,2007(5):57-59.,其实现思路是:浏览器将想要起开的反向连接程序名字,连接端口号,以及连接IP地址发送给服务器,服务器通开启对应连接程序,对指定的IP和端口号进行连接。而我们客户端只需要先开启侦听服务就行了。4.5.3 文件下载如果服务器中没有下载像wget这类服务的话,想要下载公网上的某些文件,则可以通过该功能进行下载。其实现思路是:通过浏览器将相应的操作类型和需要下载的文件URI地址和文件保存路径发送给服务器,服务器通过URLConnection调用,将文件进行下载到服务器指定的文件目录中。4.5.4 端口映射端口映射姜文平,王香刚.TCP网络端口映射的实现机制J.电脑编程技巧与维护,2005(9):67-68.功能主要解决的是对同个内网下的其他服务器的访问。比如FTP服务器于Web服务器是分开部署的,又需要上FTP服务器上获取相关的文件操作,那么可以通过端口映射进行操作,这样你就可以让Web服务器做代理服务器,让其转发对FTP服务器的操作了。其实现思路是:浏览器将服务器需要侦听的IP地址,端口号,和FTP服务器的IP地址和端口号发送给服务器,服务器接收到后进行侦听和连接操作,一旦有数据发送到服务器指定的端口,就会将其转发给FTP服务器。4.5.5 远程桌面远程桌面海啸天鸣.Java实现反向远程桌面监视J.黑客防线,2008(5):107-109.这个功能由于功能实现缺失,只能看到桌面的情况而无法进行操作,所以用处不大,其实现思路是:通过浏览器将相关的操作类型和需要进行的截图频率发给服务器,服务器对桌面进行相应频率地截图,然后发送给浏览器展示。4.5.6 环境信息当服务器其他服务功能出现故障时,这个功能就提供了很好的信息提示了,可以通过环境信息功能快捷获取服务器上的系统环境信息。第五章 系统的测试5.1 运行测试主要测试本系统的功能是否能正常使用。5.1.1 测试环境1)服务器端:系统:CentOS 7,Windows 10后台服务程序:Tomcat 8环境:JDK数据库:MySQL反向连接程序:nc.exe2)客户端:系统:Windows 10,WindowsServer2003浏览器:firefox反向连接程序:nc.exe5.1.2 登录测试账号:xiaokun密码:123456本系统只有一个可用于登录的账号,当然可以自行增加,只有登录成功了才能进入文件管理主页对该工具进行使用,登录界面如下:图5.1.2登录页面5.1.3 文件管理(1)文件管理主页文件管理主页的主要功能有:文件浏览、文件的增、删、改、查、移动、复制、压缩、解压,编辑等操作。图5.1.3-1 文件管理主页面(2)新建文件夹新建文件夹用于创建文件夹,其具体操作:点击新建文件夹,输入想要创建的文件夹或文件的名字,运行结果如下图5.1.3-2 新建文件夹(3)新建文件新建文件的操作步骤:先到需要创建文件的目录下点击新建文件,输入想要创建的文件名字,确认后会跳转到文件内容编辑页面,可以输入你想要创建的文件内容。运行结果如下:图5.1.3-3 新建文件(4)删除文件夹或文件删除文件或删除文件夹的操作步骤:选择想要删除的文件夹,点击删除,确认删除后便可删除文件,服务器会返回删除操作结果。运行结果如下:图5.1.3-4 删除文件或文件夹(5)编辑文件在你你想要编辑的文件行选项中,点击编辑功能,跳转到文件编辑页面,然后进行修改编辑,此功能也用于文件日志浏览。运行结果如下:图5.1.3-5 编辑文件(6)压缩解压文件压缩解压文件的操作步骤:本功能支持批量选择压缩文件,如勾取你想要压缩的文件或者文件夹,然后点击压缩后,需要输入压缩成的文件名字,输入完后点击确定即可压缩。而解压只需要在Zip文件行点击解压功能即可。运行结果如下:图5.1.3-6 压缩解压(7)移动复制文件移动和复制文件操作:移动和复制功能的操作是一致的,选择想要移动的文件,点击移动或者复制,需要输入移动到或者复制到的文件路径,点击确认即可完成移动复制操作。运行结果如下:图5.1.3-7 移动复制文件5.1.4 shell测试Shell测试分为linux和windows,输入相应的shell并执行后,分别运行结果如下:图5.1.4-1 shell-linux图5.1.4-2 shell-windows5.1.5 数据库测试数据库连接操:在浏览器上选择服务器上的数据库驱动类型,输入连接数据库的参数,点击连接。运行结果如下:图5.1.5-1 数据库连接数据库操作:输入想要执行的数据库语句,点击执行。运行结果如下:图5.1.5-2数据库操作5.1.6 其他功能测试(1)端口扫描测试输入要扫描的本机IP地址获取内网下的其他IP地址,和想查看的端口号,点击扫描,运行结果如下:图5.1.6-1 端口扫描对比服务器上的端口开放情况:图5.1.6-2 端口连接状态(2)反向连接测试反向连接操作步骤:先在客户端上侦听4444端口图5.1.6-3 客户端侦听状态然后在浏览器中设置好要反向连接过来到客户端的IP地址,端口号,以及需要反向连接的nc程序。图5.1.6-4 服务器开启反向连接如下图,客户端侦听的端口会接收到连接。图5.1.6-5 客户端侦听状态接收到连接(3)文件下载测试此功能用于下载网络文件,操作步骤:输入想要下载的文件URI和要保存文件的路径以及名称。运行结果如下:图5.1.6-6 文件下载图5.1.6-7 文件下载结果图(4)端口映射测试此功能用于进行内网端口映射,可以通过此功能可以访问其他服务器,如FTP。运行结果如下:客户端(CentOS7)让192.168.100.1(本系统所在服务器)开启8888端口侦听,一段有数据连接到该端口,就转发给192.168.100.99(DVWA网站)的80端口。图5.1.6-8 开启端口映射然后客户端(CentOS7)访问192.168.100.1(本系统所在服务器)的8888端口,数据会被转发到192.168.100.99(DVWA网站)的80端口上。图5.1.6-9 端口映射测试结果(5)远程桌面测试远程桌面功能实现有缺陷,固只能看到远程服务器的实时桌面。运行结果如下:图5.1.6-10 远程桌面(6)环境信息测试此功能用于查看服务器的系统环境信息。运行结果如下:图5.1.6-11 系统环境信息5.2 测试总结本此测试主要分为登录测试、文件管理测试、shell测试,数据库测试和其他功能测试,主要测试其功能是否能正常使用,其性能测试忽略。测试过程中基本功能是可以正常使用的,但是,相对于市场上流行的软件,例如:Xshell,putty和secureCTR等来说,系统运行效率和功能种类,可能都有所不如,所以还需要进一步提高和优化,争取将其做得更好。第六章 安全分析6.1 编程分析本系统实现比较简单,功能比较敏感,由于没有使用一些安全开发框架,导致其安全问题需要进行关注。因为本系统是将所有jsp页面集合在一个页面,系统的账号密码是写死在代码里的,并没有写入数据库,所以编程安全尽力在于防止非法身份登录,在登录过程中采用加密登录和附加token验证,一来是防止爆破,二来是防止重放攻击和其他攻击。确保登录用户的合法性。如果条件可以,可以对加密部分进行修改,更换成比较安全的加密算法。6.2 安全部署使用此用具时,可以将本系统工具镶嵌于其他Web网站以便对其管理