Interstage HTTP Server 2.2のセキュリティ対策について以下に説明します。
■アクセス時の注意
WebブラウザからWebサーバにアクセスする際、ネットワーク上の悪意のある人(またはマシン)が、正当なアクセス権限をもつ人(またはマシン)になりすまし、Webサーバにアクセスする脅威があります。
アクセスしたユーザが本人であるかを確認するために、SSLプロトコルバージョン「SSL3.0」または「SSL3.1」(TLS 1.0)のクライアント認証によるSSL通信を使用することをお勧めします。
SSLの設定については、「3.10 SSLの設定」を参照ください。
■通信データについての注意
ネットワーク上の悪意のある人(またはマシン)が、正当にアクセスする権限を持つ人(またはマシン)とサーバとの間の通信データをのぞき見する脅威があります。または、サーバとの間の通信データを改ざんし、それが正当なデータとしてやりとりされる脅威があります。
暗号化によるセキュリティ保護を行うため、SSL通信を使用することをお勧めします。
SSLの設定については、「3.10 SSLの設定」を参照ください。
■資源ファイルへの不正アクセス
Interstage HTTP Server 2.2では、以下のような資源ファイルを保持しています。
コンテンツ
アクセスログファイル
エラーログファイル
トレースログファイル
CGI
ディレクトリごとの環境定義ファイル(.htaccess)
これらのファイルは悪意のある人(またはマシン)による不正アクセスという脅威にさらされる可能性があります。
これらのファイルを脅威にさらさないためには、そのファイルを一般ユーザからはアクセスできないようにするという対策があります。このために、それらのファイルに対して管理者権限をもつユーザ(Solaris/Linuxシステムではスーパユーザ、Windows(R)システムではAdministrator)だけがアクセス可能となる設定をすることをお勧めします。
■パスワード情報の漏洩
Interstage HTTP Server 2.2には、パスワードファイルがあり、悪意のある人(またはマシン)がそのファイルをのぞき見る脅威があります。
パスワードファイル内のパスワードデータは暗号化されていますが、一般ユーザからアクセスできないようにするため、管理者がhtpasswdコマンドを使用してパスワードファイルを作成することをお勧めします。パスワードファイルの作成方法については、「3.7 ユーザ認証の設定」を参照してください。
■Denial of Service attack (DoS)の脅威
ネットワーク上の悪意のある人(またはマシン)が、標的とするサーバに対してサービスを不能にする脅威があります。
Denial of Service attack (DoS)の脅威に備え、以下のような機能を使用することをお勧めします。
ユーザ認証
登録したユーザからのアクセスだけを許可するように設定します。
ユーザ認証機能については、「3.7 ユーザ認証の設定」を参照ください。
IPアクセスコントロール
特定のクライアントだけのアクセス許可/拒否を設定します。
IPアクセスコントロール機能については、「3.8 IPアクセスコントロールの設定」を参照ください。
SSL通信の使用
クライアントの正当性を確認できる高度なセキュリティ保護を行います。
SSLの設定については、「3.10 SSLの設定」を参照ください。
クライアントからのリクエストメッセージのサイズ制限
バッファオーバフローに備えて、リクエストメッセージの最大サイズを設定します。リクエストメッセージの最大サイズは、環境定義ファイル(httpd.conf)の以下のディレクティブで設定してください。
LimitRequestBody
LimitRequestFields
LimitRequestFieldsize
LimitRequestLine
■HTTP TRACEメソッド悪用による脅威
ネットワーク上の悪意のある人(またはマシン)が、HTTPリクエストデータ内に存在する個人情報を盗み見たり、任意のコードを実行する脅威があります。
このような脅威に備え、環境定義ファイル(httpd.conf)のTraceEnableディレクティブに「off」を指定して、HTTP TRACEメソッドを無効にすることをお勧めします。
なお、TRACEメソッドは、ネットワーク上の診断を行うためなどに使用され、クライアント側から送出したデータをそのままレスポンスデータとして受信するHTTP/1.1のメソッドです。通常、使用されないため、無効にしてもWebサーバ運用上の影響はありません。
TraceEnable off
■ユーザアカウント名発見の脅威
ネットワーク上の悪意のある人(またはマシン)により、Webサーバマシン上のユーザアカウント名が発見される脅威があります。
このような脅威に備え、環境定義ファイル(httpd.conf)に以下を設定し、ユーザアカウントのホームディレクトリ配下のドキュメントに対する要求を無効にすることをお勧めします。
LoadModule userdir_module "/opt/FJSVahs/modules/mod_userdir.so" UserDir disabled
ポイント
LoadModuleおよびUserDirディレクティブの先頭にハッシュマーク(#)を追加して、コメント行としてもよいです。
ユーザアカウントのホームディレクトリ配下のドキュメントを公開する場合は、以下のように設定してください。
公開するホームディレクトリには、Webサーバからアクセス可能な権限を設定します。
公開しないユーザに対しては、ユーザディレクトリの設定を無効とします。
ユーザディレクトリの設定を無効とする設定例を以下に示します。
例
ユーザ名「user1」および「user2」のホームディレクトリ/public_html配下のドキュメントを公開する場合
LoadModule userdir_module "/opt/FJSVahs/modules/mod_userdir.so" UserDir public_html UserDir disabled UserDir enabled user1 user2
ユーザ名「user3」および「user4」以外のすべてのユーザのホームディレクトリ/public_html配下のドキュメントを公開する場合
LoadModule userdir_module "/opt/FJSVahs/modules/mod_userdir.so" UserDir public_html UserDir disabled user3 user4
注意
「UserDir public_html」だけを設定し、「http://ホスト名[:ポート番号]/~user」のリクエストを受けた場合、指定されたユーザ名「user」がWebサーバマシン上に存在するかどうかで、以下のように異なるステータスコードを返すことがあるため、Webサーバマシン上のユーザアカウント名が発見される可能性があります。
指定されたユーザ「user」が存在しない場合:
ステータスコード「404」(Not Found)を返します。
指定されたユーザ「user」が存在する場合:
ステータスコード「403」(Forbidden)を返します。
これは、指定されたユーザ「user」が存在するが、ユーザのホームディレクトリに、Webサーバからアクセス可能な権限が設定されていない場合に発生します。Webサーバの実行ユーザは、Userディレクティブで指定します。
useraddコマンドでユーザのホームディレクトリを作成すると、ディレクトリの権限は所有者だけに設定され、そのユーザだけがアクセス可能となるため、本現象が発生します。