Sun Microsystems, Inc.
spacerspacer
spacer www.sun.com docs.sun.com |
spacer
black dot
 
 
9.  SEAM の構成 (手順) SEAM クライアントの構成 SEAM クライアントを構成する方法  戻る   目次   次へ 
   
 

例 - SEAM 以外の KDC を使用するように SEAM クライアントを設定する

SEAM 以外の KDC を使用するように SEAM クライアントを設定することができます。この場合、/etc/krb5/krb5.conf ファイルの realms セクションに、1 行を追加する必要があります。この行を追加すると、クライアントが Kerberos パスワード変更サーバーとの通信に使用するプロトコルが変更されます。この行の書式は次のとおりです。

[realms]
                EXAMPLE.COM = {
                kdc = kdc1.example.com
                kdc = kdc2.example.com
                admin_server = kdc1.example.com
                kpasswd_protocol = SET_CHANGE
        }

NFS ファイルシステムをマウントするように root 認証を設定する

Kerberos 以外の NFS ファイルシステムにアクセスする場合は、root として NFS ファイルシステムをマウントするか、ユーザーがファイルシステムにアクセスしたときにオートマウンタを介して自動的にアクセスできます。後者の場合、root アクセス権は必要ありません。

Kerberos NFS ファイルシステムをマウントする場合もほとんど同じですが、操作が複雑になります。Kerberos NFS ファイルシステムをマウントするには、root として kinit コマンドを使用し、クライアントの root 主体の資格を取得する必要があります。クライアントの root 主体は通常、クライアントのキータブに登録されていないためです。この手順は、オートマウンタが設定されているときでも必要です。また、すべてのユーザーがシステムの root パスワードと root 主体のパスワードを知っている必要があります。

この手順を省略するには、クライアントの root 主体をクライアントのキータブファイルに追加し、root の資格を自動的に与えるようにします。この方法を利用すると、ユーザーは kinit コマンドを実行しなくても NFS ファイルシステムをマウントでき、使いやすさが向上しますが、セキュリティが低下します。たとえば、キータブ内の root 主体を使用してシステムへのアクセス権を取得した場合、root の資格を取得できます。このため、セキュリティ対策を適切に行う必要があります。詳細は、キータブファイルの管理 を参照してください。

KDC と SEAM クライアントのクロックの同期化

Kerberos 認証システムに参加するすべてのホストは、指定した最大時間内で内部クロックを同期化する必要があります (「クロックスキュー」) 。同時に、Kerberos セキュリティを検査することにもなります。参加しているホスト間のクロックスキューが超過すると、クライアントの要求が拒否されます。

アプリケーションサーバーが再実行要求を認識し拒否する目的で、すべての Kerberos プロトコルメッセージをどのくらいの間追跡管理する必要があるかも、クロックスキューで決まります。そのため、クロックスキュー値が長いほど、アプリケーションサーバーが収集する情報も多くなります。

最大クロックスキューのデフォルト値は、300 秒 (5 分) です。このデフォルトは、krb5.conf ファイルの libdefaults セクションで変更できます。


注 - セキュリティ上の理由から、クロックスキュー値は 300 秒より大きくしないでください。


KDC と SEAM クライアント間で同期化したクロックを管理することは重要であるため、NTP ソフトウェアを使用して同期化します。デラウェア大学が作成した NTP パブリックドメインソフトウェアが Solaris 2.6 以降の Solaris ソフトウェアに含まれています。


注 - クロックを同期化するときは、rdate コマンドと cron ジョブを使用することもできます。この方法は、NTP より簡単に使用できます。ただし、ここでは NTP を中心に説明します。ネットワークを使用してクロックを同期化する場合は、クロック同期化プロトコル自体も安全である必要があります。


NTP を使用すると、正確な時間とネットワーククロック同期をネットワーク環境で管理できます。NTP は基本的にはクライアントサーバー実装の状態をとります。1 つのシステムをマスタークロック (NTP サーバー) として指定します。次に、その他のすべてのシステム (NTP クライアント) をマスタークロックと同期するように設定します。

クロックを同期化するために、NTP は xntpd デーモンを使用して、インターネット標準時サーバーに合わせて UNIX システムの時刻を設定および管理します。次の図は、NTP のクライアントサーバー実装の例です。

図 9-1 NTP を使用したクロック同期

NTP サーバーがマスタークロックとなり、NTP クライアントと Kerberos クライアント上が xntpd デーモンを実行しています。

