無法選擇 IUSR 來運行服務

無法選擇 IUSR 來運行服務

我們有一個運行 IIS 7.5 的 Windows 2008 R2 機器,由於安全要求,我們需要將萬維網發布服務設定為在 IUSR 下運行。我可以很好地授予 IUSR 資料夾權限。但是,當我嘗試為萬維網發布服務運行的帳戶選擇 IUSR 時,我收到一條訊息,指出找不到該用戶。目前我們的服務在「本機系統帳戶」下運作。任何幫助將不勝感激。

答案1

IUSR 是匿名訪客瀏覽您的網站時所使用的安全上下文。我建議不要將其用於 WWW 服務。

在 IIS7.5 之前,除了本機 IUSR 帳戶之外,還會為您建立服務帳戶 (IWAM),該帳戶是本機帳戶。新模型將以不同的應用程式集區身分運行,這樣,如果某個網站受到威脅,一個網站就不會影響到另一個網站。我可能會考慮為 WWW 服務使用非特權本機帳戶,以將憑證限制在該特定框內。

我使用本機使用者進行 WWW 和 Windows Process Activation Service 的測試,但對於 Windows Process Activation Service 不斷收到「此帳戶權限不夠」的錯誤訊息。因此,我將本機帳戶新增至 IIS_IUSRS 和任何其他 IIS 相關群組,然後進入本機安全性原則並在本機安全性原則的使用者權限指派中新增權限:

  • 替換進程級令牌
  • 調整進程的記憶體配額
  • 產生安全審計
  • 作為批次作業登入

這不起作用,所以我在谷歌中找到一些建議可能有幫助的內容後面添加了“創建全局對象”。事實並非如此。但後來我要回家了,所以我把這一切都取消了(儘管這是一個測試環境)。

然後我嘗試了

  • 身份驗證後冒充用戶端

沒有喜悅。這些服務作為本地系統運行,並且我正在使用的鏈接說,

本機系統帳戶是一個功能強大的帳戶,可以完全存取電腦並充當網路上的電腦。如果服務使用本機系統帳戶登入網域控制站,則該服務可以存取整個網域。某些服務預設配置為使用本機系統帳戶,不應變更。本機系統帳戶沒有使用者可存取的密碼。

抱歉,我試過了,但我想你運氣不好。您當然可以嘗試為帳戶授予列出的權限這裡

  • 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(已停用)

但從微軟那裡得到一張紙告訴你不要這樣做可能會更容易。

答案2

我也在尋找一種方法來做到這一點。我懷疑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.

答案3

很多這裡的錯誤程度。真的很短的版本不要那樣做

我強烈懷疑您要么誤解了安全要求,要么是在編寫該要求時沒有考慮 IIS 的設計方式。

WAS 需要作為本機系統運作。句號。它無法遠端訪問,因此攻擊面非常有限,即本機電腦管理員。

它作為本機系統運作的原因之一是,它將 applicationhost.config 劃分為每個應用程式集區的不同部分,並在 Inetpub\Temp\AppPools 中取得自己的獨立副本。

另一個是,它啟動具有由Web 管理員配置的特定身份的應用程式集區工作進程(W3WP) - 即,如果您說應用程式集區具有ApplicationPoolIdentity 的基本身份,那麼這是一個唯一的低特權帳戶,在以下情況用作基本進程身分:不冒充他人。

還有一個是不支援更改WAS的身份,並且它被設計為作為本地系統運行。這是一個特權過程。

WWW 服務可能是建議的目標,它是 InetInfo,在過去(即最近的 Windows 2000 時間範圍)支援頁面處理,但現在不再支援。

但它不再參與頁面處理 (IIS 6+),只是配置 HTTP.SYS 以供 W3WP 將來使用。

因此,應用程式集區(特別是關聯的工作進程)執行實際工作,您可以透過「應用程式集區」標籤配置它們的基本身份,並透過「身份驗證」->「匿名」設定配置用於匿名工作的特定帳戶。

如果沒有看到實際的書面文字或了解其來源,某些地方似乎有些畸形。或者就像它是由對標準 Win32 服務有所了解但對 IIS 知之甚少的人編寫的。

要保護和隔離 IIS 站點,並看似實現指南的目的(如果不是所寫的),您需要做的就是:

  • 使用應用程式集區身分作為匿名帳戶(如果您的策略要求,則使用 IUSR,但這會降低安全性(因為它是通用共用帳戶,而不是每個網站唯一的帳戶)
  • 設定內容的權限,以便只有 IIS AppPool\AppPoolName 對內容資料夾具有讀取權限

你就完成了。

相關內容