IBM® HTTP Server V5.3 for z/OS® の各種機能は、IBM HTTP Server で使用可能ですが、実装は異なります。2 つの Web サーバーの基本構成の主な違いについて説明します。
部および章は、IBM HTTP Server V5.3 for z/OS の資料「 z/OS HTTP Server 計画、インストールと使用の手引き」(資料番号 SC88-9004-04) の部および章に対応しています。
IBM HTTP Server は静的ファイルを提供したり、CGI スクリプト・ファイルを実行したりすることができます。これらのファイルは、デフォルトのディレクトリーまたは指定したディレクトリーに置くことができます。各種ディレクティブを使用して、これらのファイルを提供できます。 「Directory」セクションを使用して、ディレクティブをまとめてグループ化したり、特定のディレクトリーに適用するように指定したりします。
デフォルトでは、静的ファイルは、install_root/htdocs ディレクトリーに置かれます。Alias ディレクティブで代替ディレクトリーを指定して、代替ディレクトリーを Web アドレス・プレフィックスにマップできます。 次に、「Directory」セクションを作成またはコピーし、代替ディレクトリーを指すように設定できます。例えば、install_root/htdocs デフォルト・ディレクトリーを指定している Directory ディレクティブをコピーし、デフォルト・ディレクトリーから install_root/static ディレクトリーに変更できます。
デフォルトでは、CGI スクリプトは、install_root/cgi-bin/ ディレクトリーから実行されます。ScriptAlias ディレクティブで代替ディレクトリーを指定して、代替ディレクトリーを Web アドレス・プレフィックスにマップできます。 次に、「Directory」セクションを作成またはコピーし、代替ディレクトリーを指すように設定できます。例えば、install_root/cgi-bin/ デフォルト・ディレクトリーを指定している Directory ディレクティブをコピーし、デフォルト・ディレクトリーから install_root/cgi2 ディレクトリーに変更できます。
ディレクティブについて詳しくは、Apache HTTP Server の資料を参照してください。
デフォルト httpd.conf ファイルでは DirectoryIndex ディレクティブが index.html に設定されているため、IBM HTTP Server は、ディレクトリー要求に対してディレクトリー・インデックス・ファイル index.html を提供します。DirectoryIndex ディレクティブを別のファイルに設定して、IBM HTTP Server がそのファイルを提供するようにすることができます。また、Indexes 引数を指定した Options ディレクティブを新規または既存の「Directory」セクションに追加して、Web サーバーがそのディレクトリーの情報を返すようにすることもできます。 Indexes 引数の前に + を含めると、「Directory」セクションは、他の Options ディレクティブに設定された引数を継承します。DirectoryIndex ディレクティブと Options ディレクティブのどちらも設定されていない場合は、Web サーバーは 403 エラーを返します。
ディレクティブについて詳しくは、Apache HTTP Server の資料を参照してください。
EBCDIC 構成ファイルを更新するだけで、IBM HTTP Server を管理できます。
デフォルト IBM HTTP Server 構成ファイルは install_root/conf/httpd.conf です。 出荷時のデフォルトを確認するかまたはそのデフォルトに戻す場合は、install_root/conf/httpd.conf.default ファイルを参照してください。
米国政府および米国外の政府は、暗号化に使用される製品を規制しており、鍵サイズを厳格に制限しない限りその輸出を禁止しています。米国政府によるその輸出法の更新や米国外の政府によるその輸入ルールの更新に伴い、サポートされる鍵の長さおよび暗号の仕様は変更されることがあります。
IBM HTTP Server では、SSL 暗号仕様のトピックにリストされている SSL 暗号がサポートされます。
ハードウェア暗号化を使用して、クライアントとサーバー間の SSL セッションのパフォーマンスを改善することができます。Web サーバーのパフォーマンスで得られる最大の利点は、断然 SSL ハンドシェークにおいてです。ハンドシェークは非対称の鍵と関数を使用します。Web サーバーは RSA テクノロジーを使用して、非対称機能を実装しています。ハードウェア暗号化なしで SSL を実装した場合、非対称関数は、対称関数よりもはるかに時間がかかります。そのため、Web サーバーでハードウェア暗号化を実装する場合には、非対称マスター鍵を適切にセットアップしてください。 Integrated Cryptographic Services Facility (ICSF) ソフトウェアを使用して、パフォーマンス向上を利用できるようにします。非対称マスター鍵は、Web サーバーの RSA 鍵と同じではありません。
Data Encryption Standard (DES) 暗号仕様および Triple-DES 暗号仕様は対称鍵を使用して、データ伝送を処理します。 データ伝送は、ハードウェアで高速化する場合も、しない場合もあります。データ伝送がハードウェアの方が高速なのか、ソフトウェアの方が高速なのかは、データ・ストリームのサイズによって異なります。SSL は、比較的小さいデータ・ストリームを送信します (通常、4K バイト以下)。小さいデータ・ストリームの場合、ソフトウェアの方が高速である傾向があります。ミッドレンジ・ストリームの場合、ハードウェアの方が高速な場合も、ソフトウェアの方が高速な場合もあります。非常に大きなストリームの場合、ハードウェアの方が高速です。
ハードウェア暗号化の実装方法については、該当するマニュアルを参照してください。例えば、IBM サポート・ポータルにある「z/OS Processor Resource/Systems Management Planning Guide」を参照してください。さらに、z/OS Internet Library から入手できる「z/OS Cryptographic Services ICSF Administrator's Guide」および「z/OS Cryptographic Services ICSF System Programmer's Guide」も参照してください。
Transport Layer Security (TLS) を使用可能にする場合は、conf/httpd.conf.default ファイルの SSL 仮想ホストの例を使用します。例には、Listen ディレクティブ、SSLEnable ディレクティブ、および mod_ibm_ssl モジュールなど、TLS を使用可能にするために必要なエレメントが含まれています。
SSLCipherSpec ディレクティブを使用して、暗号化レベルの順序を制御できます。IBM HTTP Server は常に優先順位の順序を強制します。SSL ディレクティブに関するトピックで SSLCipherSpec ディレクティブについて参照してください。
IBM HTTP Server はリソースへのアクセスを制限する共通モジュールをデフォルトでロードするため、このステップでは、ユーザーが行う操作はありません
構成セクションを使用して、保護関連の構成ディレクティブを囲みます。Apache HTTP Server の資料の構成セクションを参照してください。
階層ファイル・システム (HFS) のリソースの場合、<Directory> ディレクティブおよび <DirectoryMatch> ディレクティブを使用して、保護ディレクティブを囲みます。プラグインが提供するリソースなど、HFS 内に存在しないその他のリソースの場合、<Location> ディレクティブおよび <LocationMatch> ディレクティブを使用します。
ユーザーおよびグループ・パスワード・ファイルに照らして、IBM HTTP Server パスワードを検査できます。ただし、ローカル・システムに照らして IBM HTTP Server パスワードを検査する場合は、AuthBasicProvider SAF ディレクティブを指定します。 オプションとして、SAFRunAs ディレクティブを指定することで、要求を提示する SAF ユーザー ID を変更できます。
仮想ホスト・ベースで SSL クライアント認証を要求する場合は、SSLCLientAuth required ディレクティブを指定します。SSLClientAuthRequire ディレクティブは、サーバーが保護リソースへのアクセスを許可する前にクライアント証明書に照らして検証する必要がある属性値または属性値のグループを指定する場合に使用します。
以下の例をガイドとして使用して、保護セットアップを作成します。
Alias /my-app /opt/my-app/htdocs
<Directory /opt/my-app/htdocs>
# Allow requests that match the allow directives. Then, deny requests that match the deny directives.
# Then, deny requests that do not match the allow or deny directives.
Order allow,deny
# Allow access only to those users from the local host.
Allow from 127.0.0.1
</Directory>
<Directory /opt/my-app/htdocs/members-only>
Order allow,deny
Allow from 127.0.0.1
# Add HTTP basic authentication.
AuthType Basic
AuthBasicProvider file
AuthName "Login with your example.com user ID."
# Use the htpasswd utility in the <install_root>/bin/htpasswd file to maintain the passwords.
# Store the userid and password file in a directory other than the one that it is protecting.
AuthUserFile /opt/my-app/users.passwd
Require valid-user
</Directory>
<Directory /opt/my-app/htdocs/admin>
...
Require user administrator
</Directory>
<Directory /opt/my-app/htdocs/admin>
...
# text file with multiple group-name: member1 member2... lines
# Store the group file in a directory other than the one that it is protecting.
AuthzGroupFile /auth/groups
Require group admins
</Directory>
<Directory /opt/my-app/htdocs/admin>
...
Require group admins
Satisfy any
Order allow,deny
Allow from 127.0.0.1
</Directory>
<Directory> ディレクティブまたは <DirectoryMatch> ディレクティブの内側に <Files> ディレクティブまたは <FilesMatch> ディレクティブをネストすることで、ユーザーがアクセスするファイルを制限できます。
独自の許可用 Apache モジュールを作成しない限り、ユーザー名とアドレスの組み合わせ (bob@192.168.1.1 や steve@192.168.2.2 など) に基づいてアクセスを許可することはできません。
IBM HTTP Server のグループ・ファイルは、グループ名からユーザーのリストへのマッピングに過ぎません。ネストした定義を使用したり、アドレス仕様を含めたりすることはできません。
IBM HTTP Server には、アクセス制御リスト・ファイルはありません。リソースへのアクセスを制限するには、.htaccess ファイルを使用できます。ただし、.htaccess ファイルを使用するとサーバーがスローダウンするため、httpd.conf ファイルを更新できる場合は、.htaccess ファイルを使用しないでください。代替手段として、<Directory> ディレクティブにディレクティブを含め、すべてのディレクティブを httpd.conf ファイルに入れます。