现在的位置: 首页 > windows2003 apache > 正文
Windows 2003网站安全权限设置指南
2014年11月29日 windows2003 apache ⁄ 共 4982字 暂无评论

Windows 2003已成为比较流行的Web服务器操作系统,安全和性能得到了广泛认可,基于IIS Web服务器软件的网站数量也越来越多。

  通常情况下,高校的大多数服务器会由技术力量相对雄厚的网络中心等IT资源部门运维管理。而网站程序的制作则由各单位、各部门自主负责,少数用户单位会自主开发,或者请专业的IT公司代为开发。更多的用户单位则会将网站的制作当作一种福利,交由勤工俭学的学生开发。因此,各网站程序的安全性参差不齐。在这种情况下,如果不对服务器的默认安全权限进行调整,将这些网站运行于同一台服务器上,必将引发不少令人头痛的安全问题。

  最常遇到的情况是:一台Windows 2003服务器上运行多个网站,其中某个网站存在着安全漏洞(例如,没有采用参数化的SQL查询或没有对用户提交的SQL语句进行过滤),黑客便可通过攻击该网站取得权限,上传网页木马,得到了一个Web SHELL执行权限,或者直接利用网页木马,篡改该服务器上所有Web站点的源文件,往源文件里加入js和iframe恶意代码。此时那些没有安装反病毒软件的访客,浏览这些页面时便会感染上病毒,不仅引来用户的严重不满和投诉,同时也使学校的形象严重受损。

  为了避免类似事件的发生,我们有必要分开部署网站和数据库。通常的做法是将网站存放在一台分配了公网IP的Windows 2003服务器,而数据库则运行于一台与互联网相隔离的私网IP数据库服务器上。但是,仅启用以上的安全措施还远远不够,我们还必须调整这一台Windows2003 WEB服务器的安全权限,对权限作出严格的控制,实现各网站之间权限的隔离,方法如下:

  在Web服务器上,1.创建若干个系统用户,分别用作IIS6的应用程序池安全性用户和网站匿名访问帐户。
  2.在IIS管理控制台中,创建若干应用程序池,并分别为每个程序池分配不同的安全性用户。
  3.将各个网站分配到相应的应用程序池。如果网站数目不多,可以一个网站分配一个应用程序池。
  如果网站数目较多,则可以采用分组的形式,组内网站则共处同一应用程序池。
  4.更改网站的匿名访问用户。 
  5.设置网站目录及其文件的安全权限。

本文将通过实例来详细介绍上面的设置方法:
  我们的服务器运行着三个网站
  http∶//security1.stu.edu.cn
  http∶//security2.stu.edu.cn
  http∶//security3.stu.edu.cn
  现在我们想为这三个网站分配不同的权限,实现各个网站之间的隔离。于是我们做了如下的规划:
  (1)首先创建三个用户IISWK_001、IISWK_002和IISWK_003,分别作为网站security1.stu.edu.cn、security2.stu.edu.cn和secruity3.stu.edu.cn应用程序池的安全性用户;
  (2)接着创建三个用户IUSR_001、IUSR_002和IUSR_003,分别作为这三个网站的匿名访问帐户;
  (3)最后我们对这三个网站的目录权限进行调整,比如security1.stu.edu.cn网站根目录只对IISWK_001和IUSR_001用户开读取权限,而security2.stu.edu.cn网站根目录只对IISWK_002和IUSR_002用户开读取权限,从而实现了各网站之间权限的隔离。

