如何在系统帐户环境之外运行应用程式
问: 我的 IIS 服务器能够运行一个自定义的 mpeg 播放应用程式。该应用程式能够将 mpeg 数据进行流式处理,具体是使用一块特别的卡将数据解码并以流式输出到投影机上。当 mpeg 源位于本地磁盘上时,这个进程能够正常运行。但现在我需要从 Unix 服务器上提取 mpeg。当 IIS 加载 mpeg 播放应用程式时,总是以 SYSTEM 身份执行加载,但此身份无法访问 NFS(Unix 服务器)共享资源。我需要让 IIS 在启动 mpeg 播放应用程式时使用 SYSTEM 以外的一个用户身份。我已试过更改 IIS 服务使用的用户帐户,但这样一来问题更多了。如何才能解决这个问题,我到底错在哪里呢?
答: 任何进程都总是在帐户的“上下文”中运行的。正如您指出的那样,INETINFO 是由 SYSTEM 帐户所启动的进程,所以 Inetinfo 是在 SYSTEM 帐户上下文中运行的。SYSTEM 帐户不属于典型的用户帐户。SYSTEM 帐户的一个特点之一就是不具备网络访问权,因此,以 SYSTEM 身份运行的应用程式无法访问网络资源。某些情况下,能够对服务进行配置,让他作为由一个指定的用户帐户启动的进程运行,但 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 中,需要将应用程式保护级别配置为“中”或“高”。一经配置,应用程式将在 IWAM_ 帐户而不是 SYSTEM 帐户的上下文中运行。IWAM 是个普通的用户帐户,您能够为其分配访问远程网络资源的权限,这样在此环境中运行的应用程式就能够访问这些资源了。
作为多个站点的主机时推荐使用的文档夹结构
问: 在选择主目录和主目录的物理文档夹结构时需要注意哪些事项,特别是在作为多个站点的主机时需要注意什么?假如有 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 文档夹的访问权限设为每个用户 - 完全控制,并允许执行脚本,所以必须使该文档夹的安全控制更严格一些。我建议将 Scripts 文档夹重新定位到新的 webroot 所在的驱动器,并对其重命名。这样假如有人想探查服务器中有没有名为“Scripts”的文档夹,并在找到此文档夹后试图上传负载,那么这种攻击行为将被 挫败。 [SplitPage]
用 IIS 配置并路由子域
问:在 W2K 服务器上,怎样用 IIS 5.0 创建子域?假如我让 BerAult.Com 在根 web 站点,并希望让 Technical.Bertault.com 带我到一个新文档夹或子站点,应如何配置他?我所能找到的全部信息都是关于如何将 Berault.com/technical 配置成 URL 的。
答:您的 web 站点体系结构及其和 DNS 的集成对于您的 IIS 安装来说当然是个很关键的部分。正如您说的那样,为 Berault.com/technical 配置一个站点很容易,因为他实际上就是位于 Beralut.com 站点内的一个文档夹或虚拟目录。
而 将 technical.bertault.com 配置为一个“子站点”则是另外一回事,这一点您已知道了。按照设计,URL 的构成是这样的:http://domainname.com 应是 http://hostname.domainname.com 的父级域。这是 DNS 的设计使然,DNS 需要 URL 中使用这种名称空间结构。但是,就一个 web 服务器而言,他们是两个完全不同的概念。IIS 并不认为他们之间有什么关系。
因此,您应将 technical.berault.com 作为一个完全不同的 web 站点来看待。在 DNS 中,您能够为 technical.berault.com 添加一条 A 记录,此记录给 technical.berault.com 分配一个和 berault.com 相同的 IP 地址。然后,您能够创建一个 ASP 页,用他检查传入的 URL 并相应地路由请求。假如您想让“子域”路由到您主 web 站点内的一个文档夹,这一点将很有用。或,您也能够创建一个全新的 web 站点,用一个新的 IP 地址(他必须在 DNS 中配置)或用 IIS 内的主机标题来标识他。
您能够为您的“子域”创建一个新的 web 站点,使其主文档夹作为其父级域内的一个位置。虽然这样做是可行的,但我建议您不要这样做,因为这样您会发现同一内容将有两个管理界面,而且没有办法使他们保持同步。这样会导致对配置和安全问题进行故障诊断时出现困难。
屏蔽 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 地址?
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




