Windows-Server-2008

為什麼我無法登錄伺服器上受 Windows 保護的 IIS 7.5 目錄?

  • November 9, 2016

我有一個帶有受集成 Windows 身份驗證保護的管理子目錄的網站。在遠端 PC 上完美執行。但是當我嘗試訪問伺服器本身上的這些頁面時,我會遇到授權失敗。我使用的是正確的主機名,而不是 localhost。試過 Chrome 和 IE,結果一樣。

有什麼建議麼?

您幾乎肯定會遇到 IIS 5.1 引入的 Windows 環回檢查。這是一項安全功能,可避免針對系統的某些類型的反射攻擊。

Microsoft 有一篇KB 文章描述了解決方法。他們基本上歸結為修改系統資料庫以禁用環回檢查,或允許某些主機名(例如您的本地主機名或站點名)進行反向連接。

您可以通過 PowerShell 快速禁用檢查:

New-ItemProperty HKLM:\System\CurrentControlSet\Control\Lsa -Name "DisableLoopbackCheck" -Value "1" -PropertyType dword

以下是微軟的官方說明。請注意,儘管下面的說明指示重新啟動,但我發現 IE 通常會立即獲取更改。

方法 1:指定主機名(如果需要 NTLM 身份驗證,首選方法)

  1. 將 DisableStrictNameChecking 系統資料庫項設置為 1
  2. 點擊開始,點擊執行,鍵入regedit,然後點擊確定
  3. 在系統資料庫編輯器中,找到並點擊以下系統資料庫​​項:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
  4. 右鍵點擊MSV1_0,指向新建,然後點擊多字元串值
  5. 鍵入BackConnectionHostNames,然後按ENTER
  6. 右鍵點擊BackConnectionHostNames,然後點擊修改
  7. 數值數據框中,鍵入本地電腦上站點的主機名或主機名,然後點擊確定
  8. 退出系統資料庫編輯器,然後重新啟動IISAdmin服務。

方法2:禁用環回檢查(不太推薦的方法)

  1. 將 DisableStrictNameChecking 系統資料庫項設置為 1
  2. 點擊開始,點擊執行,鍵入regedit,然後點擊確定
  3. 在系統資料庫編輯器中,找到並點擊以下系統資料庫​​項:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  4. 右鍵點擊Lsa,指向新建,然後點擊DWORD 值
  5. 鍵入DisableLoopbackCheck,然後按ENTER
  6. 右鍵點擊DisableLoopbackCheck,然後點擊修改
  7. 數值數據框中,鍵入1,然後點擊確定
  8. 退出系統資料庫編輯器,然後重新啟動電腦。

附錄:

要將 DisableStrictNameChecking 系統資料庫項設置為 1:

  1. 點擊開始,點擊執行,鍵入regedit,然後點擊確定
  2. 在系統資料庫編輯器中,找到並點擊以下系統資料庫​​項:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters
  3. 右鍵點擊參數,指向新建,然後點擊DWORD 值
  4. 鍵入DisableStrictNameChecking,然後按ENTER
  5. 右鍵點擊DisableStrictNameChecking,然後點擊修改
  6. 數值數據框中,鍵入1,然後點擊確定
  7. 退出系統資料庫編輯器,然後重新啟動電腦。

引用自:https://serverfault.com/questions/485006