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
參考連結