IIS常见题目及解答和故障分析
核心提示:解决以下常见题目: 1. 我怎样对IIS设置进行备份? 2. 甚么工具能帮助我施加1个负载并进行利用程序的强度测试? 3. 当Localstart.asp返回了1个正在创建中响应时,产生了甚么事情? 4. 能在Microsoft Windows XP Home Edition中安装IIS或PWS吗? 5. ISAPI挑选器能在1
解决以下常见题目:
1. 我怎样对IIS设置进行备份?
2. 甚么工具能帮助我施加1个负载并进行利用程序的强度测试?
3. 当Localstart.asp返回了1个“正在创建中”响应时,产生了甚么事情?
4. 能在Microsoft Windows XP Home Edition中安装IIS或PWS吗?
5. ISAPI挑选器能在1个单独的进程空间中运行吗?
6. 我在哪能取得这样的示例代码--它显示了如何在使用WebDAV的ASP中编辑文档?
7. 当我试图用ASP往访问1个数据库时,我得到了1个“拒尽访问”的回应,这是甚么缘由?
8. 如何在没有恢复原始设置的情况下运行IIS锁定工具?
9. 在我的intranet环境中,如何处理“server-side include”语法,而没必要重新命名所有的文件?
10. 当我从1个客户工作站进行访问时,怎样做才能在IIS 4.0(Windows NT 4.0 Service Pack 6a)中访问IISADMIN虚拟目录而不会导致服务器重新启动呢?
11. 在Windows 2000 Professional中,我怎样做才能让域用户来治理虚拟目录,以便域用户能够创建和治理他们自己的虚拟目录?
12. 在Windows 2000 Server上,当1个站点需要SSL时,我怎样才能在相同的站点上使用主机头?
13. 如何在Microsoft Windows XP Home Edition中安装IIS 5.0?
问: 我怎样对IIS设置进行备份?
答: 有多种方法可以用来完成此项工作。在Internet信息服务治理器控制台(IIS插件)中所设置的属性和值都被贮存在Metabase.bin文件 中,缺省情况下,这个文件位于“C:winntsystem32inetsrv”目录中。在IIS 5.0中,你可以从内置的IIS插件中来备份元数据。假设需要进行此工作,请选择桌面上的计算机图标然后单击右健。然后再选择 “备份/恢复配置”。然后你便可以够选择备份现有元数据设置或恢复之前的版本。与此相同的选项在MetaEdit 2.2中也可找到。
当你以 这类方式保存了元数据时,你的备份将以.md0文件的格式贮存在C:winntsystem32instrvmetaback文件夹中。当你履行备份时, 文件将使用你所指定的名称,如Pre-Lockdown.md0。假设你使用相同的文件名创建了多个备份,他们将使用数字逐渐递增的扩大名,如 Backup.md0,Backup.md1等等。
在你的元数据严重破坏的情况下,你将不能启动IIS。此时,你也不能从IIS插件或 metaedit中履行恢复操纵。假设真的产生了类似情况,你便可以够通过从备份文件夹当选用最合适的.md0(.md1等等)元数据备份文件来替换 Metabase.bin。假设你的备份文件没有毛病,IIS将会立即启动。
制作元数据的备份还有其它两个意义。你可使用xcopy,scopy或其它复制程序来简单地复制Metabase.bin文件。你应当先停止Internet服务,以保证你的元数据是最新的并且不在使用状态中。
最 后,我们还提供了两个脚本--metaback.vbs和metarest.vbs--它们位于 Inetpub/IISSamples/sdk/admin(假设你在IIS 5.0上安装了IIS SDK)文件夹中或在IIS Resource Kit/Utility/ADSI Admin Scripts文件夹(假设你安装了IIS 4.0 Resource Kit)中。这些.vbs脚本使用了1个ADSI命令,它是专门为创建元数据备份而提供的。
问:甚么工具能帮助我施加1个负载并进行利用程序的强度测试?
答: 有很多工具可以用来实现这个目的。而且有1些功能完备并且10分有用的你将会发现有相当多的可利用的贸易工具可供您利用被完全设备了,并且这些工具是有 很用的。Microsoft提供了Web Application Stress Tool,在大多数情况下,对装载在Web服务器上施加负载来讲,并检查它在1定压力下是否是能够正常工作这1目确当进行利用程序强度测试时,查看它们的 履行情况,这个工具是足够用的。预先履行测试是1个好主张,由于在利用程序的设计进程中,题目其实不会显现出来,除非在这个服务器上施加1定负载被加载了- -而且在1个产品成品服务器上你肯定不希看发现任何题目。
Web Application Stress Tool有几个有用的特性,它可以将您包括当你在通过Web站点中进行的指向并和点击操纵记录为1个可重新回放的脚本线路时记录重放脚本的能力。然后当你 远程监视服务器上的性能监视计数器时,便可以同步地在1个或多个客户端上重新播放这个脚本。另外,你还能指定具体资料,如用于测实验证身份验证吞吐量所使用 的用户账号,和显示要求和测试计划日程之间的延迟。
当你在你安装了Web Application Stress Tool的时时候,它还在计算机上安装了1个服务,叫名为做“WebTool”的服务。假设你确信当不再需要这个工具时,您可以卸载Web Application Stress Tool。
问: 当Localstart.asp返回了1个“正在创建中”响应时,产生了甚么事情?
答: 这个“正在创建中”页面应当出现在从1个远程的IP地址对默许的Web站点进行访问的时候。假设你从1个内部的IP地址访问,IIS在线文档就会被显 示。假设你在Internet Explorer中访问http://localhost,并且未安装Default.htm或Default.asp,则Web站点将会运行 IISStart.asp。IISStart.asp将检查下面两个条件:
你是否是已敲进输进了“localhost”。
客户真个IP地址是否是与服务器端IP地址相匹配。
在任1种情况下,你都将会被重定向到Localstart.asp,然后打开所需要的页面。
肯定这些文件在你的系统上是存在的,并且在“文档”选项卡标签中调用的是IISStart.asp。为了肯定这些,你可以尝试写1段简短的.asp网页,来显示服务器变量的值,以下:
Your local IP address is 207.46.249.190
The client IP address is 210.82.106.28
如 果IP地址没有被辨认,则多是由于Localstart.asp页未被调用。固然,你总是可以通过直接使用http: //localhost/localstart.asp来调用它。假设没有配置默许文档,在直接调用Localstart.asp时便可能出现题目。脚本 将返回下述消息:
目前当前,你没有为用户设置1个默许文档。当前所有试图连接到这个站点的用户都将收到1个“正在创建中”的页面。
问:能在Microsoft Windows XP Home Edition中安装IIS或PWS吗?
答: Windows XP Home Edition不支持任何版本的IIS,没有任何可靠的方法能使其运行IIS。Windows XP Home Edition并未设计成1个Web利用程序的开发平台。在升级到Windows XP Professional后,你便可以够在系统上安装IIS 5.1,以便利用ASP.Net进行开发工作。在Windows XP Professional上的IIS 5.1是1个全功能的Web服务器端,但是它只能建立10个并发连接,这是由于它只是1个工作站操纵系统而不是服务器平台。Windows XP Home Edition还有1些与Windows XP Professional相同的其它限制,由于它也是1个工作站操纵系统而不是服务器操纵系统。大体上,你会发现,在Windows 2000 Professional和Windows 2000 Server或Advanced Server上的IIS 5.0中,这些差别是相类似的。不管怎样,对使用.NET Framework来开发基于Web 的利用程序来讲,Windows XP Professional才是1个优秀的环境。
问:ISAPI挑选器能在1个单独的进程空间中运行吗?
答: 为 与Web服务器协同工作所开发的利用程序都有着特殊的要求。例如,你不能从1个URL中调用1个Notepad.exe实例并且希看在客户真个系统上看到 1个记事本窗口。为了从IIS中与要求进行交互(其实不是CGI),程序必须使用ISAPI编写。ISAPI是Internet服务器利用程序接口 (Internet Server Application Programming Inte***ce)的缩写。有两种可履行的ISAPI:扩大和挑选器。
可以从1个URL中直接调用ISAPI扩大,如http: //localhost/myisapi.dll。假定你已在目录上配置了IIS,答应脚本和可履行程序,并且用户有履行NTFS的许可权限,则dll 将会运行。IIS答应你指定利用程序是在进程内(作为Inetinfo部份)运行还是在进程外(作为IIS 4.0上的MTX部份,或作为IIS 5.x部份的dllhost)运行。当1个利用程序在进程外运行时,Inetinfo就从题目中被隔离出来。假设利用程序出现故障,Web服务器也会出现 故障。
ISAPI挑选器又是另1个内容。ISAPI挑选器能改变进进或离开IIS的数据流。因此,ISAPI挑选器有着非常强大的功能,能用来实现客户日志、验证或更改数据流。对IIS 5.0来讲,在ISAPI挑选器中实现的特性包括数据紧缩、摘要验证和URLScan。
因 为挑选器在IIS中扮演了1个如此重要的角色,所以它们总是作为Inetinfo部份运行在进程内。因此,正确的ISAPI挑选器结构对服务器的正常运行 是必备的。你可能希看与Microsoft 产品支持服务1起工作来肯定题目,由于处理这类例外多是1个较大的挑战。
基于这个考虑,有两个 新技术可使生活更加轻松,IIS 6.0就是其中的1个。由于它是1个新的体系结构,所有的ISAPI挑选器都在进程外运行。这将使Web 服务器从1个捉摸不定ISAPI挑选器中隔离开来,但这实际上并没有真正解决题目。为了解决这个题目,你可以考试使用.NET语言在ISAPI方面做1些 工作。通使用C++设计ISAPI挑选器相比,使用.NET实现相同的功能要大为简单。
问:我在哪能取得这样的示例代码--它显示了如何在使用WebDAV的ASP中编辑文档?
答: 从IIS上的脚本中使用WebDAV的最好方法就是使用ASP.Net的WebClient类。假设你正在使用Windows XP或Windows Server 2003,WebDAV功能就是这个操纵系统的1部份。这就答应你在1个Web服务器上使用HTTP援用1个文件,就像使用1个UNC路径名称1样。例 如,你可以用NET USE * http://servername/directory来映照1个驱动器,然后通过使用驱动器符号来访问这个位置。另1方面,你还可以创建1个COM对 象,它是1个WebDAV的客户端。你可使用这个对象向IIS 5.x或IIS 6.0传递WebDAV动词。
另外,假设你以WebDAV 为关键词搜索MSDN,你将会找到1些例子,它们教你如何使用XML来为Exchange和其它Microsoft服务器构造WebDAV的查询。在 Microsoft Exchange 2000 Server SDK中有1个WebDAV的示例利用程序。
问:当我试图用ASP往访问1个数据库时,我得到了1个“拒尽访问”的回应,这是甚么缘由?
答: 有1个名为“Filemon”的优秀免费工具,你可以从Sysinternals.com上取得它。你可使用Filemon来快速诊断出尽大多数的 权限题目,由于它能实时显示服务器上的全部文件权限、调用的进程名称及访问的结果。因此,不管隐躲多么深的嵌套包括或多么模糊的临时索引,任何“拒尽访 问”的消息都能被轻松辨认。
当1个在先前的操纵系统上能够正常工作的利用程序在升级后出现题目时,它就无能为力了。但是,这类类型的题目还是 有启发意义的。IIS 4.0和IIS 5.0之间的1个差异就与COM和COM+之间的1个差异有关系。在IIS 5.0中,当1个COM+对象代表用户访问文件时,它的默许行动就是使用用户的安全上下文环境来完成这些工作。这在IIS 4.0中其实不算甚么事情。因此,当从IIS 4.0向IIS 5.0迁移包括COM的利用程序时,你可能需要向文件提供用户权限,而在IIS 4.0中其实不需要。固然跟之前相比这有些不方便,但是它在进步利用程序安全性设计方面的确是1个进步。即使是不能使用定制的COM对象往访问数据库, COM在本地的IIS组件中还是得到了广泛的利用。
这里有1个能够帮助您理解这类需求的例子,比如,你需要为正在创建数据库的用户授与要求使用Access临时文件夹的权限。更多的信息请查阅Microsoft Knowledge Base中的Q210457和Q271071。
问:如何在没有恢复原始设置的情况下运行IIS锁定工具?
答: IIS锁定工具非常有效。这个工具答应你轻松、明显地增加服务器的安全性。1旦运行了这个工具,它就将其活动的历史记录贮存到1个文件中,这个文件的 位置是%systemdrive%%systemdir%system32inetsrv。你将在下面的文件中找到这个信息:
Oblt-rep.log
Oblt-once.md0
Oblt-mb.md0
Oblt-undone.log也多是最新的。
假设你删除这些文件,向导就会启动,就仿佛IIS Lockdown tool并未被运行1样。重复这个进程并没有甚么风险。在你这么做之前,1定要制作1个Metabase.bin的副本。
由于当它第1次运行的时候,这个进程将会让你运行锁定工具,就仿佛它从未被运行过,但其实不会“解开”或反转锁定工具进行了1些设置,所以这个进程应当可以正常工作。
问:在我的intranet环境中,如何处理“server-side include”语法,而没必要重新命名所有的文件?
答: IIS 4.0和IIS 5.0提供了这样1个选项,它不需要你更改所有文件的扩大名。ASP处理器也能处理服务器真个include语法,因此没有必要使用.stm或是. asp扩大名。那末,这对你又有甚么帮助呢?通过在利用程序配置中创建1个条目,你可以将.htm 文件映照为由asp.dll处理,这样,哪些带有.htm扩大名的文件就将由asp.dll来处理。通过使用这类方式,那些含有includes的. htm 文件不用重命名便可以被处理。现在你可能在考虑:“这会不会导致我所有的.htm文件都像脚本1样被处理,从而下降系统的性能呢?”事实上,在IIS 4.0中,这的确是1个题目;但是,在IIS 5.0中,性能题目其实不像你想象中的那末大,并且在IIS 5.1中,乃至会更好。IIS 5.0有1个特性叫做“Scriptless ASP”(无脚本ASP)用来处理这个特殊的题目。假设1个不包括脚本的文件被提交到ASP处理器,它就不会被解析,只是简单地作为静态页面发送出往-- 在这类特定的情况中是1个有用的特性。
问:当我从1个客户工作站进行访问时,怎样做才能在IIS 4.0(Windows NT 4.0 Service Pack 6a)中访问IISADMIN虚拟目录而不会导致服务器重新启动呢?
答: 由于IIS 4.0是在Windows NT 4.0 Service Pack 6a(SP6a)之前发布的,所以1定要在安装完IIS 4.0后重新安装SP6a和所有必须的即时修补程序。
问:在Windows 2000 Professional中,我怎样做才能让域用户来治理虚拟目录,以便域用户能够创建和治理他们自己的虚拟目录?
答: 你需要做的最后事情就是将域用户加进到Power Users组中,由于这样便可以够为域中任何1个具有用户帐号的人赋予经过提升的权限。假设你信任域中的每1个成员都可以对系统进行很好的治理,这样做不会 有甚么题目,但是对大多数计算机用户来讲,这样的信任级别是分歧适的。
为了在IIS中创建1个虚拟目录,用户需要有治理员权限。之所以这样设计,是由于任何能在Web站点上创建虚拟目录的人也能对虚拟目录进行删除、重命名、重定向或其它治理工作。
认 识到这点后,你可能希看不为用户提供治理员身份便可以取得类似的权利,在IIS插件中有1个特性(“操纵员”标签),能让你指定1个Web站点操纵员(不是 治理员),为Web站点创建虚拟目录。这个特性只有在Windows 2000 Server、Windows 2000 Advanced Server和Windows 2000 Datacenter Server中是可用的。相同的特性也可利用于IIS 4.0。
另外,你还 可以在IIS Web站点内部创建1个虚拟目录,并将它映照到%systemroot%%systemdir%inetsrviisadmin。你应当保护这个虚拟目录 的安全,否则那些访问这个站点的人便可以够治理这个Web站点。还要留意,这只有在Windows 2000 Server,Windows 2000 Advanced Server,和Windows 2000 Datacenter Server (和IIS 4.0)上面是可行的。
当你发现你自己根据操纵系统的限制将扩大权限授与了其他人或别的工作组,并且试图将你的工作站当作服务器时,你可能需要安装1个服务器操纵系统。
问:在Windows 2000 Server上,当1个站点需要SSL时,我怎样才能在相同的站点上使用主机头?
答: 让我们回顾1下SSL和主机头的题目,由于对IIS来讲,它的题目1直在常见题目解答的头5个中。
当 客户发出1个到IIS服务器的HTTP连接要求时,这个客户的要求包括1个叫做HOST:的字段,它包括了URL中的Web服务器要求。例如,假设你的请 求将http://www.microsoft.com作为目的地,则浏览器将其发送到服务器,并1同提交HTTP头中的其它信息,HOST: http://www.microsoft.com。由于此字段的名称是“HOST”,并且它在客户的HTTP头中,所以我们把它称作“主机头”。
假设客户要求建立1个SSL连接,主机头字段依然会包括在要求当中,只不过它被包括在这个包的加密部份里(在利用层中),因此Web服务器没法对其进行解密,以肯定应当将要求发送到哪1个Web站点。
这就产生了1条定律:当使用SSL时,不能使用主机头来作为辨认1个Web站点的主要手段。
如 果你确切想使用带有主机头的SSL,那末会产生甚么情况呢?考虑1下这个情况。你有两个Web站点,其中1个不使用主机头,另1个则使用。两个站点都使用 相同的IP地址,并且都配置成使用证书。当你利用SSL访问使用主机头的站点时,第1个Web站点会对此做出响应。之所以产生这类情况是由于:我们使用 IP地址来辨认你希看用来建立连接的站点,而不是主机头。由于第1个站点对IP地址和HTTPS有反应,所以它接受了要求。假设第1个Web站点需要主机 头,并且在不同的IP地址上,或没有证书,那末连接将会失败。
因此,请考虑你的配置,在你需要SSL的相同站点上,只要不使用主机头,你便可以够做任何想做的事情。
问:如何在Microsoft Windows XP Home Edition中安装IIS 5.0?
首 先需要说明1点,就是这类做法可能会有风险,因此在你实际操纵之前,最好明确你的行动会带来甚么后果。并且经过这样处理安装的IIS在运行上可能存在某种 未知的缺点。还有,同Professional版的XP1样,在Home版上运行的IIS也有10个并发连接的限制。在同1个时间内,最多只能有10个人 使用你提供的IIS服务。假设你还想继续,那末就往下看吧。
豫备条件:1张Windows 2000 Professional的光盘(假定光驱是F盘)。
首 先在运行中输进"c:windowsinfsysoc.inf",系统会自动使用记事本打开sysoc.inf这个文件。在sysoc.inf中找到" [Components]"这1段,并继续找到类似"iis=iis.dll,OcEntry,iis.inf,hide,7"的1行字,把这1行替换为 "iis=iis2.dll,OcEntry,iis2.inf,,7"。以后保存并封闭。
把Windows 2000 Professional的光盘插进光驱,同时按下Shift键制止光驱的自动运行。在运行中输进"CMD"然后回车,打开命令行模式,在命令行下输进以下的两条命令,在每1行命令结束后回车:
Expand d:i386iis.dl_ c:windowssystem32setupiis2.dll
Expand d:i386iis.in_ c:windowsinfiis2.inf
“Web 匿名用户”帐户密码的位置
问:我们希看向“Web 匿名用户”帐户授与从其他系统上读取信息的访问权;可是,我们不知道该帐户的密码。怎样才能取得该密码呢?
答: IUSR_ 帐户就是“Web 匿名用户”帐户,它是在 IIS 的安装进程中创建的。该密码存储在本地 SAM 中(对 Windows 2000 域控制器而言存储在 Active Directory 中),Metabase 中也存储着该密码。由于该密码存储在 Metabase 中,您便可以够使用1个 .vbs 脚本将 IUSR 和 IWAM 这两个帐户的密码提取出来,方法以下:
Dim IIsObject
Set IIsObject = GetObject ("IIS://localhost/w3svc")
WScript.Echo "AnonymousUserName = " & IIsObject.Get("AnonymousUserName") & vbCrlf & _
"AnonymousUserPass = " & IIsObject.Get("AnonymousUserPass") &vbCrlf &vbCrlf &_
"WAMUserName = " & IIsObject.Get("WAMUserName") & vbCrlf & _
"WAMUserPass = " & IIsObject.Get("WAMUserPass")
Set IIsObject = Nothing
注: 通过此脚本可以显示在主属性级别上针对 Web 服务设置的 IUSR 和 IWAM 帐户密码。假设您已将匿名验证配置为使用另外1个用户帐户来访问网站或目录,那末您必须相应地修改该脚本,以反应所做的更新。
如何在不同计算机之间移动 Metabase
问: 有无文档资料记录 IIS 4.0/5.0 中针对不同计算机的密钥?假设我需要将 Metabase 从1台计算机移到另1台计算机上,应当采取哪种方法?我读了 IISSync 实用工具的说明文档,但不能解决我的题目。我在找1种类似于 MergeINI 文件这样的工具。
答:IIS 4 和 IIS 5 均使用 %systemdir%/system32/inetsrv 中的 metabase.bin 来存储 IIS 配置信息。Metabase 的密钥是针对安装 IIS 的计算机设置的,所以您不能简单地在不同系统间移动 Metabase。正如 2001 年 11 月这1期的 IIS 有问必答专栏 (http://www.microsoft.com/technet/columns/insider/iisi1101.asp) 中指出的那样,您可使用 Metaedit 2.2 (http://download.microsoft.com/download/iis50/Utility/5.0/NT45/EN-US/MtaEdt22.exe) 从 IIS 4 或 IIS 5 中导出 Metabase,然后再将这些设置导进另1个系统。导进后仍需确保导进系统中的设置正确无误。例如,假设您的 Web 站点主目录位于驱动器 D 上,而您使用 Metaedit 将 Web 站点导进1个新系统中的驱动器 E 上,就会导致 IIS 找不到站点内容。
另1个可用于迁移 Metabase 的实用工具是 IIS Export。这是1个非常实用的迁移工具,位于以下网址:http://www.adsonline.co.uk/IISExport。这个共享件实用 工具可以复制文件和权限,并将 Metabase 存储在1个数据库中,以便将配置信息利用到多个系统中。
最后,还可以借助 IIS Migration Tool。该实用工具属于 Windows 2000 资源工具包的1部份,可以从 http://www.microsoft.com/serviceproviders/downloads/migration_toolsP65238.asp 下载。该工具可以通过端口 80 传送 Metabase、文件和权限,但最多传送 4GB 的数据。虽然不支持它作为资源工具包的1个实用工具,但该工具还是非常有用的。
可用于排除 SMTP 服务故障的资源
问:我想询问有关 IIS 5.0 的 SMTP 服务的信息。我使用默许设置没法发出邮件,请问如何解决这个题目?
答:IIS 5 中的 SMTP 服务是 IIS 4 SMTP 服务的增强版本。您可以在很多地方找到非常有用的信息。除随服务器安装的联机帮助文件,您还可以查阅以下文章:
How to Configure the IIS SMTP Service to Relay SMTP Mail(如何配置 IIS SMTP 服务以转发 SMTP 邮件,Microsoft 知识库文章 Q230235)
Setting Up the SMTP Mail Service in Windows 2000 - Part 1(在 Windows 2000 中设置 SMTP 邮件服务 - 第1部份,http://www.asptoday.com/content/articles/20000306.asp)
但我个人更愿意查阅由微软出版社出版的 Running Microsoft Internet Information Server(运行 Microsoft Internet Information Server)1书中相干的1章。本书对所有 IIS 治理员都是必读的,虽然其中先容的是 Internet Information Server 4,但大量篇幅都适用于 IIS 5,包括触及 SMTP 的那1章。您可以在 Microsoft TechNet 网站上找到这1章,网址是 http://www.microsoft.com/technet/prodtechnol/iis/iis4/deploy/confeat/mail.asp。
最后,还可以参考 Microsoft 培训课程中有关如何配置 SMTP 服务的1个模块,课程名称为 2295a – Implementing and Supporting Microsoft Internet Information Services 5.0(实行和支持 Microsoft Internet Information Services 5.0)。
如何在系统帐户环境之外运行利用程序
问: 我的 IIS 服务器可以运行1个自定义的 mpeg 播放利用程序。该利用程序可以将 mpeg 数据进行流式处理,具体是使用1块特殊的卡将数据解码并以流式输出到投影机上。当 mpeg 源位于本地磁盘上时,这个进程可以正常运行。但现在我需要从 Unix 服务器上提取 mpeg。当 IIS 加载 mpeg 播放利用程序时,总是以 SYSTEM 身份履行加载,但此身份没法访问 NFS(Unix 服务器)共享资源。我需要让 IIS 在启动 mpeg 播放利用程序时使用 SYSTEM 之外的1个用户身份。我已试过更改 IIS 服务使用的用户帐户,但这样1来题目更多了。如何才能解决这个题目,我到底错在哪里呢?
答: 任何进程都总是在帐户的“上下文”中运行的。正如您指出的那样,INETINFO 是由 SYSTEM 帐户所启动的进程,所以 Inetinfo 是在 SYSTEM 帐户上下文中运行的。SYSTEM 帐户不属于典型的用户帐户。SYSTEM 帐户的1个特点之1就是不具有网络访问权,因此,以 SYSTEM 身份运行的利用程序没法访问网络资源。某些情况下,可以对服务进行配置,让它作为由1个指定的用户帐户启动的进程运行,但 IIS 又不支持此项配置功能。
最理想的做法就是让 IIS 服务器中的利用程序切换“上下文”,使用正调用该利用程序的用户的安全身份验证凭据(有关具体信息,请参考以下两本书:由微软出版社出版的 Designing Secure Web-Based Applications for Microsoft Windows 2000(为 Microsoft Windows 2000 设计安全的基于 Web 的利用程序)及 Addison Wesley 出版的 Programming Windows Security(Windows 安全性编程)。
不过,您还可以通过将利用程序配置为在进程外 运行来解决题目。您可以在 IIS 治理单元的 Web 站点或目录属性中配置该设置。在 Internet Information Server 4 中,需要选中“在单独的内存空间中运行(独立进程)”复选框;在 IIS 5 中,需要将利用程序保护级别设置为“中”或“高”。1经配置,利用程序将在 IWAM_ 帐户而不是 SYSTEM 帐户的上下文中运行。IWAM 是1个普通的用户帐户,您可以为其分配访问远程网络资源的权限,这样在此环境中运行的利用程序便可以够访问这些资源了。
作为多个站点的主机时推荐使用的文件夹结构
问: 在选择主目录和主目录的物理文件夹结构时需要留意哪些事项,特别是在作为多个站点的主机时需要留意甚么?假设有 A 公司、B 公司或更多公司,它们是应位于 Inetpub 文件夹下还是 wwwroot 之下?换言之,wwwroot 是所有 Web 站点的根目录还是只是安装的默许 Web 站点的根目录?这对访问 Scripts 等文件夹有何影响?
答:以下几点说明可以澄清上述疑问。安装 IIS 后,系统的目录结构将以下所示:
Drive Root
Inetpub
Adminscripts
Ftproot
Iissamples
Scripts
Wwwroot
由于看到 wwwroot 名称中含有“root”,人们常常就会推断它是存储所有 Web 内容的位置,但是,事实并非如此。该文件夹只是“默许 Web 站点”的主文件夹,您应将该名称视为与“DefaultWebRoot”同等。
故此,您最好将新的 Web 站点放进默许 wwwroot 文件夹之外的文件夹中。假设不这样做,所有 Web 站点内容都只能从默许 Web 站点中读取。另外,为安全起见,不应将网站内容放在系统驱动器中。
还 应特别留意 Scripts 文件夹。默许情况下,Scripts 文件夹的访问权限设为每个用户 - 完全控制,并答应履行脚本,所以必须使该文件夹的安全控制更严格1些。我建议将 Scripts 文件夹重新定位到新的 webroot 所在的驱动器,并对其重命名。这样假设有人想探查服务器中有没着名为“Scripts”的文件夹,并在找到此文件夹后试图上传负载,那末这类攻击行动将被 挫败。 [SplitPage]
用 IIS 设置并路由子域
问:在 W2K 服务器上,怎样用 IIS 5.0 创建子域?假设我让 BerAult.Com 在根 web 站点,并希看让 Technical.Bertault.com 带我到1个新文件夹或子站点,应如何设置它?我所能找到的全部信息都是关于如何将 Berault.com/technical 配置成 URL 的。
答:您的 web 站点体系结构及其与 DNS 的集成对您的 IIS 安装来讲固然是1个很关键的部份。正如您说的那样,为 Berault.com/technical 配置1个站点很轻易,由于它实际上就是位于 Beralut.com 站点内的1个文件夹或虚拟目录。
而 将 technical.bertault.com 配置为1个“子站点”则是另外1回事,这1点您已知道了。依照设计,URL 的构成是这样的:http://domainname.com 应是 http://hostname.domainname.com 的父级域。这是 DNS 的设计使然,DNS 要求 URL 中使用这类名称空间结构。不过,就1个 web 服务器而言,它们是两个完全不同的概念。IIS 其实不以为它们之间有甚么关系。
因此,您应将 technical.berault.com 作为1个完全不同的 web 站点来看待。在 DNS 中,您可以为 technical.berault.com 添加1条 A 记录,此记录给 technical.berault.com 分配1个与 berault.com 相同的 IP 地址。然后,您可以创建1个 ASP 页,用它检查传进的 URL 并相应地路由要求。假设您想让“子域”路由到您主 web 站点内的1个文件夹,这1点将非常有用。或,您也能够创建1个全新的 web 站点,用1个新的 IP 地址(它必须在 DNS 中配置)或用 IIS 内的主机标题来标识它。
您可以为您的“子域”创建1个新的 web 站点,使其主文件夹作为其父级域内的1个位置。固然这样做是可行的,但我建议您不要这样做,由于这样您会发现同1内容将有两个治理界面,而且没有办法使它们保持同步。这样会导致对配置和安全题目进行故障诊断时出现困难。
屏蔽 HTTP 标头(内容-位置)中的 IP 地址
问:在对 IIS 5 服务器进行端口扫描时,它返回以下信息:
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Content-Location: http://192.168.0.44/Default.htm
Date: Tue, 19 Feb 2002 20:19:20 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Tue, 19 Feb 2002 20:04:10 GMT
Content-Length: 16
题目是,Content-Location(内容-位置)标头暴露了 web 服务器的内部 IP 地址。这就为黑客大开了方便之门。是否是有办法让 IIS 在扫描进程中不返回服务器的 IP 地址?
答:有,您可以配置 IIS 4 和 IIS 5,使 Content-Location 字段返回 URL 而非 IP 地址,以下所示:
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Content-Location: http://homer.test.bh.tm/Default.htm
Date: Tue, 19 Feb 2002 20:27:20 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Tue, 19 Feb 2002 20:04:10 GMT
Content-Length: 16
要做到这1点,您必须将 UseHostName 这1值添加到 Metabase 中的 W3SVC 键上。最简单的办法是使用默许情况下安装在 InetpubAdminscripts 中的 ADSUTIL 程序,以下所示:
adsutil set w3svc/UseHostName True
然后,您必须重新启动 web 服务。有关更多信息,请参阅 Microsoft 知识库文章 Q218180。
更改 CGI 脚本超时时间
问:我们每天都要运行1个 CGI 脚本。开始时它运行1会儿,接着我们就会收到1条消息说“超过了 CGI 的时间限制”。CGI 的时间限制是多长,是否是有办法改变它?
答: IIS 确切有1个与 CGI 进程关联的超时限制,默许设置为 300 秒(5 分钟)。此设置可以在用户界面上更改。此设置只在 WWW 服务的 Master 属性中可以看到,所以不容易找到它。打开“IIS 治理单元”,右键单击您的服务器并选择“属性”。在选定 WWW Service Master Properties(WWW 服务主属性)后,单击 Edit(编辑)。单击 Home Directory(主目录)选项卡,然后顺次单击 Configuration(配置)选项卡、Process Options(进程选项)选项卡,如图 1 所示。在这里可以看到 CGI 脚本超时设置。
假设您的浏览器不支持内嵌框,请单击此处在单独的页中查看。
图 1 Application Configuration(利用程序配置)中的 Process(进程选项)选项卡
从 IIS Lockdown 工具中提取 URLScan
问:我们希看在服务器上安装 URLscan,但又不想运行 IISLockdown 工具。之前,Microsoft 是分别提供这些工具的,而现在它们都在同1个安装中。怎样才能既安装 URLScan 又不运行 IISLockdown 呢?
答: 您刚才说过,Microsoft 之前是分开发行 IIS Lockdown 工具和 URLScan 的。IIS Lockdown 工具的 2.1 版在更新以后包括了 URLScan 2.0。在尽大多数情况下,IIS Lockdown 向导应在 IIS 服务器上运行。这样将履行若干个重要步骤以加强您服务器的安全,并将配置和安装 URLScan ISAPI 挑选器。
可以从 IIS Lockdown 安装包中提取 URLScan 组件,并在不运行 IIS Lockdown 的情况下安装它。这将为您提供 URLScan 的 2.0 版本,而不是它的 1.0 版;在本文脱稿时,1.0 版仍可以作为1个单独的可下载软件从 Microsoft 的下载页和通过很多 Microsoft 知识库文章来下载。
如想从 IISLockdown 2.1 中提取 URLScan,请首先下载 IISLockdown 2.1。然后在该工具的位置打开1个命令提示窗口并键进以下命令:
iislockd.exe /q /c /t:c:lockdown_files
此命令将从安装包中提取这些文件。然后,您便可以够将 URLScan.dll 安装为1个 WWW Master 属性级别的 ISAPI 挑选器。确保寄存 URLScan.ini 文件的位置与寄存 URLScan.dll 文件的位置相同。
您 很可能需要为您的服务器手动配置 URLScan.ini 文件。我们建议,只有经验丰富的治理员才可以编辑 URLscan.ini 文件。请浏览从 IIS Lockdown 实用工具中提取的 URLScan.doc 文件中的使用说明。运行 IISLockdown 工具向导来安装 URLScan 的好处之1是,它为您配置了 URLScan.ini 文件。
使用 URL 中的参数重定向要求
问:是否是有办法使用 URL 中的参数作为重定向的1部份,而不使用 ASP?换言之,当人们访问我们的站点 www.oursite.com?A=1 时,我们想将此要求转发到 www.theirsite.com?A=1 站点。
答: 在 web 站点、目录、虚拟目录或文件的属性中,您可以将文件的位置指定为“本地”、在“另1系统上”(带1个 UNC 路径名),或将要求重定向。假设您选择重定向要求,您可能要用到不为人知但功能10分强大的重定向变量。就您的情况而言,您需要在 Redirect To(重定向至)文本框中输进 http://www.theirsite.com$P。$Q 替换变量将全部问号及其后的参数附加到重定向要求后。
还有很多其他的重定向变量使您能够不用编写代码便可以够履行替换和其他操纵。您可以在 IIS 联机帮助文件中的 Redirect Reference(重定向参考)部份找到更多有关重定向参数方面的信息。
[SplitPage]
能否在 Windows XP Home Edition 上安装 IIS 或 PWS?
问: 我曾在某处读到过,不能在运行 Windows XP Home Edition(家庭版)的计算机上运行/开发 ASP.Net 利用程序。是否是有办法在运行 XP 家庭版的计算机上安装 IIS 或 PWS?我有 VS.Net 专业版,但还没有找到用 ASP.Net 进行开发的方法。
答: Windows XP Home Edition(家庭版)不支持 IIS 的任何版本。据我所知,没有任何可靠的方法能让它运行 IIS。Windows XP Home Edition 不适适用作基于 Web 的利用程序的开发平台。升级到 Windows XP Professional 后将答应您在系统上安装 IIS 5.1,这样您便可以够用 ASP.Net 进行开发了。Windows XP Professional 上的 IIS 5.1 是1个全功能的、强大的 Web 服务器,但仅限于使用 10 个同时连接,由于 Windows XP Professional 是1个工作站操纵系统而非服务器平台。在将 Windows XP Professional 用作客户端操纵系统而非服务器操纵系统时,还有其他几点限制。大体上说,这二者的辨别,就是将 IIS 5.0 安装在 Windows 2000 Professional 上时与安装在 Windows 2000 Server/Advanced Server 上时您会看到的那些辨别。但虽然如此,在使用 .NET 框架开发基于 web 的利用程序时,Windows XP Professional 还是1种优秀的开发环境。
ISAPI 挑选器能否在独立的进程空间中运行?
问: IIS 5.0 答应 ISAPI 扩大在独立的进程空间运行。ISAPI 挑选器是否是也能在独立的进程空间运行呢?在我们安装1个包括 ISAPI 挑选器的软件后,我们1个客户的 IIS 服务器每过两3天就重启1次。最后1次故障转储显示 inetinfo.exe 由于“除以 0 的毛病”而崩溃,但它在 ISAPI 挑选器中没有崩溃。假设能在独立的进程空间运行 ISAPI 就好了,这样它就不会与 inetinfo.exe 冲突。
答:再重述1次,针对在 web 服务器上运行这1目的而编写的程序有特定的要求。例如,您不能通过 URL 来调用 Notepad.exe 的1个实例并期看在客户端系统上看到记事本窗口。为让1个可履行文件(不是 CGI)与来自 IIS 的要求交互,需要用 ISAPI 来编写它。ISAPI 的意思是“Internet 服务器利用程序编程接口”。ISAPI 可履行文件分两类--扩大和挑选器。
ISAPI 扩大可从像 http://localhost/myisapi.dll 这样的 URL 直接调用。假定您将 IIS 配置为答应履行目录上的“脚本和可履行文件”而且用户具有 NTFS“履行”权限,则该 dll 将可以运行。IIS 答应您指定让利用程序在进程中运行(作为 inetinfo 的1部份来运行)还是在进程外运行(在 IIS 4 上作为 MTX 的1部份运行,或在 IIS 5.x 上作为 dllhost 的1部份运行)。当1个利用程序在进程外运行时,inetinfo 就会与您所说的那类题目隔离开,不受其影响。假设利用程序失败,则 web 服务器也将失败。
而 ISAPI 挑选器则全然不同。ISAPI 挑选器能够修改传进和传出 IIS 的数据流。所以,它们有强大的能力,可用来实现自定义的日志记录、身份验证,也可用来修改数据流。IIS 5 的 ISAPI 挑选器中实现的功能包括数据紧缩、扼要身份验证和 URLScan。
由于挑选器在 IIS 中扮演着这样1种重要角色,所以在设计上,它们总作为 inetinfo 的1部份在进程中运行。因此,如您所知,正确构造 ISAPI 挑选器对服务器的正常运行来讲是10分重要的。我的建议是,您可让 Microsoft 产品支持服务与您1道找出题目所在,由于这类异常的诊查工作可能会相当难。
就这1题目,有几种新技术可能会使您的工作略轻松1点。1是期看使 用 IIS 6。由于它采取新的体系结构,所有 ISAPI 挑选器都在进程外运行。这样可让您实现将 web 服务器与反复无常的 ISAPI 挑选器隔离起来的目标,但并没有真正解决题目。为终极解决题目,请评估1下 .NET 语言在实现 ISAPI 挑选器方面的能力。我估计您会发现,用 .NET 实现一样的功能,将比采取 C++ 语言的标准 ISAPI 挑选器设计要简单很多。
使用 WebDAV 从 ASP 编辑文档的代码示例
问:在哪里能找到使用 WebDAV 从 asp 编辑文档的代码示例?
答: 在使用 IIS 上的脚本中的 WebDAV 时,您最有可能使用的是 ASP.Net 的 WebClient 类。假设您在使用 Windows XP 或 Windows .NET 服务器,则操纵系统中已包括 WebDAV 功能。这使您可以像使用 UNC 路径那样,用 HTTP 来援用1个 web 服务器上的文件。例如,您可以用 NET USE * http://servername/directory 命令来映照1个驱动器,然后用该驱动器符号访问此位置。或,您也能够创建1个用作 WebDAV 客户真个 COM 对象。您可以用此对象向 IIS 5.x 或 IIS 6.0 发出 WebDAV 操纵命令。
另外,假设您在 MSDN 上搜索 WebDAV,您会找到很多关于如何用 XML 为 Exchange 和其他 Microsoft 服务器创建 WebDAV 查询的示例。在 Microsoft Exchange 2000 Server SDK 中有1个 WebDAV 示例利用程序。
尝试用 ASP 访问数据库时“访问被拒尽”
问:我们在 使用 ASP 访问1个数据库,但当我们向数据库中写进新内容时,总是出现“访问被拒尽”这1结果。在运行 NT 4.0 工作站和运行与之相当的 web 服务器时 ASP 页没有题目,但升级到装有 IIS 5.1 的 Windows XP Professional 后,它就没法使用了。题目仿佛出在某些目录的访问权限上,但我们怎样才能肯定题目究竟在何处呢?
答:有1种极棒的免费实用工具,叫做 Filemon,可以到 http://www.sysinternals.com 上找到它。在我讲授 IIS 时,我让学生们将此工具保存在软盘上,不管到哪里都随身带着它。我其实不完全是在开玩笑。您可以用 Filemon 快速诊断出多数权限题目,由于它可以实时显示服务器上被访问的所有文件、调用进程的名称和访问结果。这样,对任何“访问被拒尽”消息,不管题目在嵌套 的 include 中埋多深,也不管临时索引有多模糊--都可轻松找出。
假设某1利用程序在1个操纵系统上可使用,而在操纵系统升级后它 没法工作了,这会让人很懊丧。不过,这类题目常常都很有启发性。IIS 4 和 IIS 5 之间存在的1种差异与 COM 和 COM+ 之间的差异有关。在 IIS 5 中,当1个 COM+ 对象代表用户访问文件时,其默许行动是使用用户的安全上下文进行访问。在 IIS 4 中则不是这样。所以,当您将包括 COM 的利用程序从 IIS 4 迁移到 IIS 5 时,您可能需要提供针对这些文件的用户权限,虽然在 IIS 4 中不要求提供这些权限。有时这可能不大方便,比如您所碰到的情况;但是,在利用程序的安全设计方面,这确切是1项改进。虽然您可能没有使用自定义 COM 对象访问数据库,但 COM 在本机 IIS 组件中的利用很广泛。
体现这1要求的场合,是在需要授与对 Access 使用的临时文件夹的权限和需要向创建数据库要求的用户授与权限时。有关更多信息,请参阅 Microsoft 知识库文章 Q210457 和 Q271071。
如何在不恢复原设置的情况下运行 IIS 锁定工具
问:我们在我们的服务器上运行了“IIS 锁定”工具,它在对系统履行1些基本的安全设置修改时看起来很成功。但在运行此工具后,我们又给服务器添加了1些功能和内容,然后想再次运行此工具。但是,当我们启动 IIS 锁定向导时,它显示:
假设您的浏览器不支持内嵌框,请单击此处在单独的页中查看。
在这类情况下,我们不想还原到之前的设置,由于这样做会让我们丢掉存储在元数据库中的、对 IIS 配置所做的更改。我们怎样才能再次运行 IIS 锁定工具而又不用先履行还原呢?
答:在我看来,IIS 锁定工具是 Microsoft 真实的压轴戏。如您所说,此工具让您能够轻松而又明显地增加您服务器的安全性。运行此工具后,它将其操纵历史存储在位于以下位置的1个文件中:system32inetsrv。您将可以在以下文件中找到此信息:
- Oblt-rep.log
- Oblt-once.md0
- Oblt-mb.md0
假设您运行了上面显示的“撤消”任务,则还会有1个 Oblt-undone.log 文件。
假设您删除这些文件,则将启动向导,仿佛没有运行过 IIS 锁定工具1样。据我所知,重复履行此进程没有甚么风险。但在这样做之前,1定要为 metabase.bin 制作1个副本。
由于这1方法能够让您像没有运行过锁定工具那样再次运行它,但又不撤消该锁定工具第1次运行时实现的设置或对它们“消除锁定”,所以对您所说的情形,此方法应当行得通。 [SplitPage]
如何发送用以实现重定向的查询字符串信息
问: 在我们最初的Web服务器配置方案中,多个文件夹中均包括称作browse.asp的页面。为简化设计方案,我们目前只在单1文件夹中保存了1个 browse.asp文件。但是,服务器目前依然接受来自用户且要求在本来位置上寻觅borwse.asp文件的服务要求。我希看将这些要求重定向到寄存 browse.asp文件的新位置上。通过使用IIS所内建的重定向功能,这项工作看起来仿佛非常简单,但是,在实际处理进程中,查询字符串信息仿佛总是 被丢失。举例来讲,我们将针对http://servername/oldfolder/browse.asp的要求重定向至http: //servername/newfolder/browse.asp。当用户向服务器发送情势为http: //servername/oldfolder/browse.asp?cat=135的URL时,重定向操纵固然能够履行,但却没法传递查询字符串。请 问是否是存在某种方式能够答应IIS发送从原始要求URL中提取的查询字符串信息?
答:在指定IIS如何对URL进行重定向方面,IIS为您提 供了相当程度的灵活性。IIS中所包括的1项不为人知但却非常实用的特性能够答应您在重定向进程中使用变量,从而实现了能够精确指定向目标URL传递哪些 内容的高级控制能力。举例来讲,在您所描写的情况下,右键单击原有browse.asp文件,在“文件”选项卡上选择“重定向至URL”并输进http: //servername/newfolder/browse.asp$Q。这类设置方式将使用内建服务器重定向变量$Q将原有URL中所包括的查询字符 串部份内容发送到新的位置上。以下表格列出了在线IIS 5帮助文件和编号为Q313074的Microsoft知识库文章中所包括的有关查询字符串的具体信息。
变量
描写
举例
$S
对要求URL中相匹配的后缀信息进行解析。相匹配的后缀信息是指原始URL中重定向URL被替换后所剩余的部份。
假设将/scripts重定向为/newscripts且原始要求URL为/scripts/program.exe,则/program.exe即为后缀信息。服务器将自动履行后缀替换操纵,$S变量仅用于同其它变量配合使用。
$P
对原始URL中的参数进行解析。
举例来讲,假设原始URL为/scripts/myscript.asp?number=1,那末,字符串“number=1”将被映照到目标URL中往。
$Q
对从原始URL中所提取出的问号和参数进行解析。
举例来讲,假设原始URL为/scripts/myscript.asp?number=1,那末,字符串“?number=1”将被映照到目标URL中往。
$V
对要求URL中除服务器名称之外的其它信息进行解析。
举例来讲,假设原始URL为//myserver/scripts/myscript.asp,那末,字符串“/scripts/myscript.asp”将被映照到目标URL中往。
$0 至$9
对要求URL中与指定通配符相匹配的部份进行解析。
举例来讲,假设针对最低级别的目录名称(如*/default.htm)使用1个通配符,那末,URL中包括Default.htm的目录名称部份将被转发。
!
不进行重定向。
使用这个变量以避免对虚拟目录中已实现重定向的子目录或独立文件进行再次重定向。
缓存溢出攻击事件中术语“在进程之内”与“在进程之外”的辨别
问:能否澄清1下不同运行方式之间的辨别所在?
在进程之内运行的利用程序与在进程之外运行的利用程序相比,假设遭到缓存溢出攻击的话,分别将会出现何种情况?
答: 我始终以为“在进程之内”这1术语存在1些混淆。所有益用程序均在某个进程中运行,因此,实际上其实不存在所谓“在进程之外”运行的利用程序。但是,我们经 常在有关IIS利用程序的参考文献中见到这个术语,那末,它究竟代表何种含义呢?在IIS 4与IIS 5.x中,包括1个名为inetinfo的进程。当Web利用程序“在进程之内”运行时,该利用程序将在inetinfo进程内部运行。对IIS 4利用程序来讲,缺省情况下,利用程序将在inetinfo进程内运行。
与此相对应,“在进程之外”运行的利用程序是指那些并非在inetinfo进程中运行的利用程序。对IIS 4,“在进程之外”运行的利用程序宿主于1个名为MTX的进程;对IIS 5.x,此种利用程序则宿主于1个名为dllhost的进程。
所有进程均在某个用户帐号的安全环境中运行。Inetinfo进程在System帐号下运行。MTX(IIS 4)和dllhost(IIS 5.x)则在IWAM_帐号下运行。
现 在,我们已对回答您的题目所触及的相干概念进行了解释。在1次成功的缓存溢出攻击事件中,攻击者可能会在托管失败利用程序的进程安全环境中运行相干代 码。因此,假设您的利用程序在进程之内(在inetinfo进程中)运行,攻击者将在具有全面服务器访问权限的System安全环境中运行。假设您的利用 程序在进程之外(在MTX或dllhost进程中)运行,攻击者将在仅仅具有有限服务器访问权限的IWAM帐号安全环境中运行。
需要特别留意 的是,在缺省配置方案中,IIS 5依照中等利用程序保护设置(在进程之外模式下采取池分配方式)“在进程之外”运行所有益用程序。由于前面所提到的缘由,这类运行方式与在进程之内运行应 用程序相比要安全可靠很多。与缺省设置相比,由于通过System帐号访问服务器在IIS 5上所导致多发性缓存溢出攻击使服务器极易遭受攻击。在针对IWAM与IUSER帐号利用严格限制条件的同时,通过运行IIS Lockdown工具还可实现额外的安全性。
顺便提及1下,(作为Windows .NET Server 2003的组成部份之1)IIS 6采取这样1种配置方式,即在缺省的工作进程独立模式下,缓存溢出攻击根本没法通过具有高级权限的用户帐号对服务器进行访问。
如何在重建站点后继续使用本来的日志文件
问: 我有1个与IIS元数据库文件相干的题目。当您在IIS 5服务器上创建1个新的Web站点时,日志文件夹将随该Web站点1同创建。IIS通过增量方式对这个文件夹进行命名。这类方式有效避免了日志文件夹命名 不当或遭到意外破坏的情况。但是,当您删除并重新安装1个‘站点’时,您将丢失所有先前使用的元数据。同时,日志文件夹位置也将随之丢失。此文件夹现在将 是依照增量方式最后创建的日志文件夹。[假设前1个取值为W3SVC8,那末,当前日志文件夹应为W3SVC9]。请问是否是能够通过某种方式对元数据库进 行编辑,以便使IIS将站点属性指向原有日志文件夹名称?
答:您描写了1个非常有趣的题目,但是您所建立的假定需要进行澄清。是的,IIS确 实创建1个日志文件夹,通常情况下,这个文件夹是c:windowswinntlogfiles目录。同时,正如您敏锐视察到的那样,假设删除并重建1个 Web站点,日志文件夹名称将产生变化。但是,IIS并非为避免与本来日志文件产生冲突而采取增量方式对日志文件夹进行命名。与此相反,用以保存日志文件 的文件夹名称是基于元数据库中所存储的Web站点“站点编号”--有时也称作实例编号--天生的。您所创建的每个站点均具有1个独立编号,当您每次创建新 的Web站点时,这个编号将顺次递增。您可以通过MetaEdit工具清楚的视察到这1点,该工具以文件夹1、2、3的情势(此种情况下为元数据库键值) 来显示各个Web站点,通常情况下,1代表缺省Web站点,2代表治理Web站点,以此类推。(具体情况请查看图1)。
图1. MetaEdit用户界面
因而可知,假设您具有1、2、33个站点,当您删除站点2并希看通过从IIS控制台创建1个新的Web站点来“重建”原有站点时,IIS将为其分配下1个取值最大的站点编号,当前情况下为5。尔后,日志文件将被放置在名为w3svc5(而非w3svc3)的文件夹中。
1旦创建终了后,由于其它键值(如站点根路径)需要对其进行援用,因此,建议您最好不要对站点ID进行修改。在这类情况下,您只需将日志文件从本来使用的日志文件夹中复制到新建日志文件夹中。
然 而,假设您通过脚本而非用户界面来创建Web站点的话,您可以指定希看针对“还原”Web站点所使用的站点ID。通过此种方式,您可以实现预先期看的目 标。您可以从InetpubAdminscripts文件夹中找到1个缺省安装的名为mkw3site.vbs的脚本。在记事本或其它文本编辑器中打开这 个脚本以查看其中所使用的语法,您会发现其中的参数之1为Sitenumber。这个参数答应您使用自己指定的站点编号而非通过IIS控制台以增量方式确 定的下1个站点编号来创建Web站点。 [SplitPage]
如何在IIS上运行除ASP之外的其它类型脚本
问:我们希看在自己的IIS服务器上运行PHP和Perl程序,但我们始终没法找到答应这些脚本程序正常工作的正确方式。我们手中具有大量非常实用的脚本,但如何才能答应IIS运行除ASP之外的其它类型脚本呢?
答: Microsoft公司在Windows 2000资源工具包中提供1种版本的Perl解释程序,但如需获得最新版本且功能最为完善的解释程序,您应从站点http: //www.activestate.com/上下载该产品的最新发布版本。从那里,您将能够取得1个称作ActivePerl的软件包,该软件包中包括 能够针对.pl和.plx文件创建利用程序映照关系的安装例程,从而答应您对上述类型的脚本文件进行治理。换言之,假设您希看针对所有脚本使用.pl文件 类型,那末,您可以删除针对.plx文件的利用程序映照关系。在条件答应的情况下,您应尽可能使用perl.dll解释程序来替换perl.exe解释程 序以取得更加优良的性能与可伸缩性。除此之外,您还可以从站点http://www.iisanswers.com/Top10FAQ/t10- installperl.htm上和编号为Q245225的知识库文章中获得有关这1主题的操纵指导文章,
您可以从站点http://www.php.net/上下载PHP解释程序和大量相干文档与在线资源。
针对java利用程序的JRUN可以从站点http://www.macromedia.com/software/jrun上获得。
ASP.net可以通过站点http://gotdotnet.com/或Windows更新服务取得。
如何检测哪台计算机上安装了IIS
问:我想知道是否是存在1种工具能够检测出某台PC机上是否是安装了IIS。我们目前具有3000多台PC,我需要通过1种方式来肯定哪些计算机上安装了IIS。
答: Microsoft提供了两种答应您对子网进行扫描的工具。HFNetChk和Microsoft Security Baseline Analyzer(MSBA)将在您的网络中对所有装有Microsoft网络客户端和文件与打印共享服务,和正在运行服务器、工作站和远程注册表服务 的系统进行扫描,以标识出“特定”类型的系统。假设这些服务没法正常工作,您还可以借助诸如fport(这类工具可以从站点http: //www.foundstone.com/上进行下载,它将告知您网络中各个系统上有哪些端口处于打开状态)之类的工具进行端口扫描。固然,由于IIS 能够对用户所选择的任意端口进行监听,因此,您没法通过这类端口扫描操纵来判定与每个端口相干联的服务;虽然如此,根据经验判定,假设80端口处于可用状 态,那末,它很可能正在被IIS使用。来自Foundstone公司的另1种免费实用工具Superscan能够以“标语”情势显示出由您所连接到的服务 返回的信息。这项细微改进能够快速完成网络扫描并报告所发现的内容。
除以上所先容的方法外,当用户通过自己的帐号进行登录时,您还可以从用户的登录脚本中测试出IIS是否是存在。仰仗Internet上针对这1目的所提供的各种选择方案与可用工具,您将实现1个良好的开端。
在添加Internet服务后是否是需要重新利用热修补程序和服务软件包?
问: 我们在Windows 2000服务器上安装了IIS,但没有安装任何其它类型的Internet服务。现在,我们需要为1个要求从服务器上发送电子邮件的Web利用程序添加 SMTP服务。假设我们添加SMTP服务的话,是否是需要重新利用最新的服务软件包和热修补程序?
答:在Windows NT 4.0中,当您向操纵系统中添加诸如SMTP之类的服务时,您需要重新安装服务软件包和热修补程序。在Windows 2000中,这类情况得到的明显改良,当您安装软件、服务或更新程序时,通常情况下无需重新利用服务软件包。举例来讲,您可以安装不含IIS的 Windows 2000操纵系统,并利用服务软件包x(其中x为最新服务软件包编号),尔后,当您安装IIS时,其2进制(程序)版本编号将自动与服务软件包(SP)x 保持相同的级别。这项特性在添加诸如SMTP之类的服务时为您减少了大量工作。但是,热修补程序和转动升级程序又产生了另1个题目。虽然您的SMTP服务 能够与SP x处在同1级别上,但您还需要重新利用与该服务相干的热修补程序和转动升级程序。举例来讲,当您卸载或重新安装IIS时,在最近利用的服务软件包发布后出 现的所有IIS热修补程序与转动升级程序都必须重新加以利用。
确保您已利用所有必要热修补程序和服务软件包的最好方式是在系统中使用 HFNetChk或Microsoft Security Baseline Analyzer(MSBA)。这是肯定需要在服务器上利用哪些热修补程序及更新程序的最可靠方式。因而可知,正确的操纵进程是首先安装SMTP,以后, 运行上述工具之1以肯定需要利用哪些热修补程序。[SplitPage]
重新命名IUSR帐号
问:重新命名IUSR帐号将导致何种后果?
答: IUSR帐号通常称作“Web匿名用户”帐号或“Internet来宾”帐号。IUSR帐号是1种常常使用的简写情势,该帐号的实际格式为IUSR_,其中, 是安装IIS时所使用的Netbios服务器名称。正如您可能已知道的那样,当IIS服务器启用匿名身份验证方式,且该服务器上存在针对特定访问要求类 型具有适当NTFS权限的IUSR帐号时,系统将自动对其加以利用。
由于此帐号的名称是尽人皆知的,因此,为加大网络黑客在服务器上猜想用户名称与口令的难度,建议您在那些对安全性要求较为严格的环境中对IUSR帐号名称进行修改。对需要具有高度安全性的服务器而言,这是1项非常良好的建议,但是,有几种留意事项您必须时刻牢记。
当 修改匿名用户帐号名称时,您必须同时在Internet Information Services治理器和针对本地计算机的用户与组中对其进行修改(假定针对匿名用户使用本地帐号)。假设您在用户与组中删除IUSR帐号或对其名称进行 修改,但未在Internet服务治理器中分配新的匿名用户帐号,那末,IUSR帐号将会在下次重新启动系统时自动重建。我常常简单的禁用当前IUSR帐 号并创建1个新的帐号,以后在Internet服务治理器中针对匿名访问分配新建帐号。假设您正在使用IIS Lockdown工具的话,请将新建用户帐号设置为Web匿名用户本地组中的成员。
当您针对匿名用户创建新的用户名称与口令时,请1定确保使 用1个难以破解的口令。Windows 2000操纵系统中的匿名用户帐号是1个随机天生的由14个字母与数字所组成的字符串。通常情况下,依照人的1般习惯,事后创建的口令在保密效率上要远远 低于匿名用户最初所使用的口令,因此,您1定要确保创建1个不容易破解的口令。
只要心中牢记这些留意事项,在修改帐号的进程中就不会节外生枝,最后,请1定不要忘记在Internet Information Services治理器中指定新的匿名用户帐号。
查看以往的专栏文章:2001年12月:“如何确保IUSR帐号安全性。”
利用FrontPage Server Extensions治理您的NTFS权限
问:我们在自己的 IIS 4和IIS 5服务器上装载了FrontPage Server Extensions 2000。我们发现,1旦载进FrontPage Server Extensions 2000,服务器上的NTFS权限便会遭到修改。新的权限中将包括对网络与交互组的使用。您能否解释1下这些组的作用和FrontPage Server Extensions如何治理NTFS权限?
答:当您在Web服务器上安装FrontPage Server Extensions(FPSE)时,需要肯定答应FPSE自动治理相干权限,还是希看手工治理相干权限。缺省情况下,FPSE将自动对其所处Web站点 的权限进行治理。假设需要的话,您可以禁用这类自动治理方式,为此,您只需在Internet Information Services治理器中的服务器图标上右键单击鼠标,选择“Server Extensions”选项卡,并选定“手工治理权限”复选框。请留意,这是1个服务器级选项,它没法针对各个站点采取不同的设置。在此,我强烈建议您从 答应FPSE自动治理权限或手工治理权限这两种方式当选择其1,而不要尝试同时使用这两种方式。
位于网址http: //officeupdate.microsoft.com/frontpage/wpp/serk/上的FPSE 2000资源工具包提供了关于由FPSE所分配并保护的相干权限的具体信息。这些权限中包括您在题目中所提到的针对网络与交互组的使用情况。
网 络组是1种自动进行保护的本地组,它由所有包括某种网络登录类型的用户所组成。网络组中的成员通常通过网络进行登录。交互组一样是1种自动进行保护的本地 组,它由所有包括某种本地登录类型的用户所组成。本地组包括在计算机控制台上进行登录的用户和通过基本身份验证功能实现身份验证的用户。
从多种身份验证方法中进行选择
问:IIS 5答应您针对Web站点选择多种不同的身份验证方法。当您同时选择匿名身份验证、基本身份验证和集成化Windows身份验证方法时,请问IIS将如何选择针对特定用户的身份验证机制?
答: 针对这1题目的背景情况比较复杂,但其可以通过几条规则来加以总结。这些规则同时适用于IIS 4和IIS 5。有关身份验证方法的第1条不变规则是“假设可能的话,您将首先以匿名用户的身份通过验证。”从资源角度考虑,这类方式只要求在服务器上启用匿名身份验 证方式--即确保匿名用户具有访问要求资源的权限。针对这条规则的唯1例外情况是,用户已以匿名用户之外的其它用户身份通过验证,且系统支持除匿名验证 方式之外的其它身份验证方式。
假定您已选择了多种身份验证方法,且用户没法仰仗匿名用户身份通过验证,那末,如何肯定所需采取的身份验证方 法呢?答案是IIS将向客户端提供1份身份验证方法列表,由客户端自行选择何种方法最为安全可靠。当您同时选择基本身份验证和集成化Windows身份验 证(或IIS 4中的Windows NT 质询/响应身份验证方法)时,由于没法履行集成化Windows身份验证,Netscape将选择基本身份验证方法。相反,对Internet Explorer来讲,假设提供一样的选项,它将选择集成化Windows身份验证方法。在IIS 5服务器上,IIS与IE将进1步肯定是否是支持Kerberos,假设支持的话,终极将选择使用Kerberos身份验证方法。对包括IIS 4在内的其它情况,将使用Windows NT 质询/响应身份验证方法。 [SplitPage]
重新命名IIS Server将会导致何种后果?
问:作为对11月份所提题目的延续:“请问对IUSR帐号进行重命名将会产生何种后果?”,我希看了解重命名服务器时针对IIS服务器所产生的后果。
答: 服务器名称是在Windows 2000安装进程中分配的,此名称可以在安装完成落后行修改。从技术上讲,服务器名称、计算机名称和主机名称这3种术语都可用于描写计算机的 Betbios名称。您可以在命令行窗口中使用“hostname”命令来肯定当前服务器名称。
在Microsoft网络中,此名称用于通过 WINS、DNS(在Windows 2000中)或使用Netbios名称表查找方式将服务器名称解析为IP地址。IIS其实不使用这类服务器名称,因此,您可以任意对其进行修改。但是,这并 不意味着其它利用程序或利用程序中所包括的COM对象均独立于服务器名称。举例来讲,假设运行IIS 4的服务器上安装了Site Server 3,那末,系统便不支持您修改服务器名称。当您在运行IIS 4的服务器上修改服务器名称时,需要完成1些必要的内部治理工作,如需获得有关这些工作的具体描写信息,请参阅http: //support.microsoft.com/default.aspx?scid=kb;EN-US;234142&sd=tech。相比 之下,IIS 5的处理方式则截然不同,我常常对运行IIS 5的Windows 2000服务器进行服务器名称修改操纵,且从未碰到过任何异常现象;但是,虽然如此,我还是建议您不要轻易履行这项操纵。
如需修改服务器名称,请右键单击“我的电脑”,在随后出现的快捷菜单当选择“属性”并单击“网络标识”。尔后,单击“属性”按钮以查看“计算机名称”设置。
在 履行此类修改操纵后,请牢记,服务器名称和IUSR_和IWAM_用户帐号仍将反应原本的服务器名称。这些对象未被更新为反应新的服务器名称。但是,这 与IIS没有任何关联,匿名身份验证进程(和由此衍生而来且以IWAM用户帐号身份运行的处理利用程序)仍将顺利履行。假设使用诸如远程MMC控制台、 脚本或终端服务客户端之类需要查找本来服务器名称的远程利用程序,那末,您还需要进行其它1些修改。另外,通过IIS服务器上的文件共享方式进行内容发布 的客户端需要使用新的服务器名称对其共享文件夹连接进行更新。
请记住,安装证书服务的Windows 2000服务器没法修改本身标识。在对相应计算机名称进行修改,或将其加进到域中或从域中剥离之前,您必须首先卸载证书服务。
“语法分析程序毛病消息”具有何种含义?
问: 我具有1台装有最新补钉程序的IIS 5服务器,这台服务器总是收到内容为“语法分析程序毛病消息:这是1个由于在利用程序层上使用注册为allowDefinition= ‘MachineToApplication’的部份所导致的毛病。这个毛病多是由1个在IIS中未被配置为利用程序的虚拟目录所酿成的。”的出错信 息。请问这是为甚么?
答:我喜欢这些内容具体的ASP.NET毛病消息!它们不但描写了出现题目的缘由,同时还常常为您提供解决方案。假设您 的ASP.NET利用程序被配置为需要使用那些在元数据库定义好的“利用程序”的特性(如或),而这些“利用程序”定义又不存在,那末,您将看到这条出错 信息。您可以通过从web.config文件中删除相干设置或分别在Web站点、虚拟目录或目录的“主目录”、“虚拟目录”和“目录”属性选项卡上点击 “创建”按钮的方式纠正这类毛病。为履行上述操纵,您最少需要具有针对上述位置的脚本履行权限和读取权限。
如何分析URLScan日志文件?
问: 为肯定我们的服务器所遭受的攻击类型并对其进行分类,我们目前正在着手对W2SVC和URLScan的日志文件进行分析。固然我们已找到了能够载进 W3SVC日志文件的产品,但这些工具却无1能够对URLScan的日志文件进行扫描。请问Microsoft公司是否是提供了能够帮助我们对 URLScan日志文件进行分析的产品或工具?
答:请问1种答应您针对URLScan日志、W3SVC、事件查看器记录或其它任意1种基于文 本的日志文件(如防火墙或进侵监测系统日志)进行数据发掘、格式变化并天生分析报告的免费实用工具是否是能够满足您的需要?Microsoft所提供的免费 日志分析器工具正是专为满足那些需要搜集并报告从具有不同文件格式的日志文件或其它数据源中所提取重要信息的IIS治理员、系统治理员和安全治理员的平常 工作需求而设计的。
日志分析器可以将采取多种不同格式的日志文件当作“数据源”进行处理,这些日志文件包括:
W3C Extended
IIS
IISMSID [在安装MSIDFILT过滤器或CLOGFILT过滤器后所天生的Microsoft IIS日志格式文件]
NCSA Common
2进制日志文件格式(针对IIS 6)
开放式数据库连接(ODBC)
URLScan
HTTP毛病日志文件(针对IIS 6)
针对系统日志文件、利用程序日志文件、安全事件日志文件和EVT备份日志文件的事件查看器记录。
普通CSV文件
普通W3C文件,如个人防火墙日志文件,Windows媒体服务日志文件和Exchange跟踪日志文件。
文件与目录结构信息。
普通文本文件
日志分析器包括1种答应您通过运行SQL查询语句的方式天生分析报告或重新格式化信息结构的查询引擎。某些通过SQL语法实现的技能将为您提供极大的便利。
例如,您可以通过以下语句针对某个Web站点汇总每小时处理的要求个数和所发送的字节数目: SELECT TO_STRING(TO_TIMESTAMP(date, time), 'yyyy-MM-dd hh') AS Hour,
COUNT(*) AS Total,
SUM(sc-bytes) AS TotBytesSent
FROM ex*.log
GROUP BY Hour
ORDER BY Hour
固然,您还可以通过单独文件夹或文件和日志文件中所提供的诸如日期、时间之类的参数来缩小查询范围。
依照相同的方式,您即可以对URLScan日志进行查询。以下示例将报告通过某1客户端IP地址所拒尽的要求次数: SELECT ClientIP,
COUNT(*)
FROM URLSCAN
WHERE Comment LIKE 'Url%'
GROUP BY ClientIP
日志分析器还提供了很多其它特性,其中包括将结果输出至XML文件的功能、提供日志分析器功能的Active X对象(通过ADO实现)、和通过自定义模板格式化输出结果的能力。
不言而喻,这是1种功能非常强大的实用工具,它将顺理成章的成为广大IIS治理员“工具包”文件夹中的1员
TAG:程序,服务器,进程,文件,站点
评论加载中...
|