Security

隱式允許 IIS 中來自有效主機名的請求

  • April 12, 2021

我有一些可公開訪問的 IIS 伺服器和站點(個人和公司),這些主機有自己的域/子域,並且對這些 https 站點的所有合法訪問都是通過域進行的。

幾乎所有來自機器人/根伺服器的 HTTP 應用程序漏洞掃描都通過 IP 發生在伺服器上,沒有有效的主機名,如果有主機名,它是預設的反向 DNS 主機,而不是站點的實際域。

**IIS 中有沒有辦法隱式只允許具有正確主機名的請求?**站點根應用程序僅綁定到主機名,但 IIS 仍然接受請求,並以 404 響應。最好的辦法是以類似方式超時請求,就好像站點沒有打開 HTTP 一樣。

我當然明白這並不能保證任何安全性,掃描器仍然可以通過多種方式找出正確的主機名,但它仍然會過濾掉 90% 的虛擬掃描。

防火牆中的 IPS 可能可以做一些事情,但在某些情況下我沒有那麼奢侈。IIS中有辦法嗎?將http請求重定向到遺忘?(這可能只是將錯誤更改為代理網關 http 錯誤?)

我認為沒有全域設置來禁止任何具有“有效”主機名的請求,但您可以嘗試以下操作

在您的 IIS 伺服器上創建一個新的備用站點,而所有其他站點都需要主機名,此站點綁定到所有未分配的 IP 地址,沒有任何主機名。

因此,任何沒有綁定主機名的對伺服器的 http 請求最終都會出現在這個只有一個簡單的靜態 html 頁面的站點上。

對於此站點,請編輯IP Address and Domain Restrictions,不要添加新條目,只需轉到Edit Feature Settings...

IIS IP 限制

設置預設訪問權限Deny,然後設置Action TypeAbort

這樣就不會向客戶端發送任何響應。您還可以選擇發送 401、403 或 404,但如果您不想回复,請使用Abort

可能還有其他方法可以實現這一點,但這應該工作得很好。

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