无法selectIUSR运行下的服务

我们有一个运行IIS 7.5的Windows 2008 R2盒子,由于安全性的要求,我们需要将万维网发布服务设置为在IUSR下运行。 我可以给予IUSR文件夹权限就好了。 但是当我尝试selectIUSR帐户运行万维网发布服务时,我收到一条消息,说用户无法find。 目前我们的服务正在“本地系统帐户”下运行。 任何帮助将不胜感激。

IUSR是匿名访问者浏览您的网站时使用的安全上下文。 我build议不要将它用于WWW服务。

在IIS7.5之前,除了本地IUSR帐户之外,还将为您创build一个服务帐户(IWAM),这是一个本地帐户。 新的模式是运行不同的应用程序池标识,以便一个网站不会影响站点上的另一个网站,如果一个网站被泄密。 我可能会考虑为WWW服务的非特权本地帐户,将凭据限制在该特定框中。

我使用本地用户进行了WWW和Windows进程激活服务的testing,并且不断收到Windows进程激活服务的“此帐户权限不够”的错误消息。 所以我将本地帐户添加到IIS_IUSRS和任何其他IIS相关的组,并进入本地安全策略,并在本地安全策略的用户权限分配中添加权限:

  • replace进程级令牌
  • 调整进程的内存配额
  • 生成安全审计
  • 作为批处理作业login

这不起作用,所以我添加“创build全局对象”后,发现谷歌build议可能会有所帮助。 它没有。 但是,现在是我回家的时候了,所以我解开了这一切(即使这是一个testing环境)。

我然后尝试

  • 身份validation后模拟客户端

没有快乐。 这些服务以本地系统的forms运行,

本地系统帐户是一个function强大的帐户,可以充分访问计算机并充当networking上的计算机。 如果服务使用本地系统帐户login到域控制器,则该服务可以访问整个域。 有些服务默认情况下configuration为使用本地系统帐户,这不应该改变。 本地系统帐户没有用户可访问的密码。

对不起,我试过了,但我觉得你运气不好。 你当然可以尝试给予一个帐户在这里列出的特权:

  • SE_ASSIGNPRIMARYTOKEN_NAME(已禁用)
  • SE_AUDIT_NAME(启用)
  • SE_BACKUP_NAME(已禁用)
  • SE_CHANGE_NOTIFY_NAME(启用)
  • SE_CREATE_GLOBAL_NAME(启用)
  • SE_CREATE_PAGEFILE_NAME(启用)
  • SE_CREATE_PERMANENT_NAME(启用)
  • SE_CREATE_TOKEN_NAME(已禁用)
  • SE_DEBUG_NAME(启用)
  • SE_IMPERSONATE_NAME(启用)
  • SE_INC_BASE_PRIORITY_NAME(启用)
  • SE_INCREASE_QUOTA_NAME(已停用)
  • SE_LOAD_DRIVER_NAME(已停用)
  • SE_LOCK_MEMORY_NAME(启用)
  • SE_MANAGE_VOLUME_NAME(禁用)
  • SE_PROF_SINGLE_PROCESS_NAME(启用)
  • SE_RESTORE_NAME(已禁用)
  • SE_SECURITY_NAME(已禁用)
  • SE_SHUTDOWN_NAME(已禁用)
  • SE_SYSTEM_ENVIRONMENT_NAME(禁用)
  • SE_SYSTEMTIME_NAME(禁用)
  • SE_TAKE_OWNERSHIP_NAME(已停用)
  • SE_TCB_NAME(启用)
  • SE_UNDOCK_NAME(已停用)

但是从微软那里得到一张告诉你不要那样做的报告可能会更容易一些。

我也在想办法做到这一点。 我怀疑OP与我的要求是一样的。 这将是国防部的JITC要求。 这里是:

Check Content: 1. Go to Start, Administrative Tools, then Services. 2. Right click on service name World Wide Web Publishing Service, Select Properties, then select the Log On tab. 3. The username next to this account is the web service account ID. If any other user than IUSR is listed, continue to step 4. If the service account IUSR is used to run the service, this is not a finding. 4. Open a command prompt and enter Net User [service account ID], press Enter. 5. Verify the values for Password last set and Password expires to ensure the password has been changed in the past year, and will be required to change within the coming year. Fix Text: Configure the service account ID, used to run the web-site, to have its password changed at least annually or use the service account IUSR. 

这里有很多层次的错误。 真的很短的版本不要那样做

我强烈地怀疑,要么是误解了安全要求,要么是写出来,而不考虑IIS的devise。

WAS需要以本地系统运行。 句号 它不能远程访问,因此攻击面非常有限,即本地计算机pipe理员。

它作为本地系统运行的一个原因是,它将applicationhost.config分割为每个应用程序池的不同部分,在Inetpub \ Temp \ AppPools中获取它自己的独立副本。

另一个原因是它启动了具有Webpipe理员configuration的特定身份的应用程序池工作进程(W3WP) – 也就是说,如果您说一个App Pool具有ApplicationPoolIdentity的基本身份,那么这是一个独特的低权限帐户,用作基本进程身份不是冒充别人。

还有一个原因就是它不支持改变WAS的身份,而且它被devise成以本地系统运行。 这是一个特权过程。

WWW服务,这是InetInfo和支持页面处理在过去(即最近的Windows 2000时间框架),但不再是,可能是build议的目标。

但是它不再涉及页面处理(IIS 6+),只是为了让W3WP将来使用HTTP.SYSconfiguration。

因此,应用程序池(特别是关联的工作进程)将执行实际工作,您可以通过“应用程序池”选项卡configuration其基本身份,以及通过“身份validation” – >“匿名”设置为匿名工作使用的特定帐户。

没有看到实际的书面文字或理解它的来源,某处似乎有些不正常。 或者就像它是由一些对标准Win32服务有所了解的人写的,但对IIS不太了解。

为了确保和隔离一个IIS站点,并且似乎达到了指导的目的(如果不是写的),你所需要做的就是:

  • 使用应用程序池标识作为匿名帐户(或IUSR,如果您的政策要求,但它会降低安全性(因为它是一个普通的共享帐户,而不是一个唯一的每站点帐户)
  • 设置内容的权限,以便只有IIS AppPool \ AppPoolName具有对内容文件夹的读取权限

你完成了。