Sun ONE ロゴ     前へ      目次      索引      次へ     
Sun ONE Directory Server インストールおよびチューニングガイド



第 5 章   オペレーティングシステムのチューニング

デフォルトのシステムとネットワーク設定は、高パフォーマンスディレクトリサービスに適していません。Directory Server のパフォーマンスを最適化するためのシステムのチューニングでは、少なくとも基本的なセキュリティレベルを確保し、システムとネットワーク設定の一部を変更する最新の推奨パッチがシステムにインストールされていることを確認する必要があります。この章では、これらのチューニングの問題について説明します。

製品に付属の idsktune ユーティリティ (および Solaris パッケージバージョンの /usr/sbin/directoryserver idsktune) は、基本的なシステム設定の欠陥を診断する場合に役立ちます。このユーティリティは、高パフォーマンスディレクトリサービスをサポートするシステムチューニングの推奨事項を提供します。実際には、ユーティリティにこれらの推奨事項は何も実装されていません。チューニングの推奨事項は、認定システム管理者が実装する必要があります。

プラットフォームのサポートの確認

表 1-1 は、このリリースでサポートされるプラットフォームと関連するハードウェアーキテクチャを示します。サポートされるプラットフォームの更新リストについては、製品のリリースノートを参照してください。

Windows システムをインストールする場合は、ネットワークセキュリティサービスの依存度を下げるために、既存のドメインまたはワークグループのメンバーではない、スタンドアロンサーバーのコンピュータを指定します。

システムのパッチのインストール

システムのセキュリティ全体を管理して、Sun ONE Directory Server 5.2 の適切なインストールと操作を行うために、最新の推奨システムパッチ、サービスパック、または修正プログラムをインストールします。表 5-1 は、必要なパッチの検索場所を示します。

表 5-1    パッチの入手先 (プラットフォームごと) 

プラットフォーム

参照

Sun SolarisTM オペレーティング環境

http://sunsolve.sun.com/

Hewlett Packard HP-UX

http://www.hp.com/support/

IBM AIX

http://www.ibm.com/jp/support/

Microsoft Windows

http://support.microsoft.com/

Red Hat Linux

http://www.jp.redhat.com/

基本的なセキュリティレベルの確保

この節で取り扱う推奨事項によって、すべてのリスクが排除されるわけではありません。ここで取り扱う推奨事項は、最も明らかなセキュリティリスクのいくつかを制限する作業に役立つ簡単なチェックリストとして意図されたものです。

システムの隔離

可能な場合には、ネットワークのファイアウォールを使用して、Directory Server を実行するシステムを、公共のインターネットから隔離します。システムの隔離は、IP ベースの攻撃を防護する必要のある Windows プラットフォームで Directory Server を実行する場合は特に重要です。

デュアルブートを導入しない

Directory Server を実行するシステム上で、デュアルブートあるいは別のオペレーティングシステムを実行しないでください。デュアルブートを導入すると、制限されたファイルに別のシステムがアクセスを許可する場合があります。

強固なパスワード

使用するスーパーユーザーまたは管理者用パスワードは、句読文字、またはアルファベット以外の文字を含む少なくとも 8 文字の長さにします。Windows プラットフォームで Directory Server を実行する場合は、簡単に推測されないパスワードを使用することが特に重要です。

長いオペレーティングシステムのパスワードを使用する場合は、システムがパスワードを処理する方法を設定することが必要になる場合があります。手順については、オペレーティングシステムのマニュアルを参照してください。

ローカルセキュリティポリシー (Windows の場合)

不正なログオンを試行したユーザーをロックアウトする Windows サーバーのローカルセキュリティポリシーを実装します。ポリシーの導入用に、適切なサイズのログを管理するためにイベントログを有効にして設定します。また、ログオン試行に対する監査ログを有効にします。管理者アカウント名を、部外者が推測できないような名前に変更することを検討します。