KDC および SEAM クライアントがクロックを同期化するには、次の手順を実行します。

  1. ネットワークに NTP サーバーを設定します。NTP サーバーは、マスター KDC 以外であればどのシステムでも設定できます。NTP サーバーの作業については、『Solaris のシステム管理 (資源管理とネットワークサービス)』の「NTP の管理 (作業)」を参照してださい。

  2. ネットワークの KDC と SEAM クライアントを構成するときに、それらを NTP サーバーの NTP クライアントとして設定します。NTP クライアントの作業については、『Solaris のシステム管理 (資源管理とネットワークサービス)』の「NTP の管理 (作業)」を参照してください。

マスター KDC とスレーブ KDC のスワップ

マスター KDC とスレーブ KDC をスワップするときは、この節で説明する手順を行います。マスター KDC とスレーブ KDC のスワップは、マスター KDC に何らかの理由で障害が発生した場合、またはマスター KDC を再インストールする必要がある場合 (新しいハードウェアをインストールした場合など) にだけ行なってください。

スワップ可能なスレーブ KDC を構成する方法

この手順は、マスター KDC にスワップ可能なスレーブ KDC に対して実行します。

  1. KDC をインストールするときに、マスター KDC およびスワップ可能なスレーブ KDC に対して別名を使用します。

    KDC に対してホスト名を定義するときは、各システムの別名が DNS に登録されている必要があります。/etc/krb5/krb5.conf ファイルにホストを定義するときも、別名を使用します。

  2. 手順に従って、スレーブ KDC をインストールします。

    スワップするサーバーは、レルム内でスレーブ KDC として動作している必要があります。手順については、スレーブ KDC を構成する方法 を参照してください。

  3. マスター KDC コマンドを移動します。

    このスレーブ KDC からマスター KDC コマンドが実行されるのを回避するために、kpropkadmind、および kadmin.local コマンドを予約した場所に移動します。

    kdc4 # mv /usr/lib/krb5/kprop /usr/lib/krb5/kprop.save
    kdc4 # mv /usr/lib/krb5/kadmind /usr/lib/krb5/kadmind.save
    kdc4 # mv /usr/sbin/kadmin.local /usr/sbin/kadmin.local.save
  4. rootcrontab ファイルの kprop 行をコメントにします。

    スレーブ KDC が KDC データベースのコピーを伝播しなくなります。

    kdc4 # crontab -e
    #ident  "@(#)root       1.19    98/07/06 SMI"   /* SVr4.0 1.1.3.1       */
    #
    # root の crontab はアカウントデータ収集を実行するために使用する
    #
    # rtc コマンドは、夏時間を変更する場合に実時間クロックを
    # 調整するために実行する
    #
    10 3 * * 0,4 /etc/cron.d/logchecker
    10 3 * * 0   /usr/lib/newsyslog
    15 3 * * 0 /usr/lib/fs/nfs/nfsfind
    1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c> /dev/null 2>&1
    30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
    #10 3 * * * /usr/lib/krb5kprop_script kdc1.example.sun.com #SUNWkr5ma

マスター KDC とスレーブ KDC をスワップする方法

