php002基于Linux的远程管理系统服务器端的实现.docx

上传人:b****5 文档编号:3435892 上传时间:2022-11-23 格式:DOCX 页数:28 大小:205.82KB
下载 相关 举报
php002基于Linux的远程管理系统服务器端的实现.docx_第1页
第1页 / 共28页
php002基于Linux的远程管理系统服务器端的实现.docx_第2页
第2页 / 共28页
php002基于Linux的远程管理系统服务器端的实现.docx_第3页
第3页 / 共28页
php002基于Linux的远程管理系统服务器端的实现.docx_第4页
第4页 / 共28页
php002基于Linux的远程管理系统服务器端的实现.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

php002基于Linux的远程管理系统服务器端的实现.docx

《php002基于Linux的远程管理系统服务器端的实现.docx》由会员分享,可在线阅读,更多相关《php002基于Linux的远程管理系统服务器端的实现.docx(28页珍藏版)》请在冰豆网上搜索。

php002基于Linux的远程管理系统服务器端的实现.docx

php002基于Linux的远程管理系统服务器端的实现

分类号:

TP315UDC:

D10621-408-(2007)5814-0

密级:

公开编号:

2003032071

 

成都信息工程学院

学位论文

 

基于Linux的远程管理系统服务器端的实现

 

论文作者姓名:

孙泽玺

申请学位专业:

网络工程

申请学位类别:

工学学士

指导教师姓名(职称):

方睿(副教授)

论文提交日期:

2007年06月10日

 

基于Linux的远程管理系统服务器端的实现

摘要

该课题基于Linux操作系统,主要目的是使系统管理员的远程管理工作更加方便、简单和友好。

实现的主要功能有文件操作、命令操作、系统操作、进程操作和网络操作,这些基本上涵盖了系统管理的各个方面。

在设计上,采用了B/S结构,使得该系统可以方便的进行升级和方便用户从各种平台上对服务器进行访问;采用了安全访问技术,使得访问和管理更加安全;采用了简单和美观的界面显示技术,使得用户的浏览快捷和舒适。

该课题开发的系统需要安装运行在Linux系统的上,系统管理员可以在远程利用浏览器进行登录,通过验证后就可以方便的对系统的运行状态进行查看,对系统进行管理,对网络进行配置,对数据进行分析,要注意的是登录到本系统必须用远程服务器的root权限和密码,而且为了保证系统的安全,防止出现意外事件,管理员只能操作特定的任务。

该课题的主要意义在于可以运用PHP进行系统管理,开发的系统可以使系统管理员方便的管理远程系统。

关键词:

远程管理;B/S结构;安全访问;Linux;PHP

 

TheimplementontheserverofLinux-basedremotemanagementsystem

Abstract

ThemainpurposeofthetopicbasedontheLinuxoperatingsystemistoenableremotemanagementofthesystemadministratormoreconvenient,simpleandfriendly.Themainfunctionsachievedarefileoperations,commandoperations,systemoperations,processoperationsandnetworkoperations,thatarebasicallycoversthemanagementofthesysteminallitsaspects.Indesignterms,itusestheB/Sstructure,whichmakesiteasyandconvenientforusersupgradingandvisitingfromavarietyofplatforms;itusestheSafeAccesstechnology,whichmakemanagementandvisitingmoresecure;itusesasimpleandbeautifulinterfacedisplaytechnologythatenablestheusertobrowseitfastandcomfortable.

ThesystemdevelopedinthetopicneedbeinstalledontheLinuxoperatingsystem.Systemadministratorscanusetheremotebrowserforlanding,aftervalidatingsuccessfully,thencanfacilitatetheoperationofexaminingthesystemstate,managethesystem,configurenetwork,analysisdata.Itshouldbenotedthatthelandingonthesystemmustusetherootpasswordofaremoteserver,andtoensurethesafetyofthesystemtopreventaccidents,administratorscanonlyoperateaspecifictasks.ThemainsignificanceofthetopicliesintheusingPHPtomanagesystem,andthatdevelopmentofthesystemwillenablethesystemadministratortofacilitatethemanagementofremotesystem.

Keywords:

RemoteManagement;B/Sstructure;SafeAccess;Linux;PHP

 

