インターネット Web サーバー構築ガイドライン を読んだメモ 2

第三章:ページを公開しよう

  • IIS マネージャーで行った操作は、applicationHost.config, Web サイト、仮想フォルダー、アプリケーション内の web.config ファイル内の設定に反映される
  • IIS マネージャーで操作する際に左下を見ると現在の GUI 操作がどのファイルに反映されるかが表示されている
  • ファイルを直接編集して IIS を操作することも可能

  • ローカルで web.config を編集してデプロイすると差分が発生しないか?これ

  • 仮想ディレクトリを使用することで、既定のフォルダー以外にあるフォルダーを Web サイトの下位ディレクトリとして公開することができる

  • 複数台サーバーでの共通のコンテンツをホストする場合は、ネットワーク共有されたフォルダーを仮想ディレクトリとしてホストすれば、コンテンツの配置の手間も大幅に削減できる

第四章:さまざまなサーバーの設定

  • 仮想ホストの機能で、1 台の Web サーバーを複数のサーバーであるかのうように見せることができる
  • 1 台の Web サーバーに対して、ホスト名の異なる複数の URL を使用してアクセスができる

第五章:アクセス制限の仕組みを知ろう

  • 特定の IP アドレスあるいは範囲からのアクセスを制限することができる

    • 既定はすべての IP アドレス、コンピューター、ドメインがアクセス可能
  • 匿名認証

    • 匿名でサイトを見ることを許可する認証方式(IDとパスワードで認証しているわけではない)
    • アプリケーション側で認証している場合はこの方式になる
    • ただし、Windows の中ではどの権限で動作するかという情報が必要になる
    • 標準で Windows が持っている匿名ユーザー IUSR で認証、動作するように設定されている
    • アプリケーションはこのアカウントで実行されることになる
  • 基本認証

    • ユーザーがアクセスする際に、有効なユーザー名とパスワードの入力が必要になる
    • Base64エンコードされた暗号化されていないパスワードがネットワーク上で送信される欠点がある
      • 専用回線、SSLTLS を使用する必要がある
  • その他の認証方式

    • 多くの種類がある
  • アプリケーションプール ID について

    • 参考 https://technet.microsoft.com/ja-jp/library/ee886292.aspx?f=255&MSPPError=-2147217396
    • Windows OS には、IIS が各アプリケーションプールに一意の ID を作成できるように「仮想アカウント」と呼ばれる機能が用意されている
    • 新しいアプリケーションプールが作成されるたびに、IIS 管理プロセスによってアプリケーションプール自体の名前を表すセキュリティ識別子(SID)が作成される
    • アプリケーションIDには、そのアプリケーションプールで利用するリソースのみに対してアクセス許可を与える
    • Windows のユーザー管理コンソールにはユーザーとして表示されない
  • 正しいアクセス許可の付与

    • ユーザーによってアップロードされないものはすべて、ファイルシステムの読み取りアクセス権のみ必要
    • PHP アプリケーションや ASP.NET アプリケーションなどの動的コンテツの場合は、IIS スクリプトアクセス許可も必要
    • ユーザーがアップロードするコンテンツは、別のフォルダーに入れて、このフォルダーに書き込みアクセス権を不要する
      • このフォルダーに IIS 実行アクセス許可やスクリプトアクセス許可を付与してはいけない
  • 認証を必要とするアプリケーション

    • 認証されたユーザーすべてを含むグループに対するすべてのリソースを権限によって制限することが理想
    • さまざまなカテゴリのユーザーがいる場合は、管理者や管理者以外でグループを分けてそれぞれにアクセス権を付与する
  • 匿名で実行するアプリケーション

    • アプリケーションプール ID または、カスタムで指定した匿名 ID(IUSR) でリソースのアクセスを制限するべき
      • アプリケーションプールID にアクセス権を付与することがオススメ
      • 匿名 ID は既定のユーザーなので、既定を変更していない全アプリケーションでコンテンツへのアクセス権を持つことになる