IIS 設定只允許特定IP進入

公司有兩台Web Server,一台對外,一台對內,現在要合併在一起,。預設網站將針對特定IP開放,而某幾個網站則對外完全開放。

如何使用 

1.新增功能- IP and Domain Restriction


安裝後,在IIS Root或各網站下可以看到功能圖示

2. 設定IIS Root的存取從Allow改成Deny


3.IIS Root針對特定IP或範圍打開,本例的Mask設為255.255.255.0 代表著192.168.2.0~255可以存取


4.將特定網站對外開放

由於在第2點的IIS Root已設為deny,所有網站會繼承這個設定,而子網站自行修改值的話,則會以子網站為主,這樣就達到預設是deny,而部份是Allow


所有的設定會儲存在IIS的組態內

%windir%\System32\inetsrv\config\applicationHost.config

上述的設定操作,也可以透過Power Shell 執行

$value = @{allowed="true";ipAddress="192.168.0.1";subnetMask="255.255.255.0"}
#1.Setting Root Site as deny
Set-WebConfigurationProperty -Filter /system.webserver/security/ipsecurity -Name allowUnlisted -Value $false
#1.1 Setting Root Site denyAction as NotFound
Set-WebConfigurationProperty -Filter /system.webserver/security/ipsecurity -Name denyAction -Value 'NotFound'
#2.Root Site add Allow Ip
add-webconfiguration /system.webServer/security/ipSecurity  -value $value -pspath IIS:\
$SiteName = "ConnIIsLab-PRD"
#3.Setting Sub Site as Allow
Set-WebConfigurationProperty -Filter /system.webserver/security/ipsecurity -Name allowUnlisted -Value $true -Location $SiteName


自訂錯誤網頁 Customized Error Page

預設IP 的DenyAction為Forbidden,會回傳狀態403.503,可以針對此狀態自訂錯誤訊息頁

1.只能設在Root上,在子網站測試會錯(不知為何)


2.預設本機會顯示詳細錯誤,要看效果的話,則設定要改成Custom error pages,待測試ok,記得調回原本的Detail error for local and custom error for remote



參考連結 



這個網誌中的熱門文章

[TFS] 分支與合併

[.NET Core] 將專案發行至IIS