none
IISのアクセスについて RRS feed

  • 質問

  • Windows2012 Server でのIISの設定について質問をさせて下さい。

    IISをインストール後、Webサイトの追加(Default Web Siteは停止)を実施してローカル上にWebサーバーを公開しました。

    IPアドレス、ホスト名(コンピューター名)でもアクセスできるのですが、「http://ホスト名(コンピューター名)」での

    アクセスを出来ないように設定したいのですが、どのように設定をすれば良いでしょうか。

    ※Windows2012 Server はIPを2つ使用(チーミングを実施)していますが、Webの公開用ではIPを1つしか使用していません。

    2014年6月22日 16:25

回答

  • 社内のイントラネット内で、プライベート IP アドレスを持つ Web サーバー (IIS) に、同じイントラネット内のユーザーが IE などのブラウザを使ってアクセスするのですよね。

    そして、そのサーバーはプライベート IP アドレスを複数持つので、サーバー名でアクセスすると名前解決に問題があるから IP アドレスを直接指定したいと言うわけですか?

    今のままサーバー名でアクセスしても何も問題なさそうな気がしますが、部外者には分からない何らかの事情があると理解して・・・

    サーバー名を使わない手段として、質問者さんが考えたようなサーバー名でのアクセスを禁止するという手段ではなくて、Web サーバー (IIS) のアクセスに使う専用のホスト名を決めて、それを使ってはいかがですか?

    イントラネット内に DNS サーバーがあれば(Active Directory サービスを利用していればあるはず)、Web サーバー (IIS) のアクセスに使うホスト名を任意に決めて、そのホスト名を DNS に登録し、IIS でそのホスト名をバインドすれば、イントラネット内のユーザーからは http://<ホスト名> でアクセスできます。

    Web サイトのホスト ヘッダーを構成する (IIS 7)
    http://technet.microsoft.com/ja-jp/library/cc753195(v=ws.10).aspx


    【追記】

    > 私としてはDNSに登録した記憶もないのですが、別の人がDNSに登録した可能性もありますので、
    > DNSの再確認をさせて頂きます。

    Windows ネットワークにおける名前解決のための機能は複数あり、標準的に、以下の優先順位で名前解決のための各機能が利用されています。なので、DNS に登録してなくても名前解決ができているのではないかと思います。

    NetBIOS 名前キャッシュ
         ↓
    WINS サービス
         ↓
    NetBIOS 名のブロードキャスト
         ↓
    lmhosts ファイル
         ↓
    hosts ファイル
         ↓
    DNS サービス

    2014年6月23日 6:02