目录

论文总页数:

23页

1引言1

1.1课题背景1

1.2国内外研究现状1

1.3本课题研究的意义1

1.4本课题的研究方法2

2需求分析2

2.1任务概述2

2.1.1开发目标2

2.1.2开发工具2

2.1.3开发环境3

2.1.4开发人员3

2.1.5运行环境3

2.1.6条件限制3

2.2功能分析3

2.3工作流程4

2.4性能分析5

3总体设计5

3.1系统架构5

3.2模块划分6

4具体实现7

4.1安全访问模块7

4.2文件操作模块10

4.3命令操作模块11

4.4进程操作模块13

4.5系统操作模块14

4.6网络操作模块16

5系统测试18

5.1安全访问模块18

5.2文件操作模块18

5.3命令操作模块19

5.4进程操作模块19

5.5系统操作模块19

5.6网络操作模块19

结论20

参考文献20

致谢22

声明23

1引言

1.1课题背景

远程管理是在网络上由一台电脑(主控端Remote/客户端)远距离去控制另一台电脑(被控端Host/服务器端)的技术,这里的远程不是字面意思的远距离,一般指通过网络控制远端电脑,不过大多数时候我们所说的远程控制往往指在局域网中的远程控制而言。

当操作者使用主控端电脑控制被控端电脑时,就如同坐在被控端电脑的屏幕前一样,可以启动被控端电脑的应用程序,可以使用被控端电脑的文件资料,甚至可以利用被控端电脑的外部打印设备(打印机)和通信设备(调制解调器或者专线等)来进行打印和访问互联网,就像你利用遥控器遥控电视的音量、变换频道或者开关电视机一样。

不过,有一个概念需要明确,那就是主控端电脑只是将键盘和鼠标的指令传送给远程电脑,同时将被控端电脑的屏幕画面通过通信线路回传过来。

也就是说,我们控制被控端电脑进行操作似乎是在眼前的电脑上进行的,实质是在远程的电脑中实现的,不论打开文件,还是上网浏览、下载等都是存储在远程的被控端电脑中的。

对于刚刚接触Linux的系统管理员来说,正确高效地完成各种关键的系统配置简直是一件不可能的任务。

即使是一个很有经验的Linux的管理员,也常常会为某些复杂的配置文件的格式而苦恼。

因此拥有一个Linux上的GUI管理工具一直是广大Unix爱好者的美好愿望。

虽然Linux自带有SSH字符界面远程管理工具,但对于SSH不断升级所带来的困难和图形界面友好、B/S结构的易用,还是略显笨拙和枯燥,Web管理方式使得本软件同时具有本地和远程管理的能力,访问控制和SSL支持为远程管理提供了足够的安全性。

所以我们编写本软件以更好、更容易的管理远程Linux系统,从而减少系统管理员的负担。

1.2国内外研究现状

从文献和网络资源来看,国外有过类似的软件,比如Webmin、PHPWebmin。

而这些软件都是英文,几乎没有中文版本,许多国内系统管理员不太习惯,况且有些软件是用Perl语言来写的,在效率和使用广度上有写不太满意。

1.3本课题研究的意义

对于系统管理员来说,管理整个系统是十分复杂和烦躁的工作,尤其服务器的远程管理,对系统管理人员来说是十分重要的。

本软件的开发就是为了方便系统管理员对本地和远程安装了Linux系统的服务器进行管理,增加管理的方便性,利用B/S结构也从另外一方面减少了管理员的劳动量。

管理员利用浏览器在远程登录后,可以方便的对服务器进行运行状态的查看,对网络服务进行配置,对一些数据进行分析,而且可以对异常现象做出快速的反应。

从Windows环境的管理转到Linux环境的管理时所面临的挑战之一是,您需要学习利用新的工具。

作为一个管理员,您希望理解操作系统的细节以发挥它的最大功效。

但是,当您还处在学习阶段时,就需要去完成具体的工作。

为加速您驾驭Linux的进度,我们安装一个这样的远程管理程序,对于系统管理员来说是十分方便的。

1.4本课题的研究方法

本系统的开发要求采用B/S结构,模拟Webmin进行设计与开发。