詳細は、Windows のヘルプを参照してください。

ユーザーとグループ (UNIX プラットフォームの場合)

セキュリティ上の理由から、Directory Server または管理サーバーをスーパーユーザー権限で実行しないことをお勧めします。たとえば、ログイン権限のないユーザーとグループを作成して、このユーザーとグループでサーバーをインストールして実行します。ユーザーとグループをローカルファイルに追加する場合、/etc/passwd エントリは次のようになります。

server:x:61001:Server User:/dev/null:/dev/null

対応する /etc/group エントリは次のようになります。

servers::61001:

デバッグを容易にするために、Solaris システムの coreadm(1M) などのユーティリティを使用して、このユーザーとグループ ID を使用してコアダンプを行うプロセスを実行することができます。

特定の導入の場合に、メッセージングサーバーなどほかのサーバーとの Directory Server ファイルの共有が必要な場合は、同じユーザーとグループを使用してこれらのサーバーを実行することを検討します。

管理サーバーをスーパーユーザーとして実行する必要がある場合、使用しないサービスの停止を検討します。

不必要なサービスの無効化

最高のパフォーマンスを達成しリスクを軽減するためには、システムを Directory Server 専用にします。特にネットワークサービスなどの追加サービスの実行は、サーバーのパフォーマンスと拡張性に悪い影響を与え、セキュリティリスクを増加させる場合があります。

できるだけ多くのネットワークサービスを無効にします。Directory Server は TCP/IP だけを使用するため、ファイルの共有やその他のサービスを必要としません。IP 転送、メール、NetBIOS、NFS、RAS、Web パブリッシング、Windows ネットワーククライアントサービスなどのサービスを無効にします。特に Windows 上では、Event Log、Plug and Play、Protected Storage、セキュリティアカウントマネージャ、Sun ONE Administration Server、Sun ONE Directory Server、Remote Procedure Call (RPC)、および SNMP 以外のすべてのサービスを停止し無効にします。telnetftp の無効化も検討してください。

多くのネットワークサービスと同じように、telnetftp はセキュリティリスクを増大させます。これらの 2 つのサービスは、ネットワーク上でユーザーパスワードをクリアテキストで送信するため特に危険です。telnet および ftp サービスが必要な場合は、代わりに Secure Shell (ssh) および Secure FTP (sftp) などのクライアントを使用して対応することができます。

Directory Server インスタンス自体にネットワークのネームサービスが用意されていない場合は、システムのネームサービスを有効にすることを検討します。Sun ONE サーバーコンソールなどのリモート管理ツールは、IP アドレスとホスト名の変換など操作の一部の面でネームサービスに依存しています。

ネットワークサービスの無効化についての詳細は、オペレーティングシステムのマニュアルを参照してください。

正確な時刻の維持

ログファイルの時刻および日付のタイムスタンプがシステム間でレプリケートされ、連動して使用できるように、システム時刻が正しく同期していることを確認します。特に Windows システム上では、NTP (Network Time Protocol) クライアントを使用して、正しいシステム時刻の設定を検討します。

システム障害発生後の再起動

可能な場合は、『Sun ONE Directory Server 管理ガイド』で説明する手順に従って Directory Server を停止します。システムを適切にシャットダウンしないで、シャットダウン中に突然停止させた場合、データベースが壊れることで、Directory Server の起動が遅れることがあります。データベースの復旧には時間がかかる可能性があります。

(Solaris パッケージの場合) インストールおよび設定の一環として、適切なスクリプトによりブート時に再起動が可能になります。

(Windows の場合) システム障害発生後、自動的に再起動するように Windows を設定します。詳細は、Windows のヘルプを参照してください。

その他のプラットフォームの場合は、ブート時の起動サービスに関する詳細について、オペレーティングシステムのマニュアルを参照してください。

基本的なチューニングの推奨事項の生成

