h20xx032071_基于linux的远程管理系统服务器端的实现内容摘要:

,主要包括查看文件或目录信息,新建 文件或目录,删除文件或目录,复制文件或目录,运行文件,上传文件,下载 文件等等。 命令操作 命令操作就是在远程主机把命令发送过去,服务器对各种 SHELL 命令的解释 与执行,并且把执行后的结果再发送到远程主机显示出来。 进程操作 进程操作就是对远程主机的正在运行的进程进行管理,主要包括查看或终止 正在运行的进程,查看开启的服务 列表(端口号)、对开启服务进行管理、 查 看当前系统所有正在运行的进程并且可以对进程进行相关操作。 第 页 共 23 页 3 系统操作 系统操作就是对远程主机的 Linux 系统进行的系统方面的管理,主要包括关 机或重启,修改密码,查看系统信息,管理用户和组,管理软件包。 网络操作 网络操作就是对远程主机的网络服务进行的管理,主要包括管理 Apache 服 务器,管理 DNS 服务器,管理 MySQL 服务器,管理 SSH 服务器, 管理 DHCP 服务 器,查看网络参数,配置网络参数。 工作流程 根据对该系统的设计目标和要求, 可以确定从总体上,该系统的工作流程分 为三大部分:认证过程、管理过程、注销过程。 整个系统的工作流程如图 1: 图 1 工作流程 认证过程 管理员端通过浏览器登录此远程管理系统,输入此系统用户名与密码,如果 用户名或密码错误则显示错误信息,并提示重新输入;正确则进入此管理系统, 获得一定权限,管理系统服务。 该认证过程要在安全的情况下进行,不能以明文 进行传输。 管理过程 当用户正确进入系统后,即可进行系统管理,点击某管理模块,设置某项服 务,系统通过网络发送命令到 Web 服务 器,与服务器获得交互,服务器通过 PHP 引擎解析获得命令,调用相应脚本并执行,获得结果返回到远程主机的浏览器。 注销过程 管理员完成远程主机更新或管理后,可点击注销以退出本远程管理系统,系 统发送注销命令到服务器,服务器使所登录用户失去管理权限,切断用户与服务 第 页 共 23 页 4 器连接,返回到管理系统登录页面。 性能分析 根据该课题的要求与目标、现在的技术状况,可以确定该系统在性能方面要达 到以下目标: (比如 100 个)。 ,并且当命令不能正确执行时,能够进 行提示。 ,能够正确的识别,并自动的断开与 远程客户机的连接。 件的情况,不管要访问什么样的文件都必须通 过主页面。 ,程序能够正确的识别并显示相关的信 息进行提示。 ,防止在程序运行过程中,因为 执行了某个命令而导致整个系统的崩溃或者连接的断开或者远程服务器的 死机。 3 总体设计 系统架构 因为该系统采用 B/S 模式并且进行远程管理,所以整个系统可以分为五大模 块,即客户端、 Inter、 Linux 操作系统、 Apache 服务器、 PHP 解释器。 客户端 是浏览器,客户可以在远程利用浏览器登录服务器进行管理远程 Linux 系统。 Inter 是连接服务器和客户端的媒介,用来传输命令和数据。 Linux 操作系统运行在远程服务器上,管理整个系统,开发的程序也是运行 在 Linux 操作系统上。 Apache 服务器是 web 服务器用来传输 web 页面,并调用 PHP 引擎对 PHP 脚 本进行解释和执行,并把结果传输到远程浏览器。 PHP 解释器是用来对 PHP 脚本进行解释执行的, PHP 解释器根据 Apache 的不 同调用参数 对不同的脚本进行解释,并把执行后得到的 html 文件返回给 Apache 服务器。 该系统的框架可以用图 2 表示 : 第 页 共 23 页 5 图 2 系统架构 模块划分 根据前面的需求分析和系统架构可知,该系统可以划分为六大模块如图 3。 图 3 系统模块 安全访问模块 主要负责客户端对服务器端的安全访问,主要采用访问控制技术和加密技 术。 在服务器端的文件系统内采用访问控制技术,在服务器端和客户端的传输过 程中采用加密技术。 文件操作模块 主要负责对远程 Linux 操作系统的文件系统进行操作,这是操作远程主机的 基础。 当首次进行文件操 作时,界面显示该系统脚本文件所在的目录和文件的属 性,并在其后显示可以进行操作的命令按钮,并且在界面的上方有转换目录的文 本框和命令。 主要利用 PHP 的 cookie 传递命令,在具体操作方面主要利用 PHP 第 页 共 23 页 6 的文件 IO 函数来实现,在显示方面,编写了一个格式类,可以调用该类的相应 函数来格式或者显示数据。 命令操作模块 主要负责对客户端传送过来 的 SHELL 命令进行解释和执行,并及时地把结果 返回过去,做这一模块时,一定要注意结果返回的及时性和错误命令的正确提示。 主要利用 HTML 的 POST 方法把命令传输到服务器,然后利用 PHP 的系统函数 system、 exec、 passthru 的函数来执行相应的命令并把执行的结果传输到浏览 器。 进程操作模块 主要负责对远程 Linux 操作系统的进程进行显示,并能对每个进程进行操 作,例如杀死某个进程。 主要利用 system 函数执行 SHELL 命令 ps 和 grep 得到 进程列表,并在浏览器端用表格显示出来,利用 posix_kill 函数把某个进程杀 死。 系统操作模块 主要负责对 Linux 的主要系统管理的操作,可以利用这些系统操作对远程 Linux 系统进行简单的系统管理。 总体思路为,利用 PHP 的 _POST 数组得到相应 的传输过来的命令,然后利用 PHP 的 system 函数执行相应的 SHELL 命令,并把 结果传输到服务器。 网络操作模块 主要对远程 Linux 系统的网络进行简单的管理和配置。 实现的总体思路为, 在 服务器端修改某些跟网络管理相关的文件的访问权限以使 Apache 可以访问和 修改这些文件,利用 PHP 的 _POST 数组得到相应的传输过来的网络操作命令,然 后利用 PHP 的 system 函数执行相应的 SHELL 命令,并把结果传输到服务器。 4 具体实现 安全访问模块 安全访问主要通过本机访问控制文件和 PHP 脚本身份验证来进行实现。 主机访问控制文件 在远程主机中,要开启 apache 服务器,并在 apache 的配置文件中添加要访 问的目录的访问控制选项。 之 后在要访问的目录中建立访问控制文件 .htaccess 和 .remoteadminpasswd。 .htaccess 文件定义了用户名和密码文件的路径和其他 一些控制选项。 .remoteadminpasswd 文件有用户名和加密的密码。 Apache 的配置是为了实现目录保护和基本验证,但为了提高用户的权限, 还需要对服务器进行一些配置。 1) 查看 文件找到 User 字段,查看 Apache 启动用户(默认为 第 页 共 23 页 7 apache); 2) 编辑 /etc/passwd 文件,找到 apache 用户行,修改其 shell(默认为 /bin/nologin 或 /bin/false)为 /bin/bash; 3) 编辑 /etc/sudoers 文件,在文件中 root ALL=(ALL)ALL 字段的下一行添 加 apache ALL=NOPASSWORD:ALL,使得 apache 用户能够通过 sudo 命令执行所有 命令。 经过此配置后, apache 用户只要使用 sudo 命令即可获得 root 权限。 为了保证系统的安全性,在此对 Apache Web 服务器的目录执行访问控制 , 使用 .htaccess 访问文件和 htpasswd 程序为一个目录建立 ACL,来对用户进行身 份验证,并在 .htaccess 文件中设置使用 SSL 连接,完善安全性。 假设 PHPWebmin 位于 /var//phpwebmin 目录中。 1)配置 用 vi 编辑器打开 Apache 配置文件 (默认在 /etc/d/conf/ 目录下),找到 Directory /var/字段,在下面的属性设置中添加或修改 AllowOverride ALL //此参数设置哪些目录使用 .ltaccess 进行保护; 2)为所保护目录建立 ACL 进入 phpwebmin 目录, cd /var//phpwebmin,在此目录下建立隐藏文 件 .htaccess(必须在 htaccess 文件前添加一个点号,如果不这样做,就无法建 立 ACL,因为点号表示建立 一个隐藏文件 ) vi .htaccess,在 .htaccess 文件中 输入如下代码: SSLRequireSSL //使用 SSL安全连接 AuthName PHP Webmin AuthType Basic //验证名称 require validuser //允许 password文件中的所有用户访问 AuthUserFile /var//phpwebmin/.phpwebminpasswd //身份数据文件; 3)创建用户身份验证数据库 在命令行下输入以下口令创建用户身 份验证数据库文件,会要求你为用户 admin 创建密码: htpasswd c /var//phpwebmin/.phpwebminpasswd admin New password: Retype new password: 建立后的 .phpweminpasswd 文件内容类似于: admin:Op96DPmXTKy5w //用户名 :MD5 加密后的密码 若 系 统 没 有 安 装 htpasswd , 也 可 在 网 上 生 成 用 户 名 密 码 后 放 第 页 共 23 页 8 入 .phpwebminpasswd 文件. 这样,就已经为 Apache 服务器建立了一个用户账号数据库,并对 phpwebmin 目 录 实 行 了 目 录 保 护 , 并 实 现 了 用 户 基 本 验 证 , 需 要 用 安 全 连 接 进行访问,访问过程中会弹出验证对话框。 PHP 脚本的身份验证 利 用 _GET 数组判断是登录还是注销,如果是登录,则验证密码。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。