因此,本次毕业设计应首先分析Webmin的相关功能,结合本次毕业设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识选择所熟悉的开发工具进行本毕业设计的开发;在设计中以需求分析为基础,写出系统开发计划、实现流程及相关问题的实现方法;同时,在开发设计与实现中,要保存好相关的设计文挡,为后面的毕业论文的写作准备材料;最后,系统开发完毕后,进行调试和试运行,做好调试和试运行的相关记录,也为后面的毕业论文的写作准备材料。

主要的方法有:

首先只写文件操作部分以了解该系统的工作方式及系统的大致面貌,然后逐步增加其他的功能与模块,最后对整个系统进行修饰整理,从而完该系统。

2需求分析

2.1任务概述

2.1.1开发目标

1.能够安全的登录远程主机,并在管理过程中进行安全的交互。

2.能够对远程主机的文件系统进行管理,可以对文件或者文件夹进行查看、

创建、删除、移动、上传等操作。

3.能够发送命令到远程主机以进行解释和运行并把运行的结果发送回来。

4.能够对远程主机的正在运行的进程进行查看和管理。

5.能够对远程主机系统进行管理,可以查看系统信息、关机或重启、修改

密码、管理用户和组、管理软件包等。

6.能够对远程主机的网络服务进行管理,可以进行管理Apache服务器,管

理DNS服务器,管理MySQL服务器,管理SSH服务器管理DHCP

服务器,查看网络参数,配置网络参数等操作。

7.使得远程管理更加人性化、更加简单、更加方便、更加友好。

8.要使得该软件容易升级和修改、扩展,容易被使用。

2.1.2开发工具

开发语言主要使用PHP、HTML,在PHP不能解决的地方使用SHELL或C。

2.1.3开发环境

操作系统:

Fedoracore5

PHP引擎:

PHP5.1

Web服务器:

APACHE2

浏览器:

Mozillafirefox2.0

2.1.4开发人员

孙泽玺,主要负责服务器端的开发。

徐斌,主要负责客户端的开发。

2.1.5运行环境

该软件运行在安装有Linux操作系统、Apache服务器的远程主机上。

运行之前需要开启Apache服务器,并进行一些设置。

2.1.6条件限制

本系统登录必须以远程服务器的root权限和密码登录,而且为了保证系统的安全,防止出现以外事件,管理员只能操作特定的任务。

如果该系统安装在其他的操作系统中,例如windows操作系统,那么会用某些模块不能运行或者不能正确运行。

2.2功能分析

根据该课题的要求与目标,可以了解到该系统主要有以下功能:

1、安全访问

安全访问是指登录时要利用HTTPS协议、SSL套节字登录到远程主机,不能被黑客或者恶意攻击者探测到登录的用户名和密码,并且在管理过程中也要采取安全访问的技术,以防止重要数据的丢失、截取或者被攻击。

2、文件操作

文件操作主要是对文件系统进行管理,主要包括查看文件或目录信息,新建文件或目录,删除文件或目录,复制文件或目录,运行文件,上传文件,下载文件等等。

3、命令操作

命令操作就是在远程主机把命令发送过去,服务器对各种SHELL命令的解释与执行,并且把执行后的结果再发送到远程主机显示出来。

4、进程操作

进程操作就是对远程主机的正在运行的进程进行管理,主要包括查看或终止正在运行的进程,查看开启的服务列表(端口号)、对开启服务进行管理、查看当前系统所有正在运行的进程并且可以对进程进行相关操作。

5、系统操作

系统操作就是对远程主机的Linux系统进行的系统方面的管理,主要包括关机或重启,修改密码,查看系统信息,管理用户和组,管理软件包。

6、网络操作

网络操作就是对远程主机的网络服务进行的管理,主要包括管理Apache服务器,管理DNS服务器,管理MySQL服务器,管理SSH服务器,管理DHCP服务器,查看网络参数,配置网络参数。

2.3工作流程

根据对该系统的设计目标和要求,可以确定从总体上,该系统的工作流程分为三大部分:

认证过程、管理过程、注销过程。

整个系统的工作流程如图1:

图1工作流程

1、认证过程

管理员端通过浏览器登录此远程管理系统,输入此系统用户名与密码,如果用户名或密码错误则显示错误信息,并提示重新输入;正确则进入此管理系统,获得一定权限,管理系统服务。

