Sun Enterprise Authentication Mechanism 1.0.1 ガイド

マスター KDC を構成するには

事前構成手順を使用しない場合の、一連の構成手順を説明します。。ソフトウェアをインストールするときに事前構成手順を使用した場合、この手順に含まれる多くのファイルは編集する必要がありません。しかし、ファイルの内容は確認してください。

この手順では、次の構成パラメータを使用します。

  1. マスター KDC を構成するための前提条件

    この手順では、マスター KDC ソフトウェアがインストールされている必要があります。さらに、DNS が実行されていなければなりません。マスター KDC を切り替え可能にする命名方法については、「マスター KDC とスレーブ KDC の切り替え」を参照してください。

  2. マスター KDC 上でスーパーユーザーになります。

  3. Kerberos 構成ファイル (krb5.conf) を編集します。

    レルム名とサーバー名を変更する必要があります。このファイルの説明については、krb5.conf(4) のマニュアルページを参照してください。構成ファイルを使用して SEAM ソフトウェアをインストールした場合、ファイルの内容を編集せず、確認だけしてください。


    kdc1 # cat /etc/krb5/krb5.conf
    [libdefaults]
            default_realm = ACME.COM
     
    [realms]
                    ACME.COM = {
                    kdc = kdc1.acme.com
                    kdc = kdc2.acme.com
                    admin_server = kdc1.acme.com
            }
     
    [domain_realm]
            .acme.com = ACME.COM
    #
    # ドメイン名とレルム名が同じ場合、このエントリは必要ない。
    #
    [logging]
            default = FILE:/var/krb5/kdc.log
    
            kdc = FILE:/var/krb5/kdc.log
     
    [appdefaults]
            gkadmin = {
                    help_url = //denver/ab2/coll.384.1/SEAM/@AB2PageView/6956
            }

    この例では、domain_realmkdcadmin_server、およびすべての domain_realm のエントリが変更されています。レルム名とドメイン名が同じ場合、domain_realm の行はインストールプロセスでは作成されませんが、ここでは必要な場合の例として入れてあります。さらに、help_url を定義する行は編集されています。

  4. KDC 構成ファイル (kdc.conf) を編集します。

    レルム名を変更する必要があります。このファイルの説明については、kdc.conf(4) のマニュアルページを参照してください。構成ファイルを使用して SEAM ソフトウェアをインストールした場合、ファイルの内容を編集せず、確認だけしてください。


    kdc1 # cat /etc/krb5/kdc.conf
    [kdcdefaults]
            kdc_ports = 88,750
     
    [realms]
            ACME.COM= {
                    profile = /etc/krb5/krb5.conf
                    database_name = /var/krb5/principal
                    admin_keytab = /var/krb5/kadm5.keytab
                    acl_file = /var/krb5/kadm5.acl
                    kadmind_port = 749
                    max_life = 8h 0m 0s
                    max_renewable_life = 7d 0h 0m 0s
            }

    この例では、realms セクションのレルム名定義が変更されています。

  5. kdb5_util を使用して、KDC データベースを作成します。

    kdb5_util コマンドは KDC データベースを作成します。さらに、-s オプションを指定すると、kadmindkrb5kdc のデーモンを起動する前に、自分自身に対して KDC を認証するための stash ファイルを作成します。


    kdc1 # /usr/krb5/sbin/kdb5_util create -r ACME.COM -s
    Initializing database '/var/krb5/principal' for realm 'ACME.COM'
    master key name 'K/M@ACME.COM'
    You will be prompted for the database Master Password.
    It is important that you NOT FORGET this password.
    Enter KDC database master key: <鍵を入力する>
    	Re-enter KDC database master key to verify: <もう一度鍵を入力する>
    

    レルム名がサーバーのネームスペースのドメイン名と同じ場合、レルム名の後にある -r オプションは必要ありません。

  6. Kerberos アクセス制御リストファイル (kadm5.acl) を編集します。

    /etc/krb5/kadm5.acl には、生成後、KDC を管理することが許可されたすべてのプリンシパル名が必要です。追加する最初のエントリは次のようになります。


    kws/admin@ACME.COM   *

    このエントリは ACME.COM レルム内の kws/admin プリンシパルに、KDC 内のプリンシパルまたはポリシーを変更する機能を与えます。デフォルトのインストールでは、すべての admin プリンシパルに一致する「*」が入っています。これはセキュリティの観点から危険であるため、すべての admin プリンシパルのリストに変更する方が安全です。

  7. kadmin.local を起動します。

    次の手順では、SEAM が使用するプリンシパルを作成します。


    kdc1 # /usr/krb5/sbin/kadmin.local
    kadmin.local: 
    1. kadmin.local を使用して、admin プリンシパルをデータベースに追加します。

      必要なすべての admin プリンシパルを追加できます。KDC 構成プロセスを完了するには、少なくとも 1 つの admin プリンシパルを追加する必要があります。この例では、kws/admin プリンシパルが追加されています。「kws」の代わりに適切なプリンシパル名を使用してください。


      kadmin.local: addprinc kws/admin
      Enter password for principal kws/admin@ACME.COM: <パスワードを入力する>
      Re-enter password for principal kws/admin@ACME.COM: <もう一度パスワードを入力する>
      Principal "kws/admin@ACME.COM" created.
      kadmin.local: 
    2. kadmin.local を使用して、kadmin 用に keytab ファイルを作成します。

      次のコマンドは、kadminchangepw のプリンシパルエントリを持つ特別な keytab ファイルを作成します。これらのプリンシパルは kadmind サービスに必要です。


      kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc1.acme.com
      Entry for principal kadmin/kdc1.acme.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/kdc1.acme.com
      Entry for principal changepw/kdc1.acme.com with kvno 3, encryption type DES-CBC-CRC 
                added to keytab WRFILE:/etc/krb5/kadm5.keytab.
      kadmin.local: 
    3. kadmin.local を終了します。

      これで、次の手順に必要なすべてのプリンシパルを追加しました。


      kadmin.local: quit
      
  8. Kerberos デーモンを起動します。


    kdc1 # /etc/init.d/kdc start
    kdc1 # /etc/init.d/kdc.master start
    
  9. kadmin を起動します。

    この時点で、SEAM 管理ツールを使用してプリンシパルを追加できます。説明を簡単にするために、コマンド行の例を示します。この手順の前半で作成した admin プリンシパル名の 1 つでログインする必要があります。


    kdc1 # /usr/krb5/sbin/kadmin -p kws/admin
    Enter password: <kws/admin のパスワードを入力する>
    kadmin: 
    1. kadmin を使用して、マスター KDC の host プリンシパルを作成します。

      host プリンシパルは Kerberos 化されたアプリケーション (klistkprop など) と Kerberos 化されたサービス (ftptelnet など) で使用されます。


      kadmin: addprinc -randkey host/kdc1.acme.com
      Principal "host/kdc1.acme.com@ACME.COM" created.
      kadmin: 
    2. 省略可能: kadmin を使用して、マスター KDC の root プリンシパルを作成します。

      このプリンシパルは認証された NFS マウントで使用されます。したがって、マスター KDC では必要ない場合もあります。


      kadmin: addprinc root/kdc1.acme.com
      Enter password for principal root/kdc1.acme.com@ACME.COM: <パスワードを入力する>
      Re-enter password for principal root/kdc1.acme.com@ACME.COM: <パスワードをもう一度入力する>
      Principal "root/kdc1.acme.com@ACME.COM" created.
      kadmin: 
    3. マスター KDC の host プリンシパルをマスター KDC の keytab ファイルに追加します。

      host プリンシパルを keytab ファイルに追加することによって、このプリンシパルが自動的に使用されるようになります。


      kadmin: ktadd host/kdc1.acme.com
      kadmin: Entry for principal host/kdc1.acme.com with
        kvno 3, encryption type DES-CBC-CRC added to keytab
        WRFILE:/etc/krb5/krb5.keytab
      kadmin: quit
      
    4. kadmin を終了します。


      kadmin: quit
      
  10. 各 KDC のエントリを伝達構成ファイル (kpropd.acl) に追加します。

    このファイルの説明については、kprop(1M) のマニュアルページを参照してください。構成ファイルを使用して SEAM ソフトウェアをインストールした場合、ファイルの内容を編集せず、確認だけしてください。


    kdc1 # cat /etc/krb5/kpropd.acl
    host/kdc1.acme.com@ACME.COM
    host/kdc2.acme.com@ACME.COM
  11. 省略可能: NTP などのクロック同期機構を使用して、マスター KDC のクロックを同期させます。

    NTP をインストールおよび使用することは必須ではありません。しかし、認証が成功するには、すべてのクロックが krb5.conf ファイルの libdefaults セクションで定義されたデフォルトの時間内に収まっている必要があります。NTP については、「KDC と SEAM クライアント間のクロックの同期」を参照してください。