IIS 6.0培训手册
【了解】
1996 - v1 & 2首发于Windows NT 3.5 & 4 - 简单的雏形。
1997 - v4发布于NT 4 Opiton Pack中 - 很多新特性直到目前的版本还在应用,对asp支持。里程碑。
1999 - v5默认安装在Windows 2000系统中,默认安装存在安全隐患。
2001年9月,Red Code和Nimda大规模爆发,在安全上具有里程碑意义。不亚于RPC漏洞的影响。微软在此后成立了全球安全的快速响应团队,微软也潜心思考安全性问题。在之后微软的任何产品中可以看到,安全性都有了极大改善。
2001年,v5.1 Windows XP中现身。
2003 - v6 随Windows Server 2003发布。又一个里程碑。IIS作为Web服务器市场占有率第一次超过了Apache。
IIS 6.0是全新设计的架构,完全重写的代码。是为了打造一个高可靠性的、高效的应用程序运行平台,以稳定的运行各种Web服务。
IIS Admin Service -统管IIS的所有服务,IIS其它服务都依靠它运行。
FTP Publishing Service
SMTP Service
NNTP Service -网络新闻组传输协议。可搭建新闻组服务器。
World Wide Web Publishing(Asp.net Framework1.1支持)
%SystemRoot%/system32/inetsrv -存放iis本身的程序文件,包括配置文件、动态链接库等等
%SystemDrive% /inetpub -存放我们所定义的网站、ftp、邮件。安装后基于安全考虑必须删除。
%SystemRoot%/help/iishelp -存放IIS帮助文件。安装后基于安全考虑可以删除。
(CertSrv -安装证书服务之后系统默认安装的。)
Ø IUSR_computername -访问网站的用户所使用的账户。匿名登录账号。
Ø IWAM_computername -以此账户执行网站中的程序,启动com+的账号。如果此账户删除,则网站只能正常显示静态内容,不能正常显示动态内容。
这两个账户的密码是系统自动创建的非常复杂的超强密码。密码分别存放于:SAM数据库(或活动目录)、注册表、IIS源数据库。(如果需要改这两个账户的密码必须把这三个地方全部修改,一般情况下重新安装IIS比修改这三个密码更简单。)
Secure by Design:安全的设计(全新的架构,代码完全重写)、逐行的代码检查;渗透测试(Beta时就邀请很多合作伙伴来做渗透测试);深层防御。
Secure by Default:不再被默认安装在系统中;大部分的功能都处于禁用状态;以最小的权限及最安全的配置运行。
针对应用程序失败包含而设计的进程模型:健康状态检测;自动回收机制。
0个严重级别的安全补丁。
详见SharePoint – 【知识库】 - 【网络安全、攻击与防范】:《分布式拒绝服务攻击(DDoS)原理及防范》、《关于CC攻击》
SQL Injection,应用程序(大多为Web应用程序)的漏洞或缺陷,是程序员在编写代码时对向数据库提交的各种数据过滤和限制不严格,导致黑客提交的一些恶意代码可以在数据库上执行。通过SQL注入,黑客可以获取和删除数据库中数据,以及获得系统控制权限等。SQL注入也可以通过使用一些工具来完成。
常见于FTP软件Serv-U。一般在Web服务器上不要运行FTP服务,否则将使黑客入侵变得很容易。
黑客盯上目标网站,如果目标网站应用程序及Server自身安全性很高无法被入侵时,黑客将尝试入侵同一网段内的其他Server。黑客入侵其他Server成功后将控制其伪装为网关,使目标网站的数据经过假网关(被入侵的Server),从而窃取目标网站的各种机密数据(用户帐号、密码等)。
因此,一般在IDC托管的Server也都应该绑定网关的MAC地址。
更详细介绍见SharePoint站点 - 【知识库】-【网络安全、攻击与防范】:《解读ARP病毒》
目前最常见的散播木马方式,没打全系统补丁的大多数计算机也是通过网页木马中招的。见SharePoint:【公司培训资料】:《网页成为病毒传播主要途径 正常上网会染毒》。
【理解】
以下以www服务为例阐述(FTP/NNTP等服务与其机理
雷同)。在以前的IIS5.0中,IIS所有服务都运行在%SystemRoot%/System32/svchost.exe进程中,且这个进程是以SYSTEM用户权限在系统中运行的。一旦www服务之外的其他IIS服务出问题时会影响到www服务,如果www服务的网站被植入恶意代码很容易使黑客获取SYSTEM权限。
在IIS6.0中,将www服务运行在svchost.exe进程内,其他IIS的服务(其他服务应用很少)运行在inetinfo.exe进程内。这是比IIS5.0安全性和稳定性提高的地方。
配置数据库。IIS的所有配置全部存放在这里。IIS6.0的metabase是XML格式,可以直接编辑。
内核模式(kernel mode)的HTTP驱动。所有进入的http请求都首先由它处理。不需要在user mode和kernel mode中来回切换,可以提高性能。
作用:管理TCP连接;验证HTTP请求;如有多个应用程序池,会根据请求的URL将请求分别转给不同的APP SessionID;其它。。。
监视W3WP.exe进程的创建、执行、回收。它主要做Web Admin Service(WAS)。
WAS的作用:管理W3WP的生存周期。控制何时启用工作进程;何时启用额外的工作进程;何时终止工作进程;何时回收工作进程。在WAS处理工作进程时,用户请求被保留在内核模式队列中,用户不会感觉到访问中断。
即应用程序池,是web应用程序的宿主,应用程序池内运行应用程序。Mini-web server。
应用程序池可以看作与IIS 5.0中的Dllhost.exe相对应的。可以设置一个应用程序池来维护一个网站。把不同的网站分配给不同的应用程序池,如果一个网站死掉了不会影响其他网站。
不要给每个应用程序都建立独立的应用程序池。32位服务器上最佳的应用程序池设置数量为12个。
Microsoft.com 运营小组通过将应用程序池中相似的代码分在同一组里,从而将受信任和不受信任的代码区分开。某些关键的应用程序或者存在已知问题(比如:内存泄漏)的应用程序可能会得到一个专用的应用程序池。但是,当在服务器上达到了最佳的应用程序池数量后,将各个应用程序单独放在其自身的应用程序池中就成为了一种不合适的奢侈选择了,因此大多数应用程序都位于共享应用程序池中。
WWW Worker Process每个应用程序池内有一个或多个Worker Process,每个Worker Process只为一个应用程序池服务。Worker Process来维护应用程序池的日常运行。
举个例子:应用程序池是公寓;应用程序是住户;Worker Process是物业;WAS是派出所。
即Web园。An app pool served by more than one worker process is a web garden.(一个应用程序池内有多个Worker Process,这就是一个Web garden。)
Windows对web应用程序的隔离保护除了应用程序池之外,还有一个层次是application domain。一个应用程序池中可以跑多个.net应用程序,每个.net应用程序就称为一个application domain。
(关于CLR见http://haoweinet.blog.163.com/blog/static/238866142007516104151882/)。
【了解】
安全配置向导
激活后,对MetaBase的修改记录相应的安全日志;
记录信息包括修改MetaBase的日期、时间,修改前后的数值以及做出修改的相应的用户帐号;
分两步激活:
1、激活audit object access(对象访问)审计策略;
2、执行iiscnfg.vbs /enableAudit激活(命令行:C:/Windows/system32>cscript iiscnfg.vbs /enableAudit / /r)。
将所有站点的IIS log记录在一个log里。在有大量站点(如上百个)时可以提高性能。
基于Kernel Mode的SSL,性能可提高近20%。
通过注册表激活(八、30'30'');一些局限性(八、30'30'')。
【掌握】
l 安装好IIS之后应首先将默认的inetpub目录删除,系统分区不能存放站点及IIS日志。
l 我们的站点应存放在系统分区之外的分区中,最好将站点与IIS日志分别存放在两个单独的分区中以提高性能。
l 应用程序池回收时,用户可能会感到网页停顿。在回收期间应用程序池内未处理完的请求会暂停,然后由新建立的应用程序池将所有未处理完的请求接管。且新的http请求会缓存在kernel的cache中,待新应用程序池建好后继续处理被cache的请求。
l 系统目录及站点目录各账户的权限设置:
首先,将所有分区下所有目录和文件都应给System和Administrators完全控制权限;(这点儿是默认的,但除了System Volume Information目录)
然后,对系统分区Windows目录和Program Files目录给予user组读取、运行权限;
最后,对站点目录给予IUSR、IWAM、ASP.NET三个帐号及IIS_WPG组读取和运行权限。对需要写权限的文件或目录单独分配写权限。对IIS日志目录不用特殊设置权限。
l 何时需要对IUSR和IWAM分配写权限?当需要由程序自动生成和更新网页文件时。一般如生成静态公告页面等。
l 对IUSR和IWAM分配写权限时应注意什么?
含有.dll文件的目录不能分配写权限;
对站点的根目录不能分配写权限;
只给确实需要的文件或目录分配写权限,能给单个文件分配就不要给整个目录分配写权限;
不要给Everyone帐号分配写权限。
l 查看并设置IUSR_
【详见OneNote中的KB】
Web站点出现问题时的处理步骤。【重要】
在web服务器执行备份时,IIS不能访问。
部分用户访问网站时会遇到应用程序错误,其他大部分用户正常。前台后台均有此问题。(原因为应用程序池死锁)
Webcast:IIS6.0入门及进阶系列之二 IIS6.0的管理.wmv
Webcast:IIS6.0入门及进阶系列之十使用脚本管理IIS6.0.wmv
Webcast:IIS6.0入门及进阶系列之十一 IIS6.0性能调试.wmv
Webcast:IIS6.0入门及进阶系列之十二 IIS6.0排错-方法和工具.wmv
IIS6.0入门及进阶系列之十三 IIS6.0排错实战-解决Http500错误.wmv
SharePoint站点-【操作配置手册】:《创建 Windows Server 2003 服务器的成员服务器基准》、《强化 Windows Server 2003 IIS 服务器》
如何在 Windows Server 2003 中识别 IIS 6.0 组件:
http://www.microsoft.com/china/technet/security/guidance/secmod131.mspx
Internet 信息服务 (IIS) 技术库:
http://technet2.microsoft.com/WindowsServer/zh-CHS/Library/2ab7a31c-4025-4334-b0e2-19ed91c2bf3e2052.mspx?mfr=true
Microsoft IT Showcase关于从32位Web Server向64位迁移:
http://www.microsoft.com/china/technet/itsolutions/msit/operations/mscom64bitarchi.mspx
HTTP的基础知识:
IIS6.0入门及进阶系列之六 应用程序层协议揭秘-HTTP and FTP.wmv.wmv