この手順を実行するには、スレーブ KDC がスワップ可能なスレーブとして設定されている必要があります (スワップ可能なスレーブ KDC を構成する方法 を参照)。この手順では、旧マスター KDC サーバー名は、kdc1 です。新しいマスター KDC となるスレーブ KDC の名前は、kdc4 です。

  1. 旧マスター KDC 上で、kadmind プロセスを終了します。

    kdc1 # /etc/init.d/kdc.master stop

    kadmind プロセスを終了するときは、旧 KDC データベースに対する変更は行わないでください。

  2. 旧マスター KDC 上で、rootcrontab ファイルの kprop 行をコメントにします。

    kdc1 # crontab -e
    #ident  "@(#)root       1.19    98/07/06 SMI"   /* SVr4.0 1.1.3.1       */
    #
    # root の crontab はアカウントデータ収集を実行するために使用する
    #
    # rtc コマンドは、夏時間を変更する場合に実時間クロックを
    # 調整するために実行する
    #
    10 3 * * 0,4 /etc/cron.d/logchecker
    10 3 * * 0   /usr/lib/newsyslog
    15 3 * * 0 /usr/lib/fs/nfs/nfsfind
    1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c> /dev/null 2>&1
    30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
    #10 3 * * * /usr/lib/krb5/kprop_script kdc2.example.sun.com #SUNWkr5ma

    旧マスター KDC が KDC データベースのコピーを伝播しなくなります。

  3. 旧マスター KDC 上で、kprop_script を実行してデータベースをバックアップし、伝播します。

    kdc1 # /usr/lib/krb5/kprop_script kdc4.example.com
    Database propagation to kdc4.example.com: SUCCEEDED
  4. 旧マスター KDC 上で、マスター KDC コマンドを移動します。

    マスター KDC コマンドが実行されるのを回避するために、kpropkadmind、および kadmin.local コマンドを予約した場所に移動します。

    kdc4 # mv /usr/lib/krb5/kprop /usr/lib/krb5/kprop.save
    kdc4 # mv /usr/lib/krb5/kadmind /usr/lib/krb5/kadmind.save
    kdc4 # mv /usr/sbin/kadmin.local /usr/sbin/kadmin.local.save
    kdc4 # mv /etc/krb5/kadm5.acl /etc/krb5/kadm5.acl.save
  5. DNS サーバー上で、マスター KDC の別名を変更します。

    サーバーを変更するために、example.com ゾーンファイルを編集して masterkdc のエントリを変更します。

    masterkdc IN CNAME kdc4
  6. DNS サーバー上で、インターネットドメインネームサーバーを再起動します。

    両方のサーバー上で次のコマンドを実行して、新しい別名情報を取得します。

    # pkill -1 in.named
  7. 新しいマスター KDC 上で、マスター KDC コマンドを移動します。

    kdc4 # mv /usr/lib/krb5/kprop.save /usr/lib/krb5/kprop
    kdc4 # mv /usr/lib/krb5/kadmind.save /usr/lib/krb5/kadmind
    kdc4 # mv /usr/sbin/kadmin.local.save /usr/sbin/kadmin.local
  8. 新しいマスター KDC 上で、Kerberos アクセス制御リストファイル ( kadm5.acl) を編集します。

    /etc/krb5/kadm5.acl ファイルには、KDC を管理できる主体名がすべて含まれている必要があります。最初のエントリは、次のようになります。

    kws/admin@EXAMPLE.COM   *

    このエントリにより、 EXAMPLE.COM レルム内の kws/admin 主体に対して、KDC 内の主体またはポリシーを変更する機能が与えられます。デフォルトのインストールでは、アスタリスク (*) が指定され、すべての admin 主体に変更権限が与えられます。アスタリスクを指定すると、セキュリティが低下する可能性があります。admin 主体をすべて指定すれば、セキュリティが向上します。詳細は、kadm5.acl(4) のマニュアルページを参照してください。

  9. 新しいマスター KDC 上で、kadmin.local を使用して kadmin のキータブファイルを作成します。

    このコマンドシーケンスは、admin および changepw 主体のエントリを格納するためのキータブを作成します。これらの主体は、kadmind サービスに必要です。

    kdc4 # /usr/sbin/kadmin.local
    kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc4.example.com
    Entry for principal kadmin/kdc4.example.com with kvno 3, encryption type DES-CBC-CRC
              added to keytab WRFILE:/etc/krb5/kadm5.keytab.
    kadmin.local: ktadd -k /etc/krb5/kadm5.keytab changepw/kdc4.example.com
    Entry for principal changepw/kdc4.example.com with kvno 3, encryption type DES-CBC-CRC 
              added to keytab WRFILE:/etc/krb5/kadm5.keytab.
    kadmin.local: quit
  10. 新しいマスター KDC 上で、kadmind を起動します。

    kdc4 # /etc/init.d/kdc.master start
  11. rootcrontab ファイル内の kprop 行を有効にします。

    kdc4 # crontab -e
    #ident  "@(#)root       1.19    98/07/06 SMI"   /* SVr4.0 1.1.3.1       */
    #
    # root の crontab はアカウントデータ収集を実行するために使用する
    #
    # rtc コマンドは、夏時間を変更する場合に実時間クロックを
    # 調整するために実行する
    #
    10 3 * * 0,4 /etc/cron.d/logchecker
    10 3 * * 0   /usr/lib/newsyslog
    15 3 * * 0 /usr/lib/fs/nfs/nfsfind
    1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c> /dev/null 2>&1
    30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
    10 3 * * * /usr/lib/krb5/kprop_script kdc1.example.sun.com #SUNWkr5ma
 
 
 
  戻る   目次   次へ