Windows 2019
Sponsored Link

IIS : IPアドレスの制限を設定する
2019/09/12
 
特定の Web コンテンツに対して IP アドレスの制限を設定します。
[1] PowerShell を管理者権限で起動して設定します。
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

# IP および ドメインの制限の機能をインストール
PS C:\Users\Administrator> Install-WindowsFeature Web-IP-Security 

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             Success        {IP and Domain Restrictions}

# IIS 再起動
PS C:\Users\Administrator> Restart-Service W3SVC 

PS C:\Users\Administrator> Get-Website 

Name             ID   State      Physical Path                  Bindings
----             --   -----      -------------                  --------
Default Web Site 1    Started    %SystemDrive%\inetpub\wwwroot  http *:80:
RX-7.srv.world   2    Started    C:\inetpub\newsite             http *:80:RX-7.srv.world
                                                                https *:443:rx-7.srv.world sslFlags=0

PS C:\Users\Administrator> Get-ChildItem C:\inetpub\newsite 
    Directory: C:\inetpub\newsite

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        9/10/2019   1:24 AM                auth_basic
d-----        9/11/2019  12:23 AM                auth_win
d-----        9/11/2019   7:09 PM                content01
d-----        9/11/2019   7:09 PM                content02
-a----         9/9/2019   1:27 AM             28 index.html

# 例として [RX-7.srv.world] サイトの [content01] フォルダーに [10.0.0.128/29] の範囲のIPアドレス拒否の設定
PS C:\Users\Administrator> Add-WebConfiguration -Filter '/system.webServer/security/ipSecurity' -Location "RX-7.srv.world/content01" -Value @{ipAddress="10.0.0.128";subnetMask="29";allowed="false"} 

# 例として [RX-7.srv.world] サイトの [content02] フォルダーをデフォルト拒否に変更 (既定はデフォルト許可)
PS C:\Users\Administrator> Set-WebConfigurationProperty -Filter '/system.webServer/security/ipSecurity' -Location "RX-7.srv.world/content02" -Name allowUnlisted -Value False 

# 例として [RX-7.srv.world] サイトの [content02] フォルダーに [10.0.0.240/255.255.255.240] の範囲のIPアドレス許可の設定
PS C:\Users\Administrator> Add-WebConfiguration -Filter '/system.webServer/security/ipSecurity' -Location "RX-7.srv.world/content02" -Value @{ipAddress="10.0.0.240";subnetMask="255.255.255.240";allowed="true"} 

# Web サイト再起動
PS C:\Users\Administrator> Restart-WebItem -PSPath 'IIS:\Sites\RX-7.srv.world' 
IIS : IPアドレスの制限を設定する (GUI)
 
GUI で設定する場合は以下のように実行します。
[2] [サーバーマネージャー] - [役割と機能の追加] から [Web サーバー (IIS)] の機能で、以下のように [IP およびドメインの制限] を選択してチェックを入れます。インストール後は IIS を再起動しておきます。
[3] 例として [RX-7.srv.world] サイトの [content01] フォルダーに IP アドレスの制限を設定します。
左ペインで対象フォルダーを選択して、中央ペインで [IP アドレスおよびドメインの制限] を開きます。
[4] 既定では、デフォルト許可になっています。デフォルト許可に一部の IP アドレスの拒否設定を追加するには、右ペインの [拒否エントリの追加] をクリックします。
[5] 拒否したい特定の IP アドレスを、[特定の IP アドレス] に入力、または、拒否したい IP アドレスの範囲を入力します。
下例では、[10.0.0.128/29] の範囲の IP アドレスを拒否するよう設定しています。
[6] 設定が追加されると一覧に表示されます。複数追加する場合は同様の操作で追加可能です。
[7] 設定後、拒否設定した IP アドレス、および、拒否設定外の IP アドレスからアクセスして動作確認しておくとよいでしょう。
下例は、[5] で設定した [10.0.0.128/29] の IP アドレス拒否の URL に対して、[10.0.0.134] の端末からアクセスして、設定通りにアクセス拒否された様子です。
[8] 下例は、[5] で設定した [10.0.0.128/29] の IP アドレス拒否の URL に対して、[10.0.0.137] の端末からアクセスして、設定通りに問題なくアクセスできた様子です。
[9] もう一例として [RX-7.srv.world] サイトの [content02] フォルダーに IP アドレスの制限を設定します。
左ペインで対象フォルダーを選択して、中央ペインで [IP アドレスおよびドメインの制限] を開くと以下の画面になります。 ここで、既定のデフォルト許可を、デフォルト拒否に変更し、特定の IP アドレスのみ許可する設定を追加します。
右ペインの [機能設定の編集] をクリックします。
[10] [特定できないクライアントのアクセス] の項目を [拒否] に変更します。これで、デフォルト拒否の設定になります。
[11] 右ペインで [許可エントリの追加] をクリックします。
[12] 許可したい特定の IP アドレスを、[特定の IP アドレス] に入力、または、許可したい IP アドレスの範囲を入力します。
下例では、[10.0.0.240/255.255.255.240] の範囲の IP アドレスを許可するよう設定しています。
[13] 設定が追加されると一覧に表示されます。複数追加する場合は同様の操作で追加可能です。
[14] 設定後、許可設定した IP アドレス、および、許可設定外の IP アドレスからアクセスして動作確認しておくとよいでしょう。
下例は、[12] で設定した [10.0.0.240/255.255.255.240] の IP アドレス許可の URL に対して、[10.0.0.239] の端末からアクセスして、設定通りにアクセス拒否された様子です。
[15] 下例は、[12] で設定した [10.0.0.240/255.255.255.240] の IP アドレス許可の URL に対して、[10.0.0.254] の端末からアクセスして、設定通りに問題なくアクセスできた様子です。
[16] なお、当例では扱いませんが、[機能設定の編集] から、ドメイン名の制限の有効化により、ドメイン名ベースでの設定も追加可能です。 ただし、画面例にもある通り、サーバーのパフォーマンスへの影響上、推奨はされていません。
関連コンテンツ