Solaris パッケージバージョンの場合は、idsktune ユーティリティ (/usr/sbin/directoryserver idsktune)、それ以外のバージョンの場合は、製品のバイナリファイルのあるディレクトリに配置された idsktune を使用して、Windows 以外のプラットフォームの基本的なチューニングの推奨事項を生成します。

スーパーユーザーとしてユーティリティを実行する場合は、ユーティリティはシステムに関する情報を収集します。ユーティリティは、推奨する修正作業とともに注意、警告、およびエラーを表示します。たとえば、ユーティリティは次の項目をチェックします。

  • オぺーレーティングシステムとカーネルのバージョンがこのリリースでサポートされている
  • 使用できるメモリとディスク容量が標準使用の最小要件を満たしている
  • システムリソースの制限が標準使用の最小要件を満たしている
  • 必要なパッチまたはサービスパックがインストールされている


  • 実際の運用環境で使用するシステムに Directory Server ソフトウェアをインストールする前に、少なくともすべての ERROR 状態を修正します。



個々の導入要件が最小要件を超える場合があります。idsktune ユーティリティを使用して、最小システム要件として確認された以上のリソースを用意することができます。

ユーティリティに関する詳細については、Sun ONE Directory Server Resource Kitを参照してください。Sun ONE Directory Server Resource Kit は、「Directory Server ツールのダウンロード」で説明する手順に従って、取得できます。

システム設定のチューニング

idsktune ツールを使用して、現在のシステム設定および推奨する変更を読み込むことができます。一般的には、推奨事項の実装により、Directory Server を実行する専用のシステムおよび追加アプリケーションを実行するシステムの両方のパフォーマンスが最適化されます。

特定の推奨事項を実装する前に、ローカルネットワークの状態およびその他のアプリケーションを確認します。追加するネットワークのチューニングのヒントについては、オペレーティングシステムのマニュアルを参照してください。

表 5-2    導入前に確認する設定ファイル 

プラットフォーム

ファイル

内容

Solaris オペレーティング環境

/etc/init.d/inetinit

チューニング用 ndd ステートメントを追加する

/etc/system

システム制限を確認する

/etc/vfstab

ファイルがローカルにあることを確認する

HP-UX

/etc/rc.config.d/nddconf

チューニング用 ndd ステートメントを追加する

代わりに、sam(1M) を使用する

Red Hat Linux

/etc/fstab

ファイルがローカルにあることを確認する

/etc/security/limits.conf

nofile ハードリミット指令を追加する

/etc/sysctl.conf

カーネルパラメタを確認および設定する

/proc/sys/fs/file-max

ファイル記述子の制限を確認する

DPC (Deferred Procedure Call) (Windows の場合)

マルチプロセッサシステムの着信ネットワークトラフィックを処理する Windows の遅延割り込み要求のデフォルト DPC (Deferred Procedure Call) 処理は、パフォーマンスに悪い影響を与える可能性があります。実際には、DPC となる遅延割り込みは、あるプロセッサから別のプロセッサに再スケジュールされて、大幅なオーバーヘッドの増加をもたらします。このような DPC オーバーヘッド問題を防止するには、次のレジスタキーで ProcessorAffinityMask の値を 0 に設定します。

HKEY_LOCAL_MACHINE¥System¥CurrentControlSet¥Services¥NDIS¥Parameters

ファイル記述子

Directory Server は、同時クライアント接続を処理するときにファイル記述子を使用します。システムで使用可能な、またはプロセスで使用可能なファイル記述子の最大数を小さくして、同時接続数を制限することができます。したがって、ファイル記述子の数に関連する推奨事項は、Directory Server がシステムで処理できる同時接続の数に関連します。

Solaris システムでは、利用できるファイル記述子の数は、/usr/sbin/directoryserver idsktune (パッケージバージョンの場合) または idsktune (パッケージバージョンではない場合) ユーティリティが提供するドキュメントで説明しているように、rlim_fd_max パラメータを使用して設定します。利用可能なファイル記述子の数の変更に関する詳細手順は、オペレーティングシステムのマニュアルを参照してください。

