次に、必要な Kerberos 主体とキータブのエントリを KDC データベース内に作成する手順を示します。サービス主体を作成するキータブエントリは、クラスタノードごとに、クラスタノードで使用されている Solaris のバージョンによって異なります。
Solaris 8 では、「root」エントリと「host」エントリの両方を作成する必要があります。
Solaris 9 では、作成する必要があるのは「host」エントリだけです。
論理ホスト名に対する 「nfs」サービスの主体は 1 つのノード上でだけ作成し、各クラスタノード上のデフォルトの Kerberos キータブファイルに追加します。Kerberos 構成ファイル krb5.conf とキータブファイル krb5.keytab は、広域ファイルシステム上で共有するのではなく、各クラスタノード上に個々のコピーとして保存する必要があります。
各クラスタノードで管理者として KDC サーバーにログインし、クラスタノードごとにホスト主体を作成します。
Solaris 8 では、クラスタノードごとにホスト主体とルート主体の両方を作成する必要があります。
主体は、完全修飾されたドメイン名を使用して作成する必要があります。
これらのエントリは、各ノードのデフォルトのキータブファイルに追加します。これらの作業は、クラスタコンソールユーティリティーを使用することで非常に簡単に行えます (cconsole(1M) を参照)。
次に、ルートエントリとホストエントリを作成する例を示します。この手順は、すべてのクラスタノードで行います。 ホスト名の位置には、各クラスタノードの物理ホスト名を入れてください。
# kadmin -p username/admin Enter Password: kadmin: addprinc -randkey host/phys-red-1.mydept.company.com Principal "host/phys-red-1.mydept.company.com@ACME.COM" created. |
kadmin: addprinc -randkey root/phys-red-1.mydept.company.com Principal "root/phys-red-1.mydept.company.com@ACME.COM" created. |
kadmin: ktadd host/phys-red-1.mydept.company.com Entry for principal host/phys-red-1.mydept.company.com with kvno 2, encryption type DES-CBC-CRC added to keytab WRFILE:/etc/krb5/krb5.keytab. |
kadmin: ktadd root/phys-red-1.mydept.company.com Entry for principal root/phys-red-1.mydept.company.com with kvno 2, encryption type DES-CBC-CRC added to keytab WRFILE:/etc/krb5/krb5.keytab. |
kadmin: quit # |
1 つのクラスタノードで、Sun Cluster HA for NFS サービスを提供する論理ホスト名に対する Sun Cluster HA for NFS サービスの主体を作成します。
主体は、完全修飾されたドメイン名を使用して作成する必要があります。この手順は、1 つのクラスタノードでだけ行なってください。
# kadmin -p username/admin Enter Password: kadmin: addprinc -randkey nfs/relo-red-1.mydept.company.com Principal "nfs/relo-red-1.mydept.company.com@ACME.COM" created. |
kadmin: ktadd -k /var/tmp/keytab.hanfs nfs/relo-red-1.mydept.company.com Entry for principal nfs/relo-red-1.mydept.company.com with kvno 3, encryption type DES-CBC-CRC added to keytab WRFILE:/var/tmp/keytab.hanfs. |
kadmin: quit # |
上記の例では、relo-red-1 は Sun Cluster HA for NFS で使用される論理ホスト名です。
安全な方法を使用して、手順 2 で指定したキータブデータベース /var/tmp/keytab.hanfs をほかのクラスタノードにコピーします。
安全でないコピー手段 (通常使用される ftp や rcp など) は使用しないでください。クラスタ独自のインターコネクトを使用してデータベースをコピーすれば、安全性がさらに高まります。
次に、データベースをコピーする例を示します。
# scp /var/tmp/keytab.hanfs clusternode2-priv:/var/tmp/keytab.hanfs # scp /var/tmp/keytab.hanfs clusternode3-priv:/var/tmp/keytab.hanfs |
すべてのクラスタノードで、論理ホスト名に対する「nfs」サービスのキータブエントリをローカルキータブデータベースに追加します。
次の例では、ktutil(1M) コマンドを使用してエントリを追加しています。一時的なキータブファイル /var/tmp/keytab.hanfs は、デフォルトのキータブデータベース /etc/krb5/krb5.keytab に追加したあとで、すべてのクラスタノードで削除してください。
# ktutil ktutil: rkt /etc/krb5/krb5.keytab ktutil: rkt /var/tmp/keytab.hanfs ktutil: wkt /etc/krb5/krb5.keytab ktutil: quit# # rm /var/tmp/keytab.hanfs |
Kerberos クライアント構成の検証を行います。
各クラスタノードでデフォルトのキータブエントリを表示し、「nfs」サービス主体のキーバージョン番号 (KVNO) がすべてのクラスタノードで同じであることを確認してください。
# klist -k Keytab name: FILE:/etc/krb5/krb5.keytab KVNO Principal ---- --------------------------------- 2 host/phys-red-1.mydept.company.com@ACME.COM 2 root/phys-red-1.mydept.company.com@ACME.COM 3 nfs/relo-red-1.mydept.company.com@ACME.COM |
論理ホストに対する「nfs」サービスの主体は、すべてのクラスタノードで同じ KVNO 番号を持つ必要があります。上記の例では、論理ホストに対する「nfs」サービスの主体は nfs/relo-red-1.mydept.company.com@ACME.COM で、KVNO は 3 です。
(Solaris 9 のみ) ユーザー資格情報データベース gsscred は、クラスタからセキュア NFS サービスにアクセスするすべてのユーザーについて最新の状態でなければなりません。
ユーザー資格情報データベースは、すべてのクラスタノードで次のコマンドを実行して構築してください。
# gsscred -m kerberos_v5 -a |
詳細は、gsscred(1M) のマニュアルページを参照してください。
上記の方法は、ユーザー資格情報データベースを一度だけ構築するものです。ユーザー群の変化に合わせてこのデータベースのローカルコピーを最新状態に維持するには、ほかのメカニズム (cron(1M) など) を使用する必要があります。
この手順は、Solaris リリース 10 には不要です。