我正在运行一个有 60 多个站点的服务器。目前所有这些站点都在 IUSR 帐户下运行。查看文件夹安全性,IIS_IUSRS 组可以访问该站点的所有文件夹。这带来了一个问题,即如果一个站点受到攻击,所有站点都会受到攻击,因为一个用户可以访问所有文件。
是否可以将每个站点设置为在其自己的用户下运行,如果可以,我该如何以这种方式设置站点?
我正在运行带有 IIS 版本 7.5 的 Windows Server 2008 R2 Service Pack 1(内部版本 7601)。
答案1
是的,您可以为每个站点创建一个应用程序池(并且 IIS 可能已经为您完成了此操作),然后根据您的需要配置每个池的标识。
答案2
是的。Windows 2008 R2 的默认设置(也是 2008 SP2 中的一项功能)是使用 ApplicationPoolIdentity(自动生成的低权限帐户)运行每个网站。您还可以将该身份指定为匿名用户帐户。
通过 GUI 创建的每个网站都会获得一个与其关联的应用程序池,并且当使用该身份运行时,会为该应用程序池推断出一个低权限用户帐户(应用程序池标识)(该帐户实际上并不存在,但可计算的 SID 存在)。
为了更好地隔离您的应用程序:
保护每个网站的内容,以便 IUSR 没有读取权,只有 (IIS AppPool\AppPoolName) 身份 (+system+admins+any authenticated users) 可以读取
编辑每个站点的匿名身份验证设置,并将匿名用户设置为应用程序池标识
您几乎需要一次性完成所有操作,这样将来就更容易通过这种方式预先配置它们。:)