ccidnet????

出版日期:2001-10-22 总期号:1065 本年期号:80

本期导读
要闻综合
电脑工作室
渠道与市场
产品与应用
软件与服务
东北专刊
华东专刊
华南专刊
华中专刊
西北专刊
西南专刊
InfoTimes
Linux实现免费个人主页

高克强、李妍莹

  基于Linux环境的免费个人主页系统融合了在Linux/Unix环境下进行进程间通信、Sybase SQL数据库接口、CGI编程利用Socket编写客户/服务模式应用等多项技术。本文以实际开发一个完整系统为例,简单描述主要程序模块的实现方法及相关功能的配置。

  Linux是一个可运行于多种硬件平台的类Unix的遵循GPL发放许可的操作系统,它具有稳定、高效、强壮等诸多特性,符合POSIX规范,有丰富的开发工具和各类应用软件,是一种良好的网络开发与应用平台。在其上实现网站的个人主页系统有着得天独厚的优势。基于Linux环境的免费个人主页系统均以Linux 及其提供的相关应用软件为基础,并在其基础上进行二次开发与整合,利用相关接口方法,将FTP、WEB、E-mail、数据库等服务功能进行集成,实现了一个功能完善的个人主页系统。


  功能多样


  基于Linux环境的免费个人主页系统主要实现以下功能:

  系统运行功能

  1.通过系统提供的界面申请账号及磁盘空间,自动生成用户系统信息及目录结构。

  2.对用户空间进行限额,以免某些用户恶意占据磁盘空间,破坏系统的正常运行。

  3.密码修改。为用户提供界面进行登录密码的修改,并对于长期不进行密码修改的用户进行通知,必要时对于账号实施锁定处理。

  4.登记资料修改。通过系统提供的界面允许用户在其登记信息发生变化时进行修改。

  5.访问排行。根据用户的访问流量,给出主页的总排行及分类排行。

  6.自动注销账户。根据用户的注销账户请求,自动清除系统账号,释放其所占据的系统资源,如磁盘空间、数据库空间等。

  7.过期账号的提前通知及自动清除账号功能。对于长期不进行主页维护的用户,在系统规定的时限内进行邮件通知,对于超过规定时限的账号自动进行清除,回收系统资源。

  其它辅助功能

  个性化的留言板、个人主页计数器等。


  基于Linux免费个人主页的系统结构

  用于系统维护的高级管理功能

  锁定账户、清除账户、列入黑名单、群发邮件等。


  主要软件支持环境


  免费个人主页系统需要HTTP 服务器、E-Mail服务器、SQL 数据库、FTP 服务器等软件支持环境。

  HTTP 服务器(Apache HTTP Server):提供Web 浏览服务。

  HTTP超文本传送协议是万维网的基础,它是TCP/IP协议族中的应用层协议之一。在Linux系统中广为使用的HTTP服务器是Apache HTTP Server,它遵循GPL发放许可,是在Linux系统中实现个人主页的基础。HTTP服务器可将Linux系统的每个系统用户home目录下的某一特定目录解释为该用户的Web 主页面的“/”,通过浏览器按如下的URL http://server.domain/~linuxusr 访问服务器时便可看到登录名为linuxusr的用户的主页面。此外,它还可完成虚拟服务器、SSI、WWW鉴权等诸多功能,这里我们只使用其基本功能。

  E-Mail服务器(Sendmail):提供邮件的收发处理服务。

  E-Mail主要用于系统与用户的通信,如用户申请后的确认账号通知,用户过期账号的提前通知等。在Linux内的邮件系统采用的是广为使用的Sendmail服务器,利用Socket API通过SMTP标准协议可与Sendmail服务器进行通信,实现信件的收发。

  SQL 数据库(Sybase ASE for linux):处理系统信息的存储及检索请求。

  主要完成用户信息的登记、查询、主页访问情况的统计等功能,是系统管理信息的存储以及控制、鉴权、管理中心,所有用户的账号生成、注销、用户合法性检查等均以此为基础。

  FTP 服务器(wu-ftp server 2.6):完成各种文件的上下载及个人网站的远程管理。

  主要为用户提供主页文件的远程管理功能,实现文件的上传、下载,以及文件系统所提供的文件读写、删除、改名等。此外,还要实现各个用户间的逻辑隔离,保证每个用户仅能看到和操作自己的文件,做到安全和保密。

  (注:以上各服务软件包除SQL数据库外,其它三种服务软件属于Linux默认的安装配置,Sybase SQL 数据库可从Sybase公司的网站下载,网址为http://www.sybase.com


  问题及解决方法


  如何通过Web 界面实现用户账号的自管理和自动管理功能,这是系统实现最为关键的问题,因为Apache HTTP服务器及 Sendmail邮件服务器均以操作系统的UID或用户账号名作为服务的对象,同时这也是涉及问题最多的事项,主要表现为:

  1.在Linux系统内,Web 服务器是以一个名为nobody账号的身份在运行的,而且这个账号属于一个名为 nobody 的组,由于系统安全的缘故,这个账号的权限极低,不可能完成系统账号的管理工作。由于对于账号的各种管理工作必须由以Root身份运行的程序或系统调用来完成,所以想通过Web 界面来进行用户账号的自动管理便存在一个天然的障碍。

  2. 由于用户与Web服务器的交互方式通过标准CGI的规范进行,这种方式的工作模式是属于请求/应答式,即对于一个正在运行的CGI进程,某个用户如果想获得正确的请求结果,必须要等待服务器的响应发回来,才能进行下一步的动作。其工作方式属于间歇式的,即只能将一个请求/应答作为一个运行实体来看待,只在当前的请求/应答体完成后,才能启动下一请求/应答过程,亦即CGI不能连续执行,只能以请求/应答方式执行。另一方面,其参数的传递仅能通过以Get或Post方式,不能连续传递。

  解决方法:在后台以Root身份运行一服务器进程,使其监听于某一空闲的TCP/IP端口,各客户进程通过Socket与服务器进行通信,信息内容的真实性通过数据库中存储的信息进行验证,由该服务器进程完成Root权限的相关功能。为保证通信的可靠性,服务器检查来自于Socket的信息,只有合法的客户进程才能与服务器进行通信,否则,将被服务器拒绝 。

  除此以外,如何解决服务器的各项安全问题,也是系统实施的关键。它表现在以下三个方面:

  1.保证各个系统用户不能通过Telnet远程登录到系统上来,而对自己的文件管理仅能通过FTP方式来进行。

  该问题的解决方法是通过TCP/IP的协议过滤软件包或防火墙软件包,对于访问服务器的客户的TCP/IP属性进行控制,对于用户只开放特定的端口或特定的地址范围等以达到上述目的,可选的软件包包括Ipchains、Tcpwrapper等。

  2.保证各个系统用户之间的逻辑隔离,即每个用户仅能看到和操作自己的文件,而不能访问或操作其它用户或系统的文件,实质问题是将用户限制在自己的HOME目录中工作。

  3.实现系统内部服务器对用户的隐蔽。

  对于问题2及问题3可修改FTP服务器的配置文件,启动chroot功能,将所有用户归并到一个guest属性的用户组中,就可达到上述目的。


  实例系统


  基于Linux的免费个人主页实例系统主要特性如下:

  1.每个用户分配磁盘空间量:30M。

  2.最长主页更新时限:3个月。超过该时限而未更新主页,系统视为用户自动放弃,将回收用户占用的系统资源。

  3.留言保留期限:7天。系统自动清除存储在数据库内超过7天的留言信息。

  4.日最大申请用户数:100人。每天最多接收100人的主页申请。

  5.日修改密码最短时间间隔:2小时。若用户在一日内进行多次密码修改,则两次密码修改时间间隔不能低于2小时。

  6.账号注销最短时间间隔:12小时。用户申请账号后必须在12小时后方可注销。

  在本文所示基于Linux的免费个人主页的实例系统软件结构图中,HPGD是后台的守候进程,完成系统关键任务处理;Sybase是SQL数据库引擎,完成数据的存储及检索,是系统的控制中心;Web Server是httpd服务器,利用HTTP协议与浏览器间传送超文本信息,同时通过CGI/DBLibrary从数据库或操作系统获取动态数据;Sendmail是邮件服务器,用于进行邮件的收发。在系统的实现中,HPGD和Sybase处于主要地位,对于邮件服务器和Web服务器利用其基本功能。

  通过Linux操作系统提供的服务软件和实用程序,以及对操作系统相关配置文件的修改,加上为协调各类服务软件所编写的各类接口程序,实现了一个完整的个人网站的实用系统,目前该系统已通过测试且稳定运行近一年时间,效果良好。在此基础上还可以作进一步的开发,增加其它的个性化服务,如个人邮箱、个人论坛、聊天室、个人电子文件管理及Webmail等等。在崇尚个性的网络信息时代,相信这些服务一定会赢得网民的青睐,同时也会给ICP网站服务开拓出更为广阔的发展空间。

  (注:基于Linux环境的免费个人主页系统的详细设计请见赛迪网http://www.ccidnet.com