随着Internet越来越普及,各种各样的虚拟主机也越来越多,由于虚拟主机需要同时向大量不同的用户提供安全的网络应用环境,因此搭建一个虚拟主机平台除了需要架设WEB和FTP服务器,还涉及到一些虚拟主机环境所特有的问题。以下就对这些特有的问题进行归纳和分析。我个人认为在建立虚拟主机时主要需要注意以下三个大方面:
1.用户与磁盘空间和域名的绑定;
2.用户使用磁盘空间的容量限制(磁盘配额);
3.IIS和用户环境的安全问题(我使用的是Windows Server系统);
下面我就以这三个方面在Windows 2003 Enterprise Server具体如何实现做一个详细的介绍。
一、用户与磁盘空间和域名的绑定
先打开计算机管理(要是服务器已经升成为AD模式,就打开Active Directory用户与计算机),点击展开本地用户和组,右键单击用户模块分别创建两个用户帐号。我这里建立的用户帐号依次为test1、test2。注意,为了安全考虑,请在组的模块中新建一个组。把用于虚拟主机的用户归纳到里面,并把用户原来隶属于的User组删除。(作为一个称职的管理员,需要注意的小细节是很多的,不然一个错误的细节就会引起灾难)如图1:
(图1)
建立好帐号后,就在FTP空间目录下先建立一个LocalUser文件夹。然后对应所使用的帐号建立子文件夹。如:要是FTP空间指定的是D:\ WEB_Space文件夹,那就在这个文件夹下创建一个LocalUser文件夹。接着建立两个子文件夹:test1、test2.如图2:
(图2)
由于刚才我们建立用户帐号时,把它们单独的归纳到一个组中,这时就需要在FTP空间根目录属性的安全选项卡中把这个组添加进去,用户将无法通过FTP访问。如图3:
(图3)
接着我们需要建立FTP 用户隔离站点。这个功能是以前版本的IIS中FTP站点所没有的,FTP 用户隔离为 Internet 服务提供商 (ISP) 和应用服务提供商提供了解决方案,使他们可以为客户提供上载文件和 Web 内容的个人 FTP 目录。FTP 用户隔离通过将用户限制在自己的目录中,来防止用户查看或覆盖其他用户的 Web 内容。因为顶层目录就是 FTP 服务的根目录,用户无法浏览目录树的上一层。在特定的站点内,用户能创建、修改或删除文件和文件夹。FTP 用户隔离是站点属性,而不是服务器属性。无法为每个 FTP 站点启动或关闭该属性。所以在建立FTP站点的时候就应该选择好,不然站点建立以后,将无法修改。
FTP 用户隔离共有三种模式:
不隔离用户:该模式不启用 FTP 用户隔离。该模式的工作方式与以前版本的 IIS 类似。由于在登录到 FTP 站点的不同用户间的隔离尚未实施,该模式最适合于只提供共享内容下载功能的站点或不需要在用户间进行数据访问保护的站点。
隔离用户:该模式在用户访问与其用户名匹配的主目录前,根据本机或域帐户验证用户。所有用户的主目录都在单一 FTP 主目录下,每个用户均被安放和限制在自己的主目录中。不允许用户浏览自己主目录外的内容。如果用户需要访问特定的共享文件夹,您可以再建立一个虚拟根目录。该模式不使用 Active Directory 目录服务进行验证。 注意 当使用该模式创建了上百个主目录时,服务器性能会下降。
用 Active Directory 隔离用户:该模式根据相应的 Active Directory 容器验证用户凭据,而不是搜索整个 Active Directory,那样做需要大量的处理时间。将为每个客户指定特定的 FTP 服务器实例,以确保数据完整性及隔离性。当用户对象在 Active Directory 容器内时,可以将 FTPRoot 和 FTPDir 属性提取出来,为用户主目录提供完整路径。如果 FTP 服务能成功地访问该路径,则用户被放在代表 FTP 根位置的该主目录中。用户只能看见自己的 FTP 根位置,因此受限制而无法向上浏览目录树。如果 FTPRoot 或 FTPDir 属性不存在,或它们无法共同构成有效、可访问的路径,用户将无法访问。
打开Internet信息服务(IIS)管理器,点击展开服务器,右键单击FTP站点,新建一个FTP站点,在建立向导中,因为我的服务器不是Active Directory模式,所以我们选择隔离用户这个选项。如图4:
(图4)
完成建立向导后,开打新建立的FTP站点属性,点击属性中的安全用户选项卡,把允许匿名连接关闭。确定后退出。
最后是域名的绑定,域名绑定有两种定义,第一种是直接使用完整域名绑定WEB服务,如在服务器上提供www.test1.com和www.test2.com空间服务,第二种是开设子域名服务,如提供test1.yesky.com和test2.yesky.com空间服务。这两种在工作原理上是一样的,但第二种在操作上有一些不同。需要自己服务器的DSN支持。
首先我们让我们来了解一下关于域名(DNS)的基本知识,在我们要了解DNS,首先要了解几个名词:域名空间;根域;顶级域;二级域;主机名;区域。
域名空间:是DNS名的结构统称,他的结构主要是由根域,顶级域,二级域和主机名组成。
根域:是处在整个结构的顶级,是用点(.)表示的。由国外的几个公司管理的。55555没有我们的份~郁闷!!)
顶级域:是由2-3个英文字母组成,并且有着一定的意义,一般采用相对意义的英文单词缩写或相对代码。如:COM是指商业机构,GOV是指政府机构,CN是指中国……
二级域:是由一些域名提供商出租给个人或企业、机构的服务。如www.yesky.com这个域名中yesky就属于二级域。
主机名:是用来表示Internet或内部网的计算机名称,但大家注意一点,在Internet上,有的时候主机名指代表一台服务器的IP地址,而不是服务器的名称,这一点是和内部网有区别的!
区域:是域名空间中的一个离散部分。区域主要是用来把一个域名变成可管理的几个部分,如:www.yesky.com这个域名我们可以把他划分成www和yesky,com这两个部分。这样,我们就可以利用yesky.com这部分生成不同的主机名。如mail.yesky.com;bbs.yesky.com等等。这一点比较重要。
DSN服务工作的流程我们可以把它称作名字解析过程,它共分为两种:正向搜索和反向搜索。正向搜索是把一个域名解析成一个IP,我们这里就用Internet上的www.yesky.com域名做一个案例。我们先在IE浏览器中输入www.yesky.com这个域名,然后计算机将自动把这个域名传递给本地DNS服务器(也就是指在本机网卡属性中TCP/IP协议的DSN服务器输入框里输入的IP地址所对应的服务器),DNS服务器收到信息后,将在自己的区域表中搜索有没有该域名所对应的IP!有则返回,若没有,它则会把搜索的信息传递给国外的几个根域DSN服务器之一,请求解析该域名。根域DSN服务器则返回一条对COM域DNS服务器的IP地址给本地DNS服务器引用(由于yesky.com的顶级域是COM所以返回COM域DNS服务器的IP地址),本地DNS服务器在根据IP地址给COM域DNS服务器发送一条www.yesky.com域名解析请求的信息,COM域DNS服务器返回一条对yeskyDSN服务器的IP地址指引,然后本地DNS服务器再根据收到的IP地址给yeskyDSN服务器,发送一条www.yesky.com域名解析请求的信息,yeskyDSN服务器根据请求反馈给www的IP地址,本地服务器再把这个IP反馈给我们。这时解析完成,我们也就打开了www.yesky.com的网页。
反向搜索正好相反,它是把一个IP地址解析成一个域名,常看见的诸如Windows 2003下的Nslookup命令工具。由于DNS服务是按域名而不是按IP地址索引的,反向搜索一搜索就会搜索所有的信息,很消耗资源。为了避免这种情况,DNS服务创建了一个叫in-addr.arpa的特殊二级域,它使用的是与其他域名空间结构相同的方法,但它不采用域名,而是采用IP地址。
注意,要想做Internet上第二种虚拟主机,最好向域名提供商申请DNS转移权,要求提供商把DNS解析权指定到你的DNS服务器上,这样你就能自己利用Windwos Server的DSN服务随意开设子域名了,不然你每次要用一个新的子域名都要向域名提供商申请,那是很麻烦的,而且DSN在自己的服务器上还有很多好处,如开设MAIL服务等等。
先来打开DNS管理器,点击展开服务器,在正向查找区域新建一个区域。选择创建主要区域,输入你申请的域名,注意,只要输入我上面所说的区域就可以了,如yesky.com、sina.com.cn。完成。如图5:
(图5)
创建好区域后,就在你创建的区域里创建主机。最好创建的主机名与你的用户名相同,这样方便管理。当然,如果你的系统已经升级到AD模式,那这步可以跳过,因为在AD模式下,你每创建一个帐户,就会自动的生成对应的主机名称。如图6:
(图6)
所有的主机都创建好了后,就打开Internet信息服务(IIS)管理器,在WEB站点下创建新的WEB站点。在站点创建向导的IP地址和端口设置对话框中输入需要绑定的完整域名,如www.test.com、test1.test.com、test12.test.com,创建完成后,域名就和空间绑定了。如图7:
(图7)
在DNS中有多少个主机,就可以建立多少个子域名WEB站点。也可以用域名提供商提供的直接指定IP的域名。但这里需要注意的是,一旦服务器中Interne