web-dev-qa-db-ja.com

IISのサイトの一部をローカルホストからのみ表示できるようにすることは可能ですか?

IISを実行しているWebサーバーがあります。情報を追跡するために、共有ブログなどを実行したいと思います。セキュリティ上の問題があるため、その部分はローカルホストからのみ表示できるようにし、ユーザーがリモートで使用する必要があるようにします。

それで、私の質問を繰り返すために、ウェブサイトの一部をローカルホストからのみ表示できるようにすることはできますか?

22
Eugene M

IIS6では、Webのプロパティを表示して、[ディレクトリセキュリティ]タブをクリックできます。タブの中央にあるボタンをクリックして、IPとドメインの制限を編集します。このタブで、すべてのコンピューターを拒否として設定し、このサイトへのアクセスを許可するIPの例外を追加します。

IIS7でこれを構成する方法がわかりません。見ましたが見つかりませんでした。見つけたらこの回答を編集します。

編集: IIS7の構成

  • ジョシュ
6
JoshBerke

IIS 8/Windows 2012でそれをしている人のために

1)Server Managerで、Manage, Add Roles and Features、Next、Next(Server Rolesに移動)に移動し、Web Server (IIS)まで下にスクロールして、その行を展開し、次にWeb Serverを展開し、最後にSecurityを展開します。 IPおよびドメイン制限がインストールされていることを確認してください。

2)IIS Managerで、保護するフォルダーにドリルダウンし、左クリックして選択します。そのフォルダのFeatures ViewIPおよびドメイン制限を選択します。ActionsEdit Feature Settingsを選択します。 'Access for unspecified clients:''Deny'に変更してから[OK]をクリックします。

3)最後に、Actionsメニューの'Add Allow Entry'に移動します。サーバーの特定のIPアドレスを入力します。

これで、サーバーからのリクエストのみがアクセスを許可されます。または、そのIPアドレスを共有するサーバー。したがって、小規模なネットワークでは、オフィスはそのオフィス内のすべてのPC間でIPアドレスを共有できるため、それらのPCすべてがそのフォルダーにアクセスできます。

最後になりましたが、ネットワークに動的IPアドレスがある場合、そのIPが変更されると、ブログ管理フォルダーがそのIPを現在使用しているユーザーに公開されることを覚えておいてください。また、その新しいIPアドレスのすべてのユーザーは、そのフォルダーにアクセスできなくなります...

26
Serj Sagan

IP制限の代わりにバインディングを使用することもできます。アクセスを制限するWebサイトのバインディングを編集する場合は、そのサイトで使用できるIPアドレスを選択できます。 IPアドレスを127.0.0.1に設定すると、サイトはこのIPアドレスでのみ応答し、このIPアドレスはもちろんマシン上でローカルにのみ機能します。

IIS 8.5を使用してこれをテストしました。

4
René

誰かがコマンドラインでこれを実行したい場合、これはIIS 7+

%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site" -section:system.webServer/security/ipSecurity /+"[ipAddress='0',allowed='False']" /commit:apphost
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site" -section:system.webServer/security/ipSecurity /+"[ipAddress='127.0.0.1',allowed='True']" /commit:apphost

参照

私は当初、配布を容易にするためにweb.configでこれを実行したかったのですが、次のように機能するようでした。

<security>
    <ipSecurity allowUnlisted="false">    <!-- this line blocks everybody, except those listed below -->                
        <clear/> <!-- removes all upstream restrictions -->
        <add ipAddress="127.0.0.1" allowed="true"/>    <!-- allow requests from the local machine -->
    </ipSecurity>
</security>

ただし、中央のIIS構成で関数のロックを解除する必要があるため、最初のコマンドを使用して直接変更を行うことに勝る利点はありませんでした。

4
Chris

IIS "Directory Security"を使用して127.0.0.1(localhost)を除くすべてのIPアドレスをブロックするという推奨事項に同意します。

そうは言っても、ユーザーにリモートインを要求するというこの戦略が、どのようにしてmore安全になるのだろうかと思います。サーバーマシンでWindowsの役割とアクセス許可を管理するよりも、標準のIIS認証メカニズム)を使用する方が安全(およびはるかに簡単)ではないでしょうか。

1
C. Dragon 76

https://stackoverflow.com/a/39870955/2279059 で提案されているように、ループバックインターフェイスでのみリッスンするようにサイトのバインディングを構成することができます。これにより、IPアドレスの制限を使用せずに、ネットワークからサイトにアクセスできなくなります。

IPv4とIPv6の両方をサポートするには、127.0.0.1用と[::1]用の2つのバインディングを追加し、ホスト名を*に設定して、IPアドレスまたはlocalhostのいずれかができるようにします。スクリーンショットに示すように、アクセスに使用します。

enter image description here

プログラムで「ローカル」サイトを追加するには、次を使用できます。

appcmd add site /name:MyLoalSite /bindings:http/127.0.0.1:7103:*,http/[::1]:7103:* /physicalPath:"C:\path\to\site\"
0
Florian Winter

特定のIPからサイトまたはフォルダーへのサイトまたはフォルダーへのアクセスを許可または拒否できます。 IISで、問題のサイトまたはフォルダーのプロパティに移動します。

(1)「DiectorySecurity」タブをクリックします

(2)「IPアドレスとドメイン名の制限」フレームの下にある「編集」をクリックします。

(3)[アクセスの拒否]をクリックします(これにより、IISは、リストしたものを除くすべてのIPをブロックするように指示されます)

(4)「追加...」をクリックします

(5)「シングルコンピュータ」をクリックします

(6)127.0.0.1(localhostのIP)を入力します

ドメインはhostsファイルを使用して簡単に偽造できるため、ここではドメイン名ではなくIPを使用するのが最善であることに注意してください(説明しました)。

0

許可されていないユーザーがアクセスしようとした場合に何をしたいかによって異なります。

特定のセクションを仮想ディレクトリとして設定してから、匿名ユーザーへの表示を拒否することができます。ただし、ログインを求めるプロンプトが表示され、ログインできる場合は表示されます。

0
Mitchel Sellers

IIS MMCにあるオプションから判断すると、特定のIP範囲でのみアクセスできる仮想ディレクトリを作成することもできます。127.0.0.1以外のすべてのユーザーをブロックできます。これは試していません。しかしながら。

0