表1 权限规划


  为达到上述目标,我们进行如下设置:
  1. 创建若干个系统用户,分别作IIS6的应用程序池安全性用户和网站匿名访问帐户。
  (1) 创建IIS6的应用程序池安全性用户:
  首先创建三个用户IISWK_001、IISWK_002和IISWK_003,分别作为网站security1.stu.edu.cn、security2.stu.edu.cn和secruity3.stu.edu.cn应用程序池的安全性用户。
  右击“我的电脑”→“管理”→“系统工具”→“本地用户和组”→右击“用户”→“新用户”
  分别添加IISWK_001、IISWK_002和IISWK_003这三个用户,请保存好相关用户的密码,下面将会用到。
  同时设置“用户不能更改密码”,“密码永不过期”等相关属性,确保帐号的有效性。


  组图1 创建应用程序池安全性用户并设置相关属性

  请注意,IISWK_001、IISWK_002和IISWK_003帐号创建完毕后,还必须进行以下的设置:
  赋予这三个用户写入和修改%SystemRoot%\Temp目录的权限(例如C∶\windows\Temp目录);
  将这三个用户从Users组中删除,同时加入IIS_WPG组。
  以上二步是确保应用程序池以及asp.net 等程序的正常运行,避免访问页面时报错提示”Service Unavailable”。
  (2) 创建三个网站的匿名访问帐户: IUSR_001、IUSR_002和IUSR_003,同时删除其隶属于Users组的权限。如组图2。


  组图2 创建网站的匿名访问账户并设置相关属性

  2.在IIS管理控制台中,创建若干应用程序池,并分别为每个程序池分配不同的安全性用户。
  下面为security1.stu.edu.cn网站创建新的应用程序池IISWK_001,并对security1.stu.edu.cn进行相关的配置:
  打开IIS管理控制台,右击“应用程序池”→“新建”→“应用程序池”,在出现的“添加新应用程序池”窗口中输入应用程序池ID ∶ IISWK_001,如组图3所示:


  组图3 创建应用程序池IISWK_001

  接着右击所创建的应用程序池IISWK_001,选择“属性”→“标识”,在应用程序池标识处,选择“配置”,并点击其右边的“浏览”按钮,查找到IISWK_001用户,确认并输入IISWK_001用户的密码和确认密码。如组图4所示:



  组图4 设置应用程序池IISWK_001的安全行账户

  3.将网站分配到相应的应用程序池。 
  在IIS管理控件台中,右击打开security1.stu.edu.cn网站属性,切换到“主目录”标签,在应用程序池下拉菜单处,选择IISWK_001应用程序池,如组图5所示:


  组图5 将网站seucrity1.stu.edu.cn分配到应用程序池IISWK_001


  4.更改网站的匿名访问用户。 
  在IIS管理控件台中,右击打开security1.stu.edu.cn网站属性,切换到“目录安全性”标签,点击“编辑”按钮,在身份认证方法窗口中,点击“浏览”按钮,选择步骤2所创建的用户IUSR_001用户,输入密码和确认密码,如组图6所示:

  组图6 将网站seucrity1.stu.edu.cn网站的匿名访问用户更改为IUSR_001


  5.设置网站目录及其文件的安全权限。
  限于篇幅问题,本文将注重网站目录权限的设置,而其他目录的安全权限设置在此处只作简单介绍。
  (1) 删除各逻辑分区目录下的Everyone 用户和Users用户组。
  (2)  C∶\Documents and Settings\All Users
  C∶\WINDOWS\system32\config
  C∶\Program Files等目录
  以及C∶\WINDOWS\system32 目录下常用的如cmd.exe、net.exe、reg.exe等管理工具,权限都有必要调整。删除Everyone和Users组的访问权限。
  回到正题,对secrity1.stu.edu.cn网站的根目录,做如下的安全设置:
  保留Administrators用户组和System用户组的完全控制权限,删除其他所有用户的权限。
  然后再对IISWK_001和IUSR_001开放以下三个权限:读取和运行、列出文件夹目录、读取如组图7所示。
  然后对security1.stu.edu.cn根目录下那些需要开放写入和修改权限的目录进行更改:开放IISWK_001和IUSR_001的写入权限和修改权限。
  如本例中的数据库目录Database和上传目录Upload,应该开放IISWK_001和IUSR_001的写入和修改权限(如组图8所示),这样security1.stu.edu.cn网站便可以正常运行asp、asp.net等动态程序了。


组图7

  组图8


  按照同样方法对security2.stu.edu.cn网站根目录开放IISWK_002和IUSR_002的读取访问权限,而其下需要修改权限的目录则开放IISWK_002和IUSR_002的写入和修改权限;对security3.stu.edu.cn网站根目录开放IISWK_003和IUSR_003的读取访问权限,其下需要修改权限的目录则开放IISWK_003和IUSR_003的写入和修改权限。至于Windows 2003文件安全权限的更高级用法,请参考有关的资料,本文不再多作介绍。
  配置到此完成。

接下来我们还需要重启上面所创建的所有应用程序池,或者直接重启IIS,否则访问网站时将出现“ Service Unavailable”的错误。
  重启IIS的方法:
  “开始菜单”→“运行”→输入 iisreset 命令即可。
  现在我们可以正常浏览网站了。打开任务管理,查看进程,我们将发现三个w3wp进程的运行用户不再是NETWORK SERVICE,而是上面所创建的IISWK_001、IISWK_002和IISWK_003。
  如果想实现批量添加用户,则可根据下面提供的命令,修改成相应的用户名和密码,然后保存为.bat脚本文件即可。
  1. 批量添加应用程序池的安全性用户:
  net user IISWK_001  _Password1 /fullname∶IISWK_001 /add /y /expires:never /passwordchg∶no /active∶yes
  net user IISWK_002  _Password2 /fullname∶IISWK_002 /add /y /expires∶never /passwordchg∶no /active∶yes
  net user IISWK_003  _Password3 /fullname∶IISWK_003 /add /y /expires∶never /passwordchg∶no /active∶yes
  此处 _Password1、_Password2和_Password3为对应用户的密码字段,请记得进行修改。
  2. 批量添加网站的匿名访问帐户
  net user IUSR_001 _Password1 /fullname:IUSR_001 /add /y /expires:never /passwordchg∶no /active∶yes
  net user IUSR_002 _Password2 /fullname:IUSR_002 /add /y /expires:never /passwordchg∶no /active∶yes
  net user IUSR_003 _Password3 /fullname:IUSR_003 /add /y /expires:never /passwordchg∶no /active∶yes
  3. 批量将所创建的用户从默认的Users组中删除。
  net localgroup users IISWK_001 /delete
  net localgroup users IISWK_002 /delete
  net localgroup users IISWK_003 /delete
  net localgroup users IUSR_001 /delete
  net localgroup users IUSR_002 /delete
  net localgroup users IUSR_003 /delete
  4. 批量将所创建的应用程序池安全性用户加入IIS_WPG组(参见表2)。


表2 权限规划

  注意,成功添加用户后,记得将所有帐号的属性设定为“密码永不过期”。
  (作者单位为汕头大学网络与信息中心)

  来源:《中国教育网络》2009年4月刊

给我留言

您必须 [ 登录 ] 才能发表留言!

×