システムで使用できるファイル記述子の最大数を変更した後、変更後のファイル記述子を使用するための Directory Server の設定に関する詳細については、表 9-2 を参照してください。

大規模ファイルのサポート (HP-UX の場合)

一部の HP-UX システムでは、デフォルトで大規模ファイルがサポートされません。Directory Server をインストールするファイルシステムで大規模ファイルのサポートを有効にする手順については、HP-UX の製品マニュアルを参照してください。手順は、idsktune ユーティリティにあるドキュメントにも記載されています。

タイムアウトを保留状態にするスレッド (HP-UX の場合)

一部の HP-UX システムでは、タイムアウトを保留状態にするスレッドの最大数が、idsktune ユーティリティの指定に対して不適切に設定される場合があります。タイムアウトを保留状態にするスレッドの最大数を増やす手順については、HP-UX の製品マニュアルを参照してください。手順は、idsktune ユーティリティにあるドキュメントにも記載されています。

プロセス当たりのスレッド (HP-UX の場合)

一部の HP-UX システムでは、プロセス当たりのスレッドの最大数が、idsktune ユーティリティの指定に対して小さすぎる場合があります。プロセス当たりのスレッドの最大数を増やす手順については、HP-UX の製品マニュアルを参照してください。手順は、idsktune ユーティリティにあるドキュメントにも記載されています。

TCP (伝送制御プロトコル) の設定

特定のネットワーク設定はプラットフォームに依存します。一部のシステムでは、TCP 設定を変更することによって、Directory Server のパフォーマンスを強化することができます。この節では、TCP 設定に関する idsktune ユーティリティの推奨事項の背後にある理論について説明します。

TIME-WAIT 状態の閉じられた接続

一部のシステムでは、接続解除後カーネル内のテーブルに TCP 接続が保持される時間を設定することができます。接続が保持されている間は、迅速に接続を再開することができます。この設定が大きすぎると、システムは長時間に渡ってカーネルのテーブル内に多数の接続を保持するため、Directory Server へ接続できる数が少なくなります。ほとんどの導入では、このパラメータの値を 30 秒 (30,000 ミリ秒) に設定すると、Directory Server への同時接続を増やすことができます。

Solaris システムでは、この時間間隔は、/usr/sbin/directoryserver idsktune (パッケージバージョンの場合) または idsktune (パッケージバージョンではない場合) ユーティリティが提供するドキュメントで説明しているように、tcp_time_wait_interval パラメータを使用して設定します。

接続保留状態の受け入れ

一部のシステムでは、Directory Server などの TCP リスナーが TCP 接続の保留状態を受け入れる数を設定することができます。この設定が小さすぎると、Directory Server が受け入れ可能な保留状態の接続の数が制限されます。ほとんどの導入では、このパラメータの値を少なくとも 1024 に設定すると、Directory Server が処理できる同時接続要求を増やすことができます。

Solaris システムでは、許可される保留状態の接続の数は、/usr/sbin/directoryserver idsktune (パッケージバージョンの場合) または idsktune (パッケージバージョンではない場合) ユーティリティが提供するドキュメントで説明しているように、tcp_conn_req_max_q パラメータを使用して設定します。tcp_conn_req_max_q0 を 2048 に増やすことを検討します。

確認応答の遅延

一部のシステムでは、システムに直接接続されていないホストに対する TCP 確認応答を遅延させる時間を設定することができます。遅延時間を直接設定する代わりに、表 9-2 で説明しているように、cn=config 上の nsslapd-nagleoff に設定します。

接続の無効化