すべての返信

  • 質問が不完全です。
    「ホスト名でのアクセスを出来ないように」というのはどこからのアクセスを想定していますか? 普通に考えるとWebサーバーの外部からですが、インターネット・イントラネット等、外部にもいろいろあると思います。
    また出来ないようにするだけでなく逆にアクセス許可したいパターンもあるはずでそれも列挙しなければ答えようがありません。というのも、今の質問の範囲であればIISサービスを停止するだけで実現できますが、きっとこれは期待する答えではないでしょう。

    以上に対する回答を聞く前に当てずっぽうで答えますが、これは的外れかもしれません。

    DNSにこのWebサーバーを登録しなければ名前解決できなくなり、WebブラウザーはこのWebサーバーを見つけられなくなるのでは、と。つまりIISと全く無関係な世界での対処にもなり得ます。

    2014年6月22日 23:26
  • > 「http://ホスト名(コンピューター名)」でのアクセスを出来ないように設定したいのですが、
    > どのように設定をすれば良いでしょうか。

    かなり特殊な話のようで、自分が考え付くのは Request Filtering モジュールか URL Rewrite モジュールを使うという手段ぐらいですね。

    詳しくは以下のページを見てください。

    IIS 7.0 での要求のフィルタリングと URL の書き換え
    http://technet.microsoft.com/ja-jp/library/dd939073.aspx

    IIS7 での拡張された要求のフィルタリング機能の使用
    http://technet.microsoft.com/ja-jp/library/dd939102.aspx

    URL 書き換えモジュール用の書き換えルールの作成
    http://technet.microsoft.com/ja-jp/library/dd939062.aspx


    ところで「ローカル上」とはどういう意味ですか? イントラネット内という意味ではないかと想像してますが・・・
    • 編集済み SurferOnWww 2014年6月23日 0:42 一部追記
    2014年6月23日 0:41
  • 具体的に何を防ぎたいのかがよくわからないので何とも言えませんが、フィルタリングとかだとHostヘッダで排除くらいしかない気がしますね…

    2014年6月23日 1:23

  • 佐祐理様、SurferOnWww様、なちゃ様

    すみません、中途半端な質問にも関わらずご回答頂きましてありがとうございます。 

    アクセスについては、イントラネット(社内限定)での対応を想定しています。

    また、諸事情でローカルIPアドレスからのアクセスのみを想定していました。


    > DNSにこのWebサーバーを登録しなければ名前解決できなくなり、
     私としてはDNSに登録した記憶もないのですが、別の人がDNSに登録した可能性もありますので、DNSの再確認をさせて頂きます。

    > かなり特殊な話のようで、自分が考え付くのは Request Filtering モジュールか URL Rewrite モジュールを使うという手段ぐらいですね。詳しくは以下のページを見てください。
     「Request Filtering モジュール」、「URL Rewrite モジュール」は知識として知らなかったので、自分で調べてみます。

    > 具体的に何を防ぎたいのかがよくわからないので何とも言えませんが、
     防ぎたいということは、特にありませんが、1台のサーバで複数のIPアドレスを使用している為、「http://ホスト名(コンピューター名)」でのアクセスを出来ないように設定したかったということになります。(他の用途で使用する可能性もあったので)但し、その用途の為、バーチャルホストを使用する等の事は考慮していませんでした。


    2014年6月23日 4:27
  • 社内のイントラネット内で、プライベート IP アドレスを持つ Web サーバー (IIS) に、同じイントラネット内のユーザーが IE などのブラウザを使ってアクセスするのですよね。

    そして、そのサーバーはプライベート IP アドレスを複数持つので、サーバー名でアクセスすると名前解決に問題があるから IP アドレスを直接指定したいと言うわけですか?

    今のままサーバー名でアクセスしても何も問題なさそうな気がしますが、部外者には分からない何らかの事情があると理解して・・・

    サーバー名を使わない手段として、質問者さんが考えたようなサーバー名でのアクセスを禁止するという手段ではなくて、Web サーバー (IIS) のアクセスに使う専用のホスト名を決めて、それを使ってはいかがですか?

    イントラネット内に DNS サーバーがあれば(Active Directory サービスを利用していればあるはず)、Web サーバー (IIS) のアクセスに使うホスト名を任意に決めて、そのホスト名を DNS に登録し、IIS でそのホスト名をバインドすれば、イントラネット内のユーザーからは http://<ホスト名> でアクセスできます。

    Web サイトのホスト ヘッダーを構成する (IIS 7)
    http://technet.microsoft.com/ja-jp/library/cc753195(v=ws.10).aspx


    【追記】

    > 私としてはDNSに登録した記憶もないのですが、別の人がDNSに登録した可能性もありますので、
    > DNSの再確認をさせて頂きます。

    Windows ネットワークにおける名前解決のための機能は複数あり、標準的に、以下の優先順位で名前解決のための各機能が利用されています。なので、DNS に登録してなくても名前解決ができているのではないかと思います。

    NetBIOS 名前キャッシュ
         ↓
    WINS サービス
         ↓
    NetBIOS 名のブロードキャスト
         ↓
    lmhosts ファイル
         ↓
    hosts ファイル
         ↓
    DNS サービス

    2014年6月23日 6:02
  • SurferOnWww様

    回答頂きましてありがとうございます。

    結論を述べますと「http://<ホスト名>」でアクセスできなくなっておりました。

    (環境についてはSurferOnWww様のご認識通りになります。)

    私個人ではサーバに対して何も設定変更を実施していませんでしたので、恐らく名前解決と思われます。

    (設定から一週間以上経ってからアクセスできなくなるのは少し腑に落ちませんが。)

    Windowsの名前解決の件も勉強不足でしたので、今回の件は非常に良い勉強になりました。

    色々とありがとうございました。

    2014年6月25日 14:57
  • コマンドプロンプトにて ipconfig /all を実行すると DNSサフィックス という項目がいくつか現れます。その値が設定されていると、
    <ホスト名> は <ホスト名.DNSサフィックス> として扱われ、それにより名前解決が成功する場合があります。これはWebブラウザー側のPC設定ですのでWebサーバー側では関与できません。
    またプロクシサーバーが導入されている場合、名前解決をプロクシサーバーに委ねることもでき、その場合はまた違ってきます。

    とは言え、それらを全ての事情を考慮した上で防ぐ場合、Webサーバー側で拒否することになります。その場合はバーチャルホスト(なちゃさんの書かれている「Hostヘッダで排除」と同等)がお勧めです。
    # インターネットでの運用を想定する場合、外部からアクセスを受けてからそれを拒否するのはセキュリティ上好ましくなく、そもそもアクセスを受けないようDNSで設定すべきです。スコープを聞いたのはこのように対処が違ってくるからです。

    HTTPはバージョン1.1よりHostヘッダーが必須となっています。そしてバーチャルホストではHostヘッダーに応じてそれぞれ別のサーバーのように振る舞うものです。既定のWebサイトとは別に<IPアドレス>のWebサイトを用意するだけで実現されます。

    とは言え、イントラネット限定とのことですので、何もIPアドレスに限定せず、各用途ごとにホスト名を用意しバーチャルホストを設定すればいいのではと思います。コンピューター名は1台に1つですが、ホスト名はDNSに登録するだけですし、イントラネットであればDNS登録のコストは(インターネットに比べて)下がるでしょう。

    2014年6月25日 22:56
  • 一番最初の質問で質問者さんが言われた、

    > IPアドレス、ホスト名(コンピューター名)でもアクセスできるのですが、「http://ホスト名(コンピューター名)」での
    > アクセスを出来ないように設定したいのですが、どのように設定をすれば良いでしょうか。

    の「ホスト名(コンピューター名)」と、直近の質問者さんのレス、

    > 結論を述べますと「http://<ホスト名>」でアクセスできなくなっておりました。

    で言われる「ホスト名」とは同じものですよね?(私のレスで「Web サーバー (IIS) のアクセスに使うホスト名を任意に決めて」と提案したホスト名ではなくて)

    とすると、最初の質問は 6/22 で本日は 6/26 ですが、その間のいつかの時点で、質問者さんは何もしてないのに、「http://ホスト名(コンピューター名)」ではアクセスできなくなっていたということですか?

    そして、結果的に、最初の質問の、

    > 「http://ホスト名(コンピューター名)」でのアクセスを出来ないように設定したい

    ということは不要になったので、質問は取り下げるということですか?

    それならそれで結構ですので、その旨はっきり書いてこのスレッドは閉じてください。

    2014年6月26日 1:05
  • 返信が遅くなりまして申し訳ございません。

    > で言われる「ホスト名」とは同じものですよね?(私のレスで「Web サーバー (IIS) のアクセスに使うホスト名を任意に決めて」と提案したホスト名ではなくて)

    ご認識の通りになります。

    > 「http://ホスト名(コンピューター名)」でのアクセスを出来ないように設定したいということは不要になったので、質問は取り下げるということですか?

    不要になったというよりも出来ていたということになると思います。

    Webサイトの追加設定時にホスト名を空欄(サイトバインドの編集欄にて)にしていたにも関わらず「http://ホスト名(コンピューター名)」でアクセスできてしまったので、IISサーバー側の設定の問題と勘違いしていましたが、実際はクライアントPC上の名前解決の問題だろうと思っております。

    2014年6月30日 16:13
  • > 不要になったというよりも出来ていたということになると思います。

    以前は http://ホスト名(コンピューター名) で Web サーバーに接続できていたが今はできない ⇒ 以前は「ホスト名(コンピューター名)」で名前解決できていたが今は正しく名前解決ができなくなっている・・・と言うことですよね。

    実際どのように名前解決されているか、以下のページを参考に調べてはいかがですか?

    ホスト名からIPアドレスを見つける方法
    http://www.atmarkit.co.jp/fwin2k/win2ktips/378findip/findip.html

    予期せぬレコードがキャッシュに入っていることが原因で名前解決に失敗しているとか、自動 DNS 登録で問題が発生しているというようなことがあるかもしれません。

    2014年7月1日 3:09