上篇文章 http://www.cnblogs.com/Leung/archive/2009/10/29/1592328.html 我们提到了如何建立基本安全性的系统环境。
现在介绍基于此平台开展安全的服务。平台有了一定的安全性,在日后的所有工作,咱们应该使这一特点得以延续。那么,咱们所有的操作,都必须考虑到安全性,是否被改变?如果平台安全了,而服务不安全,一样会被入侵,前期的工作也将尽弃。因为整个服务平台的安全,就是一个木桶。关于木桶进一步的解释,请移步:浅谈网络安全意识
现在开始,为大家讲解一下,HTTP服务的安全。Windwos Server2003由于自带IIS组件,再加上Win系列操作系统易用性等原因,使得Win2003成为了选用较多的HTTP服务载体。但同时也是由于Win系操作系统的通俗易懂,对其深层技术非常了解的人也很多,包括系统的安全性方面。所以,Win系HTTP服务器也是遭受攻击和入侵最多的服务器操作系统平台。我们如何使IIS更安全呢?
现在咱们有了一个较为安全的底层平台,其安全性配置完全遵照鲜甜服安(二)所提及的内容。以一个建成的IIS站点为例(关于如何用IIS建立一个网站,请自行查找资料,因其不在本系列连载讨论的范围内),站点的脚本为微软自家的,中小企业市场占有率达到90%以上的ASP写成。这样的网站看似安全了。果真吗?NO。在你没有对这个站点的安全配置做足功夫前,它是不安全的。OK那咱们来新建一个安全的IIS站点,Follow me。
建立一个IIS站点,Jarry的经验,最需要考虑的问题,是权限。在IIS里,管理员必须指定Web Visitor用哪个系统帐户来访问Web Site。所以,咱们的思路是:指定一个专门的帐户来访问网站内容,并且这个帐户的权限,必须足够小。Win系统在你装完IIS6后,会生成两个帐号:IUSR_XXX和IWAM_XXX。微软给它们的定义是:Internet 来宾帐户,它们是匿名访问 Internet 信息服务的内置帐户。它们的权限比较低,可以说是较小的。但还不是最小。如果你的服务器上只有一个网站,指定IUSR_XXX帐户给Web Visitor使用是行得通的。如果你的服务器上有多个网站,将会有新的问题出现。
你在IIS里再建立一个网站,其指定帐户还是这个IUSR_XXX。这样,问题就来了。如果多个网站共用一个帐户给用户访问,一旦其中某网站被入侵,危机将会波及到所有的网站。
所以,必须改掉这个IUSR_XXX。并且,给每个网站设定一个专用的帐户,然后通过IIS指派给Web Visitor,同时,硬盘上该网站所在目录也要赋予此帐户合适的访问权限,并拒绝此帐户和管理员帐户之外的所有帐号访问此资源。实现过程是这样的:
先建立一个专用帐号:xtitvisitor,设置一个密码,并使其不能更改密码,密码永不过期。
双击该用户,打开xtitvisitor属性对话框。点击隶属于标签。Win系统把这个用户自动放到User组里。这是不安全的,因为C盘里许多文件指派了User组可访问,所以去掉User组,加上权限最低的,已经改名的Guest组,也可以不指定任何用户组。那么xtitvisitor只是一个独立的系统帐户,而不属于任何用户组。
这时你可能会发现Jarry的用户属性对话框只有四个标签,而你自己的有7,8个。这是因为Jarry禁用了许多不必要的系统服务后的结果。为了安全性,有的服务是必须禁用的。参见上期的鲜甜服安(二)。
现在,专用帐户就建好了。接下来是目录权限。在你的硬盘上找到网站存在的目录,比如xtit.net,现在我们来给它设定权限。在网站目录上,右键,属性。打开安全标签。这时可以看到这个目录现有的权限设置,是继承上级目录的。前面的文章中提到的,每个磁盘分区只赋予了Administrator组读写权限。所以此目录也继承了此权限。为了使Web Visitor能顺利访问到这个网站,咱们需要设置一下。
给这个目录权限加上刚才建立的专用帐户:
xtit.net这个目录现在有了管理员组完全访问,xtitvisitor这个用户只有读取权限。OK,整个网站目录只开放这样的权限就可以了。先这样。
接下来,我们再结合网站的子目录,把权限细化一下。一般ASP的中小型网站使用Accese数据库,也就是一个MDB文件。系统会持续地占用并修改这个文件,比如你网站上的访问统计。每当一个用户访问你的网站一次,系统就要在你的网站数据库里将对应表里的数据+1,对于数据库而言,这是一个新增(Add)操作。但对于MDB文件而言,这是一个修改操作。所以,对于这个MDB数据库文件,你还应该为xtitvisitor帐户赋予修改的和写入的权限。这样才能保证数据库文件正常工作。
再说说关于Accese数据库的文件引发的安全问题。而这个文件如果使用默认的扩展名,有可能会被黑客下载到。那么你的网站后台帐号将会被黑客猜解出来。所以这个文件必须改掉名字。在文件名中加一些合法的符号。比如#号,扩展名也要改掉或者干脆去掉不要。在网站数据库的链接文件里也作相应的修改。
子目录的权限,也需要根据实际需求逐一调整。比如,许多网站可能有upload目录。用来存放通过网站上传的文件。那么该目录也要赋予写入的权限。否则在进行FSO文件上传操作时会报错。总之根据需求来。还是遵循在正常服务前提下权限最小化原则。
如果希望权限更理想化一点,你甚至可以把Administraotrs这个组在xtit.net整个目录指派的权限都删掉。那么整个服务器里只有xtitvisitor帐户对这个目录有权访问了。这也会引起一些麻烦,比如你自己都打不开这个目录。