一部のシステムでは、キープアライブパケットの転送間隔を設定することができます。この設定では、接続が無効化したり解除された可能性があるときに、TCP 接続を維持する時間を決定することができます。設定が大きすぎると、キープアライブ間隔によって、解除されたクライアントの接続を活動状態に維持するために、システムは不必要なリソースを使用してしまいます。ほとんどの導入では、このパラメータの値を 600 秒 (600,000 ミリ秒 = 10 分) に設定すると、Directory Server への同時接続を増やすことができます。

Solaris システムでは、この時間間隔は、/usr/sbin/directoryserver idsktune (パッケージバージョンの場合) または idsktune (パッケージバージョンではない場合) ユーティリティが提供するドキュメントで説明しているように、tcp_keepalive_interval パラメータを使用して設定します。

着信接続

一部のシステムでは、確認応答を送信しない着信接続の待機時間を設定できます。設定が大きすぎると、接続の失敗を検出する場合に長時間の遅延を引き起こします。高速で信頼性の高いネットワークにイントラネットを導入する場合、このパラメータを 600 秒 (600,000 ミリ秒 = 10 分) に設定するとパフォーマンスを向上させることができます。

Solaris システムでは、この時間間隔は、/usr/sbin/directoryserver idsktune (パッケージバージョンの場合) または idsktune (パッケージバージョンではない場合) ユーティリティが提供するドキュメントで説明しているように、tcp_ip_abort_interval パラメータを使用して設定します。

発信接続

一部のシステムでは、確立される発信接続の待機時間を設定できます。設定が大きすぎると、迅速に応答しない送信先サーバー (レプリカなど) に対する発信接続を確立する場合に長時間の遅延を引き起こします。高速で信頼性の高いネットワークにイントラネットを導入する場合、このパラメータを 10 秒に設定するとパフォーマンスを向上させることができます。

Solaris システムでは、この時間間隔は、/usr/sbin/directoryserver idsktune (パッケージバージョンの場合) または idsktune (パッケージバージョンではない場合) ユーティリティが提供するドキュメントで説明しているように、tcp_ip_abort_cinterval パラメータを使用して設定します。

再転送のタイムアウト

一部のシステムでは、パケットの再転送の初期時間間隔を設定することができます。この設定は、確認応答のないパケットの再転送前の待機に影響を与えます。この設定が大きすぎると、クライアントは失われたパケットで待機させられる場合があります。高速で信頼性の高いネットワークにイントラネットを導入する場合、このパラメータを 500 ミリ秒に設定するとパフォーマンスを向上させることができます。

Solaris システムでは、この時間間隔は、/usr/sbin/directoryserver idsktune (パッケージバージョンの場合) または idsktune (パッケージバージョンではない場合) ユーティリティが提供するドキュメントで説明しているように、tcp_rexmit_interval_initial パラメータを使用して設定します。

Windows では、TCP の高速な再転送と回復のための Van Jacobson アルゴリズムを実装し、ACK 受信時に、再送タイマーの時間切れを待つことなく、失われたセグメントを迅速に転送し直すことができます。Van Jacobson アルゴリズムを実装するには、次のレジストリキーを編集します。

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Paramete rs

REG_DWORD タイプを含む TcpMaxDupAcks を追加します。ACK の数に対応する値を設定します。有効な値は 1 から 3 で、デフォルトは 2 です。

シーケンス番号

一部のシステムでは、システムが初期シーケンス番号生成を処理する方法を設定することができます。エクストラネットおよびインターネットを導入する場合、シーケンス番号攻撃を防ぐために、このパラメータを RFC 1948 に基づく初期シーケンス番号生成などに設定します。

Solaris システムでは、この動作は、/usr/sbin/directoryserver idsktune (パッケージバージョンの場合) または idsktune (パッケージバージョンではない場合) ユーティリティが提供するドキュメントで説明しているように、tcp_strong_iss パラメータを使用して設定します。


前へ      目次      索引      次へ     
Copyright 2002-2003 Sun Microsystems, Inc. All rights reserved.