SEAM をインストールする前に、いくつかの構成の問題を解決しておく必要があります。初期インストール後に構成を変更することは不可能ではありませんが、システムに新たに追加されるクライアントにとっては難しい問題となります。さらに、一部の変更は全体の再インストールを必要とするため、計画には長期的な目標を考慮することが大切です。
レルムは、ドメインのような論理的なネットワークで、同じマスター KDC の元でシステムのグループを定義します。DNS ドメイン名を確立するのと同じように、SEAM をインストールする前に、レルム名、各レルムの数とサイズ、およびレルム間の関係などを決定しておく必要があります。
レルム名は任意の ASCII 文字列です。通常、DNS ドメイン名をすべて大文字にした文字列を使用します。こうすることによって、わかりやすい名前を使用でき、しかも SEAM で発生する問題と DNS ネームスペースで発生する問題とを区別できます。DNS を使用しない場合、または異なる文字列を使用する場合は任意の文字列を使用できますが、インターネットの標準の命名規則に従ったレルム名を使用することをお勧めします。
インストールに必要なレルムの数は次の要素によって異なります。
サポートされるクライアントの数
1 つのレルム内のクライアントが多すぎると管理が難しくなり、結果としてレルムを分割することになります。サポートできるクライアントの数を決定する主な要因は、各クライアントが生成する SEAM トラフィックの量、物理ネットワークの帯域幅、およびホストの速度です。インストールごとに制限が異なるため、クライアントの最大数を決定する規則はありません。
クライアントがどのくらい離れているか
クライアントが地理的に異なる場所に存在する場合、いくつかの小さなレルムを設定する方が賢明な場合があります。
KDC としてインストールできるホストの数
各レルムには少なくとも 2 つの KDC サーバー (マスターとスレーブ) が必要です。
複数のレルムを構成するとき、どのようにレルム間を関連付けるかを決定する必要があります。レルム間に階層的な関係を確立すると、関連するドメインに自動的にパスが設定されますが、階層構造のすべてのレルムが適切に構成されている必要があります。自動的にパスが設定されると、管理者の負担が軽くなります。しかし、ドメインに多くのレベルがある場合、必要なトランザクションが増えるため、デフォルトのパスを使用したくない場合があります。
また、直接接続をすることもできます。直接接続は、2 つの階層的なドメイン間にあるレベルが多すぎるとき、あるいは、階層関係がないときに便利です。接続を使用するすべてのホストにおいて、/etc/krb5/krb5.conf に接続を定義する必要があります。したがって、いくつかの追加作業が必要です。レルムの概要については、「レルム」を参照してください。複数のレルムを構成する手順については、「レルム間の認証の構成」を参照してください。
ホスト名とレルム名のマッピングは krb5.conf ファイルの domain_realm セクションで定義します。これらのマッピングは、必要に応じて、ドメイン全体でも個々のホストでも定義できます。詳細は、krb5.conf(4) のマニュアルページを参照してください。
SEAM を使用するときは、DNS サービスを構成しておき、すべてのホスト上で動作させていることを推奨します。DNS を使用する場合、すべてのシステムで DNS を有効にし、使用しない場合、すべてのシステムで DNS を無効にしてください。DNS が利用可能な場合、プリンシパルには各ホストの Fully Qualified Domain Name (FQDN) が必要です。たとえば、ホスト名が boston、DNS ドメイン名が acme.com、およびレルム名が ACME.COM の場合、そのホストのプリンシパル名は host/boston.acme.com@ACME.COM となります。このマニュアルでは、各ホストに FQDN を使用しています。
ホストの FQDN を含むプリンシパル名の場合、/etc/resolv.conf にある DNS ドメイン名の文字列と一致させる必要があります。この文字列は大文字と小文字を区別します。SEAM では DNS ドメイン名は小文字にしなければならないため、プリンシパルの FQDN を入力するときは小文字だけを使用してください。
SEAM は DNS サービスがなくても実行できますが、いくつかの重要な機能 (他のレルムと通信する機能など) は動作しません。DNS が構成されていない場合、簡単なホスト名をインスタンス名として使用できます。この場合、プリンシパルは host/boston@ACME.COM になります。後で DNS を有効にする場合、KDC データベースですべてのホストのプリンシパルを削除および置換する必要があります。
デフォルトでは、ポート 88 とポート 750 は KDC が使用し、ポート 749 は KDC 管理デーモンが使用します。異なるポート番号も使用できますが、これらのポート番号を変更するには、クライアントごとに /etc/services と /etc/krb5/krb5.conf ファイルを変更します。さらに、KDC ごとに /etc/krb5/kdc.conf ファイルを更新します。
スレーブ KDC は、マスター KDC と同様に、クライアントに資格を生成します。スレーブ KDC はマスターが利用不可能になった場合にバックアップとして機能します。各レルムには少なくとも 1 つのスレーブ KDC があれば望ましいですが、なくても動作します。次の要因によっては、スレーブ KDC をさらに追加する必要があります。
レルム内の物理セグメントの数
通常ネットワークにおいては、各セグメントは他のレルムがなくても機能するように設定されている必要があります。このためには、各セグメントから KDC にアクセスできるようにしておきます。このインスタンスにおける KDC はマスターでもスレーブでもかまいません。
レルム内のクライアントの数
より多くのスレーブ KDC サーバーを追加するほど、現在のサーバーの負荷を減らすことができます。
さらに多くのスレーブ KDC を追加することもできます。しかし、KDC データベースはすべてのサーバーに伝達されなければならないため、KDC サーバーの追加数が増えるほど、レルム全体のデータを更新するのにかかる時間が長くなります。また、各スレーブは KDC データベースのコピーを保持するため、多くのスレーブ KDC を追加すると、セキュリティが侵害される危険性も増えます。
さらに、1 つまたは複数のスレーブ KDC をマスター KDC と簡単に切り替えられるようにも構成できます。少なくとも 1 つのスレーブ KDC をこのように構成しておくと、マスター KDC が何らかの理由で異常終了した場合、マスター KDC と簡単に切り替えられます。切り替え可能なスレーブ KDC を構成する方法については、「マスター KDC とスレーブ KDC の切り替え」を参照してください。
マスター KDC に格納されたデータベースは定期的にスレーブ KDC に伝達される必要があります。スレーブ KDC を更新する頻度は最初に決定しておく必要があります。すべてのクライアントで最新の情報を利用できるようにすると、更新が完了するまでの時間が長くなります。データベースの伝達についての詳細は、「Kerberos データベースの管理」を参照してください。
1 つのレルムに多くの KDC を持つ場合のインストールでは、1 つまたは複数のスレーブが並列処理でデータを伝達できます。これによって更新にかかる時間が短縮されますが、レルムの管理がより複雑になります。
Kerberos 認証システムを使用しているすべてのホストは内部クロックの同期を取って、指定した最大時間 (「クロックスキュー」と呼ぶ) 内に収まるようにする必要があります。これによって、別の Kerberos セキュリティチェックにもなります。これらの任意のホスト間でクロックスキューを超えた場合、要求は拒否されます。
すべてのクロックの同期を取る方法の 1 つは、Network Time Protocol (NTP) ソフトウェアを使用することです。詳細は、「KDC と SEAM クライアント間のクロックの同期」を参照してください。クロックの同期を取る方法は他にもあるため、NTP を使用することは必須ではありません。クロックスキューによりアクセスが拒否されないように、何らかの方法で同期を取る必要があります。
SEAM 製品には情報を NFS サーバーに格納する事前構成手順が含まれています。この情報はソフトウェアインストール時に使用します。このスクリプトを使用するかどうかは自由ですが、インストール処理にかかる時間を短縮でき、手動によるデータ入力のエラーを減らすことができるため推奨します。