ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris のシステム管理 (ネットワークサービス) Oracle Solaris 11 Information Library (日本語) |
NCA (ネットワークキャッシュとアクセラレータ) (概要)
SSL (Secure Sockets Layer) プロトコルを使用する Web サーバー
ライブラリ置き換えによる door サーバーデーモンのサポート
NCA 用のソケットユーティリティーライブラリを読み込む方法
SSL カーネルプロキシを使用するように Apache 2.0 Web サーバーを設定する方法
パート II ネットワークファイルシステムへのアクセス (トピック)
6. ネットワークファイルシステムへのアクセス (リファレンス)
この節では、サービスを有効または無効にするための手順を示します。
詳細は、『Oracle Solaris の管理: セキュリティーサービス』の「管理権限を取得する方法」を参照してください。
/etc/nca/nca.if ファイルに各物理インタフェースの名前を指定します。詳細は、nca.if(4) のマニュアルページを参照してください。
# cat /etc/nca/nca.if hme0 hme1
インタフェースごとに、対応する hostname. interface-name ファイルが必要です。また、/etc/hosts ファイル内に hostname.interface-name の内容と一致するエントリが必要です。すべてのインタフェースで NCA 機能を使用可能にするには、nca.if ファイル内でアスタリスク (*) を指定します。
/etc/nca/ncakmod.conf 内の status エントリを enabled に変更します。
# cat /etc/nca/ncakmod.conf # # NCA Kernel Module Configuration File # status=enabled httpd_door_path=/system/volatile/nca_httpd_1.door nca_active=disabled
詳細は、ncakmod.conf(4) のマニュアルページを参照してください。
/etc/nca/ncalogd.conf 内の status エントリを enabled に変更します。
# cat /etc/nca/ncalogd.conf # # NCA Logging Configuration File # status=enabled logd_path_name="/var/nca/log" logd_file_size=1000000
logd_path_name エントリに示されているパスを変更すると、ログファイルの格納場所を変更できます。ログファイルには raw デバイスとファイルのどちらでも指定できます。次に、NCA ログファイルのパスの例を示します。この設定ファイルの詳細は、ncalogd.conf(4) のマニュアルページを参照してください。
/etc/nca/ncaport.conf ファイルにポート番号を追加します。次の例では、NCA はすべての設定済み IP アドレスについて、ポート 80 を監視します。
# cat /etc/nca/ncaport.conf # # NCA Kernel Module Port Configuration File # . . ncaport=*/80
eeprom コマンドを使用して、システムの kernelbase を設定します。
# eeprom kernelbase=0x90000000 # eeprom kernelbase kernelbase=0x90000000
2 行目の eeprom コマンドを実行すると、パラメータが設定済みかどうかを確認できます。
注 - kernelbase を設定すると、ユーザープロセスが使用できる仮想メモリー領域が 3G バイト未満に減少します。このため、システムは ABI に準拠しなくなります。システムをブートすると、そのことを警告するメッセージがコンソールに表示されます。ほとんどのプログラムは、実際には 3G バイトの仮想アドレス空間を必要としません。3G バイト以上の仮想アドレス空間を必要とするプログラムは、NCA を無効に設定したシステム上で実行する必要があります。
例 2-1 NCA ログファイルとして raw デバイスを使用する
ncalogd.conf ファイル内の logd_path_name 文字列で、NCA ログファイルの格納先として raw デバイスを指定できます。raw デバイスを使用する利点としては、アクセス時のオーバーヘッドが小さいため、サービスを高速に実行できることが挙げられます。
NCA サービスはファイル内に記述されているすべての raw デバイスに対して、対応するファイルシステムがないことを確認します。このテストは、アクティブなファイルシステムを誤って上書きしてしまわないように実行されます。
このテストでファイルシステムが検出されないようにするには次のコマンドを実行します。このコマンドは、ファイルシステムとして構成されている任意のディスクパーティション上のファイルシステム部分を破棄します。この例では、/dev/rdsk/c0t0d0s7 が古いファイルシステムを持つ raw デバイスです。
# dd if=/dev/zero of=/dev/rdsk/c0t0d0s7 bs=1024 count=1
上記の dd コマンドを実行すると、ncalogd.conf ファイルに raw デバイスを追加できるようになります。
# cat /etc/nca/ncalogd.conf # # NCA Logging Configuration File # status=enabled logd_path_name="/dev/rdsk/c0t0d0s7" logd_file_size=1000000
例 2-2 NCA ロギング用に複数のファイルを使用する
ncalogd.conf ファイル内の logd_path_name 文字列で、NCA ログファイルの格納先として複数のファイルを指定できます。最初のファイルが満杯になると、二番目のファイルが使用されます。次の例では、最初に /var/nca/log ファイルを書き込みに使用し、次に raw パーティションを使用する方法を示します。
# cat /etc/nca/ncalogd.conf # # NCA Logging Configuration File # status=enabled logd_path_name="/var/nca/log /dev/rdsk/c0t0d0s7" logd_file_size=1000000
詳細は、『Oracle Solaris の管理: セキュリティーサービス』の「管理権限を取得する方法」を参照してください。
/etc/nca/ncakmod.conf 内の status エントリを disabled に変更します。
# cat /etc/nca/ncakmod.conf # NCA Kernel Module Configuration File # status=disabled httpd_door_path=/system/volatile/nca_httpd_1.door nca_active=disabled
詳細は、ncakmod.conf(4) のマニュアルページを参照してください。
/etc/nca/ncalogd.conf 内の status エントリを disabled に変更します。
# cat /etc/nca/ncalogd.conf # # NCA Logging Configuration File # status=disabled logd_path_name="/var/nca/log" logd_file_size=1000000
詳細は、ncalogd.conf(4) のマニュアルページを参照してください。
NCA が有効になっている場合、必要に応じて NCA のログ処理のオン / オフを切り換えることができます。詳細は、「Web ページのキャッシングを有効にする方法」を参照してください。
詳細は、『Oracle Solaris の管理: セキュリティーサービス』の「管理権限を取得する方法」を参照してください。
ロギングを恒久的に無効にする場合は、/etc/nca/ncalogd.conf 内の status を disabled に変更し、システムをリブートする必要があります。詳細は、ncalogd.conf(4) のマニュアルページを参照してください。
この手順は、AF_NCA ソケットを直接にサポートしていない Web サーバーに対してのみ使用します。
Web サーバーの起動スクリプトに、ライブラリをプリロードするための 1 行を追加します。次のような行を追加します。
LD_PRELOAD=/usr/lib/ncad_addr.so /usr/bin/httpd
詳細は、『Oracle Solaris の管理: セキュリティーサービス』の「管理権限を取得する方法」を参照してください。
/etc/nca/ncaport.conf に、新しいポートのエントリを追加します。次の例では、IP アドレス 192.168.84.71 に対してポート 8888 を追加しています。詳細は、ncaport.conf(4) のマニュアルページを参照してください。
# cat /etc/nca/ncaport.conf # # NCA Kernel Module Port Configuration File # . . ncaport=*/80 ncaport=192.168.84.71/8888
Web サーバーが NCA でアドレスを使用するには、先にそのアドレスが NCA のポート設定のファイルに入っている必要があります。Web サーバーが実行中である場合は、新しいアドレスの定義後にその Web サーバーを再起動する必要があります。
Apache 2.0 Web サーバー上で SSL パケット処理のパフォーマンスを改善するには、次の手順を使用してください。
始める前に
次の手順を使用するには、Apache 2.0 Web サーバーのインストールと設定が完了している必要があります。Apache 2.0 Web サーバーはこのリリースに含まれています。
SSL カーネルプロキシを使用するには、サーバーの非公開鍵と証明書が単一のファイル内に存在している必要があります。ssl.conf ファイル内に SSLCertificateFile パラメータだけが指定されている場合、そこに指定されたファイルを直接、カーネル SSL 用として使用できます。SSLCertificateKeyFile パラメータも指定されている場合、証明書ファイルと非公開鍵ファイルを 1 つにまとめる必要があります。証明書ファイルと鍵ファイルを 1 つにまとめる方法の 1 つは、次のコマンドを実行することです。
# cat cert.pem key.pem >cert-and-key.pem
詳しくは、『Oracle Solaris の管理: セキュリティーサービス』の「管理権限を取得する方法」を参照してください。 ksslcfg コマンドは、 Network Security プロファイルに含まれています。
次のコマンドは、Web サーバーが SMF を使って実行されるように設定されているシステム上の Web サーバーを停止します。
# svcadm disable svc:/network/http:apache2
サービスがまだ変換されていない場合には、次のコマンド構文を使ってサービスを停止します。 /usr/apache2/bin/apachectl stop
オプションの完全な一覧については、ksslcfg(1M)情報を指定する必要のあるパラメータは、次のとおりです。
key-format – -f オプションとともに使用し、証明書と鍵の形式を定義します。SSL カーネルプロキシの場合、pem、pkcs12 のいずれかの値を指定してください。
key-and-certificate-file – -i オプションとともに使用し、サーバーの鍵と証明書の格納先となるファイルの場所を設定します。
password-file– -p オプションとともに使用し、非公開鍵の暗号化に使用するパスワードが含まれているファイルの場所を選択します。このパスワードは、自動再起動を実現するために使用されます。このファイルのアクセス権は、0400 にしてください。
proxy-port – -x オプションとともに使用し、SSL プロキシポートを設定します。標準ポート 80 とは別のポートを選択します。Web サーバーは SSL プロキシポートを待機します。
ssl-port – SSL カーネルプロキシが待機するポートを選択します。これは通常、443 に設定されます。
注 - ssl-port と proxy-port の値を NCA 用として設定することはできません。なぜなら、これらのポートは SSL カーネルプロキシ専用として使用されるからです。通常、ポート 80 が NCA 用として、ポート 8443 が proxy-port 用として、443 が ssl-port 用として、それぞれ使用されます。
ksslcfg コマンドで、SSL プロキシポートと関連パラメータを指定します。
ksslcfg create -f key-format -i key-and-certificate-file -p password-file -x proxy-port ssl-port
次のコマンドによって報告されるサービスの状態は「online」です。
# svcs svc:/network/ssl/proxy
/etc/apache2/http.conf ファイルを編集し、SSL プロキシポートを定義するための行を 1 行追加します。サーバーの IP アドレスを使用した場合、Web サーバーはそのインタフェース上でのみ待機します。この行は次のようになります。
Listen 0.0.0.0:proxy-port
SSL カーネルプロキシインスタンスの起動後に Web サーバーが起動されるようにすべきです。次のコマンドは、そうした依存関係を確立します。
# svccfg -s svc:/network/http:apache2 svc:/network/http:apache2> addpg kssl dependency svc:/network/http:apache2> setprop kssl/entities = fmri:svc:/network/ssl/proxy:kssl-INADDR_ANY-443 svc:/network/http:apache2> setprop kssl/grouping = astring: require_all svc:/network/http:apache2> setprop kssl/restart_on = astring: refresh svc:/network/http:apache2> setprop kssl/type = astring: service svc:/network/http:apache2> end
# svcadm enable svc:/network/http:apache2
SMF を使ってサービスが起動されない場合は、次のコマンドを使用します。 /usr/apache2/bin/apachectl startssl
例 2-3 SSL カーネルプロキシを使用するように Apache 2.0 Web サーバーを設定する
次のコマンドは、pem 鍵形式を使ってインスタンスを作成します。
# ksslcfg create -f pem -i cert-and-key.pem -p file -x 8443 443
Sun Java System Web Server 上で SSL パケット処理のパフォーマンスを改善するには、次の手順を使用してください。この Web サーバーについては、『Sun Java System Web Server 7.0 Update 1 Administrator’s Guide 』を参照してください。
始める前に
次の手順を使用するには、Sun Java System Web Server のインストールと設定が完了している必要があります。
詳しくは、『Oracle Solaris の管理: セキュリティーサービス』の「管理権限を取得する方法」を参照してください。 ksslcfg コマンドは、 Network Security プロファイルに含まれています。
管理者の Web インタフェースを使ってサーバーを停止します。詳細は、『Sun Java System Web Server 7.0 Update 1 Administrator’s Guide 』の「サーバーの起動と停止」を参照してください。
オプションの完全な一覧については、ksslcfg(1M)情報を指定する必要のあるパラメータは、次のとおりです。
key-format – -f オプションとともに使用し、証明書と鍵の形式を定義します。
token-label – -T オプションとともに使用し、PKCS#11 トークンを指定します。
certificate-label – -C オプションとともに使用し、PKCS#11 トークン内の証明書オブジェクトに含まれるラベルを選択します。
password-file – -p オプションとともに使用し、Web サーバーが使用する PKCS#11 トークンにユーザーをログインさせるためのパスワードが含まれているファイルの場所を選択します。このパスワードは、自動再起動を実現するために使用されます。このファイルのアクセス権は、0400 にしてください。
proxy-port – -x オプションとともに使用し、SSL プロキシポートを設定します。標準ポート 80 とは別のポートを選択します。Web サーバーは SSL プロキシポートを待機します。
ssl-port – SSL カーネルプロキシが待機するポートを定義します。この値は通常、443 に設定されます。
注 - ssl-port と proxy-port の値を NCA 用として設定することはできません。なぜなら、これらのポートは SSL カーネルプロキシ専用として使用されるからです。通常、ポート 80 が NCA 用として、ポート 8443 が proxy-port 用として、443 が ssl-port 用として、それぞれ使用されます。
ksslcfg コマンドで、SSL プロキシポートと関連パラメータを指定します。
ksslcfg create -f key-format -T PKCS#11-token -C certificate-label -p password-file -x proxy-port ssl-port
次のコマンドによって報告されるサービスの状態は「online」です。
# svcs svc:/network/ssl/proxy
詳細は、『Sun Java System Web Server 7.0 Update 1 Administrator’s Guide 』の「待機ソケットの追加と編集」を参照してください。
例 2-4 SSL カーネルプロキシを使用するように Sun Java System Web Server を設定する
次のコマンドは、pkcs11 鍵形式を使ってインスタンスを作成します。
# ksslcfg create -f pkcs11 -T "Sun Software PKCS#11 softtoken" -C "Server-Cert" -p file -x 8443 443
SSL カーネルプロキシはゾーン内でも動作しますが、その際には次の制限があります。
カーネル SSL の管理はすべて、大域ゾーンから行う必要があります。大域ゾーンの管理者は、局所ゾーン内の証明書や鍵のファイルにアクセスできる必要があります。大域ゾーンでの ksslcfg コマンドによるサービスインスタンスの設定が完了すると、局所ゾーンで Web サーバーを起動できるようになります。
ksslcfg コマンドを実行してインスタンスを設定する際に、特定のホスト名または IP アドレスを指定する必要があります。特に、インスタンスは INADDR_ANY を使用できません。
例 2-5 SSL カーネルプロキシを使用するように局所ゾーン内の Apache Web サーバーを設定する
まず、局所ゾーン内で Web サーバーを停止します。大域ゾーン内で、サービスを設定するための手順をすべて実行します。apache-zone という名前の局所ゾーンに対するインスタンスを作成するには、次のコマンドを使用します。
# ksslcfg create -f pem -i /zone/apache-zone/root/keypair.pem -p /zone/apache-zone/root/pass \ -x 8443 apache-zone 443
局所ゾーン内で、次のコマンドを実行してサービスインスタンスを有効にします。
# svcadm enable svc:/network/http:apache2