当今,提供WWW服务和FTP服务的IIS已经成为windows 系统中最常用的服务之一。这样的情景也使网络管理员对IIS的安全配置要求的更高了。在windows server 2008中,IIS已经升级到7.0的版本。相对于6.0来说安全型已经有了很大的提高。我们可以通过控制台访问权限,站点目录的访问权限和传输过程中所使用的加密手段来实现服务器的安全。
     
      对于IIS的访问总共可以分为两种安全措施,一种是IIS本身的安全访问策略,另外一种是配合NTFS实现更高的服务器安全。而IIS访问控制安全可以分为以下几点:
     
      其中第一点是.NET信任级别:应用程序的信任级别决定了由 ASP.NET 代码访问安全性 (CAS) 策略授予的权限。CAS 定义了两种信任类别:完全信任和部分信任。具有完全信任权限的应用程序可以访问服务器上所有类型的资源以及执行特许操作。受到完全信任的应用程序只受操作系统的安全设置影响。      出自( http://technet.microsoft.com/zh-cn/library/cc772237(WS.10).aspx)      不过.NET信任级别的使用需要.NET扩展组件的支持。
      第二点就是我们经常使用的IIS管理器权限。也就是我们通过远程连接服务器所需要的权限。我们可以通过IIS管理器权限以授权的方式进行访问的过滤行为,提高Web服务器的安全。
      第三点,IIS管理器用户,限制可以连接到服务器的用户,配合管理器的权限使用。
      第四点是访问控制,相当于IIS6.0的IP地址和域名限制,通过IP地址和域名来限制访问。
      第五点,搭建动态网站环境时所应用的ISAPI和CGI限制。ISAP和CGI也就是允许在服务器上执行动态内容的请求处理程序,通过此功能进行动态网站的安全执行。
      第六点,也是我们现在经常使用的PKI服务器证书,通过加密和数字签名等密码服务及必须的密钥和证书管理实现网络传输的安全。
      第七点,权限分散委派。通过管理人员的分工,对不同账户进行不同权限的委派,实现管理账户泄露时不会出现太大的损失。
      第八点,身份验证。通过7种不同的身份验证模式实现访问安全,这个在后面我们会详细说明。
      第九点,就是我们的授权规则了,用户访问必须遵循访问规则来实现。
      通过以上九点,再配合我们的NTFS访问安全就可以大大提升Web服务器的安全效果。windows上的NTFS权限如果与IIS上的权限出现冲突,同样的最严格的权限生效,也就是两者的交集,这样就对权限方面形成了一个完善的体系。
      我们在windows server 2008中安装IIS7.0的时候可以看到,可以选择安装很多身份验证的模式,通过这几种验证模式可以对任何请求访问网站的用户进行身份的审核,并验证其应有的权限,同时也可以防止没有被授权的用户访问专用的文件。
      ASP.NET模拟身份验证。这种验证方式同样需要ASP相应的扩展组件支持。这也是对于动态网站进行的安全措施。 http://technet.microsoft.com/zh-cn/library/cc732586.aspx这里有更详细的解释。
     
      Forms身份验证。是通过在管理客户端注册获取授权访问。
      基本身份验证,模拟本地用户进行访问,但这种验证方式的密码在网络上传输的时候不会进行加密,所以不是十分安全。
      摘要式身份验证,是在活动目录中使用的身份验证模式。
      匿名身份验证,默认在IIS7.0中是开启的,如此设置会使所有访问的用户可以访问任何公共内容,不需要输入帐户和密码。
      windows 身份验证,和基本身份验证所不同的是,windows 身份验证在网络中传输的时候会给密码加密,以实现传输时的安全。
      最后一个就是我们的证书了,通过证书的加密和签名实现访问安全,避免钓鱼网站为企业带来损失。
      在IIS安装的时候我们也要注意一些事项,以免对服务器造成不必要的损失。安装在非系统目录下和NTFS分区就不多说了,要说的是不要将IIS安装在域控制器上,安装IIS过程中,系统将自动创建一个IUSR_计算机名的匿名用户,如果是在域控制器上安装,则该用户会被添加到USER组中,从而把应用与组的权限分发给每个访问IIS服务器的匿名用户上,直接影响了整个内部网络的安全。还有一点,IIS7.0默认安装时最安全的,因为他只安装了必须安装的组件。只安装必须的组件就减少了网络***的范围,实现了Web服务器的安全。