Microsoft Azure Websites 如何攔阻特定 IP 區段之網路連線
感謝北科大劉建昌同學翻譯 微軟公司 Microsoft Azure Websites 主管 Stefan Schackow 於 2013/12/09所發表的文章
https://azure.microsoft.com/blog/2013/12/09/ip-and-domain-restrictions-for-windows-azure-web-sites/
一個 Azure Web Sites 上的網站如何設定僅允許特定 IP 位址可以存取,或是限制特定 IP 位址不能夠存取 ? 這一直都是 Azure Websites 用戶最常問到的問題,而現在在 Microsoft Azure上終於可以實現這項功能了。 自 2013 年開始 Azure Websites 即可透過動態 IP位址限制 (DIPR) 功能,提供使用者這項攸關資安的重要功能。
開發人員可以使用 IP 或網域 (domain) 方式來控制特定 IP 位址允許或禁止存取一個 Azure Websites 上的網站,ASP.NET 開發人員可以透過設定網站上的 web.config 檔來啟用、禁用甚至是自訂特定的 IP 位址存取行為模式。
這項功能原本在 Windows Server IIS 上即有提供,這裡有一篇關於由 IIS 提供 IP 與網域限制用在 .NET Website 的概述。所有完整的組態參數和屬性都可以在 TechNet 網站上找到。
下面的程式碼範例,顯示了如何在 ASP.NET 中透過 web.config 針對 IP位址存取規則在 ipSecurity 區塊進行配置。
如過要讓特定 IP 位址與子網路遮罩 (subnetMask) 共同定義的某個 IP 位址範圍才能夠存取此網站。如下圖將 allowUnlisted 設定為false,代表只有那些被開發人員所指定的 IP 位址或 IP 位址範圍,Azure Websites 才會接受其 HTTP 請求。而在子元素中的 allowed 屬性設置為 true,表示其後由 IP 位址與子網路一同定義的 IP 位址範圍能夠允許存取這個網站。
若有一個 HTTP 請求是從不被允許的 IP 位址範圍發送到網站,此時依據 denyAction 屬性所定義,用戶會得到一個 HTTP 404 的錯誤回傳訊息。
最後要注意的是,就像 動態IP位址限制(DIPR)功能 一樣,Microsoft Azure Web Sites 此功能會依據用戶真實的 IP 位址來進行存取控制。