该认证过程要在安全的情况下进行,不能以明文进行传输。

2、管理过程

当用户正确进入系统后,即可进行系统管理,点击某管理模块,设置某项服务,系统通过网络发送命令到Web服务器,与服务器获得交互,服务器通过PHP引擎解析获得命令,调用相应脚本并执行,获得结果返回到远程主机的浏览器。

3、注销过程

管理员完成远程主机更新或管理后,可点击注销以退出本远程管理系统,系统发送注销命令到服务器,服务器使所登录用户失去管理权限,切断用户与服务器连接,返回到管理系统登录页面。

2.4性能分析

根据该课题的要求与目标、现在的技术状况,可以确定该系统在性能方面要达

到以下目标:

1.该系统能够处理多个用户同时连接到服务器的情况而不出什么问题(比如100个)。

2.该系统能够及时地返回执行的结果,并且当命令不能正确执行时,能够进行提示。

3.该系统要在页面非正常情况下关闭时,能够正确的识别,并自动的断开与远程客户机的连接。

4.该系统要有防止访问单独文件的情况,不管要访问什么样的文件都必须通过主页面。

5.对于在系统执行过程中出现的异常,程序能够正确的识别并显示相关的信息进行提示。

6.该程序要防止不正确或者非法命令的执行,防止在程序运行过程中,因为执行了某个命令而导致整个系统的崩溃或者连接的断开或者远程服务器的死机。

3总体设计

3.1系统架构

因为该系统采用B/S模式并且进行远程管理,所以整个系统可以分为五大模块,即客户端、Internet、Linux操作系统、Apache服务器、PHP解释器。

客户端是浏览器,客户可以在远程利用浏览器登录服务器进行管理远程Linux系统。

Internet是连接服务器和客户端的媒介,用来传输命令和数据。

Linux操作系统运行在远程服务器上,管理整个系统,开发的程序也是运行在Linux操作系统上。

Apache服务器是web服务器用来传输web页面,并调用PHP引擎对PHP脚本进行解释和执行,并把结果传输到远程浏览器。

PHP解释器是用来对PHP脚本进行解释执行的,PHP解释器根据Apache的不同调用参数对不同的脚本进行解释,并把执行后得到的html文件返回给Apache服务器。

该系统的框架可以用图2表示:

图2系统架构

3.2模块划分

根据前面的需求分析和系统架构可知,该系统可以划分为六大模块如图3。

图3系统模块

1、安全访问模块

主要负责客户端对服务器端的安全访问,主要采用访问控制技术和加密技术。

在服务器端的文件系统内采用访问控制技术,在服务器端和客户端的传输过程中采用加密技术。

2、文件操作模块

主要负责对远程Linux操作系统的文件系统进行操作,这是操作远程主机的基础。

当首次进行文件操作时,界面显示该系统脚本文件所在的目录和文件的属性,并在其后显示可以进行操作的命令按钮,并且在界面的上方有转换目录的文本框和命令。

主要利用PHP的cookie传递命令,在具体操作方面主要利用PHP的文件IO函数来实现,在显示方面,编写了一个格式类,可以调用该类的相应函数来格式或者显示数据。

3、命令操作模块

主要负责对客户端传送过来的SHELL命令进行解释和执行,并及时地把结果返回过去,做这一模块时,一定要注意结果返回的及时性和错误命令的正确提示。

主要利用HTML的POST方法把命令传输到服务器,然后利用PHP的系统函数system、exec、passthru的函数来执行相应的命令并把执行的结果传输到浏览器。

4、进程操作模块

主要负责对远程Linux操作系统的进程进行显示,并能对每个进程进行操作,例如杀死某个进程。

主要利用system函数执行SHELL命令ps和grep得到进程列表,并在浏览器端用表格显示出来,利用posix_kill函数把某个进程杀死。

5、系统操作模块

主要负责对Linux的主要系统管理的操作,可以利用这些系统操作对远程Linux系统进行简单的系统管理。

总体思路为,利用PHP的_POST数组得到相应的传输过来的命令,然后利用PHP的system函数执行相应的SHELL命令,并把结果传输到服务器。

6、网络操作模块

主要对远程Linux系统的网络进行简单的管理和配置。

实现的总体思路为,在服务器端修改某些跟网络管理相关的文件的访问权限以使Apache可以访问和修改这些文件,利用PHP的_POST数组得到相应的传输过来的网络操作命令,然后利用PHP的system函数执行相应的SHELL命令,并把结果传输到服务器。

4具体实现

4.1安全访问模块

安全访问主要通过本机访问控制文件和PHP脚本身份验证来进行实现。

1、主机访问控制文件

在远程主机中,要开启apache服务器,并在apache的配置文件中添加要访问的目录的访问控制选项。

之后在要访问的目录中建立访问控制文件.htaccess和.remoteadminpasswd。

.htaccess文件定义了用户名和密码文件的路径和其他一些控制选项。

.remoteadminpasswd文件有用户名和加密的密码。

Apache的配置是为了实现目录保护和基本验证,但为了提高用户的权限,还需要对服务器进行一些配置。

1)查看httpd.conf文件找到User字段,查看Apache启动用户(默认为apache);

2)编辑/etc/passwd文件,找到apache用户行,修改其shell(默认为/bin/nologin或/bin/false)为/bin/bash;

3)编辑/etc/sudoers文件,在文件中rootALL=(ALL)ALL字段的下一行添加apacheALL=NOPASSWORD:

ALL,使得apache用户能够通过sudo命令执行所有命令。

经过此配置后,apache用户只要使用sudo命令即可获得root权限。

为了保证系统的安全性,在此对Apache Web服务器的目录执行访问控制,使用.htaccess访问文件和htpasswd程序为一个目录建立ACL,来对用户进行身份验证,并在.htaccess文件中设置使用SSL连接,完善安全性。

假设PHPWebmin位于/var/www/phpwebmin目录中。

1)配置httpd.Conf

用vi编辑器打开Apache配置文件httpd.Conf(默认在/etc/httpd/conf/目录下),找到字段,在下面的属性设置中添加或修改

AllowOverrideALL//此参数设置哪些目录使用.ltaccess进行保护;

2)为所保护目录建立ACL

进入phpwebmin目录,cd/var/www/phpwebmin,在此目录下建立隐藏文件.htaccess(必须在htaccess文件前添加一个点号,如果不这样做,就无法建立ACL,因为点号表示建立一个隐藏文件)vi.htaccess,在.htaccess文件中输入如下代码:

SSLRequireSSL//使用SSL安全连接

AuthName"PHPWebmin"  //验证名称

AuthTypeBasic

requirevalid-user//允许password文件中的所有用户访问

AuthUserFile/var/www/phpwebmin/.phpwebminpasswd//身份数据文件;

3)创建用户身份验证数据库

在命令行下输入以下口令创建用户身份验证数据库文件,会要求你为用户admin创建密码:

htpasswd-c/var/www/phpwebmin/.phpwebminpasswdadmin

Newpassword:

Re-typenewpassword:

建立后的.phpweminpasswd文件内容类似于:

admin:

Op96DPmXTKy5w//用户名:

MD5加密后的密码

若系统没有安装htpasswd,也可在网上生成用户名密码后放入.phpwebminpasswd文件.

这样,就已经为Apache服务器建立了一个用户账号数据库,并对phpwebmin目录实行了目录保护,并实现了用户基本验证,需要用安全连接https:

//localhost/phpwebmin/ 进行访问,访问过程中会弹出验证对话框。

2、PHP脚本的身份验证

利用_GET数组判断是登录还是注销,如果是登录,则验证密码是否正确,如果正确则进入管理界面,并在客户端设置cookie以记录登录信息,否则提示相应的错误信息。

验证流程如图4:

图4身份验证流程

身份验证的主要代码如下:

if($_GET['action']=="logout")

{

setcookie("adminpass","");

echo"";

echo"

12px;font-family:

Verdana\">注

销成功......

三秒后自动退出或单击这里退出程序界面>>>";

ob_end_flush();

exit;

}

if($_POST['do']=='login')

{

$thepass=trim($_POST['adminpass']);

if($admin['pass']==$thepass)

{

setcookie("adminpass",$thepass,time()+(1*24*3600));

echo"

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

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1