JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris の管理: セキュリティーサービス     Oracle Solaris 11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

パート I セキュリティーの概要

1.  セキュリティーサービス (概要)

パート II システム、ファイル、およびデバイスのセキュリティー

2.  マシンセキュリティーの管理 (概要)

3.  システムアクセスの制御 (タスク)

4.  ウイルススキャンサービス (タスク)

5.  デバイスアクセスの制御 (タスク)

6.  基本監査報告機能の使用方法 (タスク)

7.  ファイルアクセスの制御 (タスク)

パート III 役割、権利プロファイル、特権

8.  役割と特権の使用 (概要)

9.  役割に基づくアクセス制御の使用 (タスク)

10.  Oracle Solaris のセキュリティー属性 (参照)

パート IV 暗号化サービス

11.  暗号化フレームワーク (概要)

12.  暗号化フレームワーク (タスク)

13.  鍵管理フレームワーク

パート V 認証サービスと安全な通信

14.  ネットワークサービスの認証 (タスク)

15.  PAM の使用

16.  SASL の使用

17.  Secure Shell の使用 (タスク)

18.  Secure Shell (参照)

パート VI Kerberos サービス

19.  Kerberos サービスについて

20.  Kerberos サービスの計画

21.  Kerberos サービスの構成 (タスク)

Kerberos サービスの構成 (タスクマップ)

追加の Kerberos サービスの構成 (タスクマップ)

KDC サーバーの構成

マスター KDC を自動的に構成する方法

マスター KDC を対話的に構成する方法

マスター KDC を手動で構成する方法

LDAP データサーバーを使用するように KDC を構成する方法

スレーブ KDC を自動的に構成する方法

スレーブ KDC を対話的に構成する方法

スレーブ KDC を手動で構成する方法

マスターサーバー上でチケット認可サービス鍵を更新する方法

レルム間認証の構成

階層関係のレルム間認証を設定する方法

直接接続のレルム間認証を確立する方法

Kerberos ネットワークアプリケーションサーバーの構成

Kerberos ネットワークアプリケーションサーバーを構成する方法

FTP の実行時に Generic Security Service を Kerberos とともに使用する方法

Kerberos NFS サーバーの構成

Kerberos NFS サーバーを構成する方法

資格テーブルを作成する方法

資格テーブルに 1 つのエントリを追加する方法

レルム間の資格マッピングを提供する方法

複数の Kerberos セキュリティーモードで安全な NFS 環境を設定する方法

Kerberos クライアントの構成

Kerberos クライアントの構成 (タスクマップ)

Kerberos クライアントのインストールプロファイルの作成方法

Kerberos クライアントを自動的に構成する方法

Kerberos クライアントを対話的に構成する方法

Active Directory サーバー用に Kerberos クライアントを構成する方法

Kerberos クライアントを手動で構成する方法

チケット認可チケットの確認を無効にする方法

Kerberos によって保護された NFS ファイルシステムに root ユーザーとしてアクセスする方法

Kerberos レルム内のユーザーを自動的に移行するように構成する方法

アカウントロックアウトを構成する方法

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

マスター KDC とスレーブ KDC の入れ替え

入れ替え可能なスレーブ KDC を構成する方法

マスター KDC とスレーブ KDC を入れ替えする方法

Kerberos データベースの管理

Kerberos データベースのバックアップと伝播

kpropd.acl ファイル

kprop_script コマンド

Kerberos データベースをバックアップする方法

Kerberos データベースを復元する方法

サーバーのアップグレード後に Kerberos データベースを変換する方法

マスター KDC を再構成して増分伝播を使用する方法

スレーブ KDC を再構成して増分伝播を使用する方法

完全伝播を使用するようにスレーブ KDC を構成する方法

KDC サーバーが同期しているかを検査する方法

Kerberos データベースをスレーブ KDC に手動で伝播する方法

並列伝播の設定

並列伝播を設定するための構成手順

stash ファイルの管理

stash ファイルを削除する方法

新しいマスター鍵を使用する方法

LDAP ディレクトリサーバーでの KDC の管理

Kerberos 主体属性を Kerberos 以外のオブジェクトクラス型に結び付ける方法

LDAP ディレクトリサーバーでレルムを破棄する方法

Kerberos サーバー上のセキュリティーの強化

Kerberos アプリケーションのみを有効にする方法

KDC サーバーへのアクセスを制限する方法

辞書ファイルを使用してパスワードセキュリティーを強化する方法

22.  Kerberos エラーメッセージとトラブルシューティング

23.  Kerberos 主体とポリシーの管理 (タスク)

24.  Kerberos アプリケーションの使用 (タスク)

25.  Kerberos サービス (参照)

パート VII Oracle Solaris での監査

26.  監査 (概要)

27.  監査の計画

28.  監査の管理 (タスク)

29.  監査 (参照)

用語集

索引

KDC サーバーの構成

Kerberos ソフトウェアをインストールしたあと、KDC サーバーを構成する必要があります。資格を発行するには、1 つのマスター KDC と 1 つ以上のスレーブ KDC を構成する必要があります。KDC が発行する資格は、Kerberos サービスの基本要素であるため、KDC をインストールしないと、ほかのタスクを行うことはできません。

マスター KDC とスレーブ KDC のもっとも大きな違いは、マスター KDC のみがデータベース管理要求を処理できることです。たとえば、パスワードの変更や新しい主体の追加は、マスター KDC で行います。これらの変更は、スレーブ KDC に伝播されます。資格の生成は、スレーブ KDC とマスター KDC が行います。この機能は、マスター KDC が応答できない場合に、冗長性を確保します。

表 21-1 KDC サーバーの構成 (タスクマップ)

タスク
説明
参照先
マスター KDC を構成します。
スクリプトに適した自動のプロセスを使用して、レルムにマスター KDC サーバーとデータベースを構成および構築します。
ほとんどのインストールにとっては十分な対話型のプロセスを使用して、レルムにマスター KDC サーバーとデータベースを構成および構築します
より複雑なインストールに必要な手動のプロセスを使用して、レルムにマスター KDC サーバーとデータベースを構成および構築します。
手動のプロセスを使用し、さらに KDC 用に LDAP を使用して、レルムにマスター KDC サーバーとデータベースを構成および構築します。
スレーブ KDC を構成します。
スクリプトに適した自動のプロセスを使用して、レルムにスレーブ KDC サーバーを構成および構築します
ほとんどのインストールにとっては十分な対話型のプロセスを使用して、レルムにスレーブ KDC サーバーを構成および構築します
より複雑なインストールに必要な手動のプロセスを使用して、レルムにスレーブ KDC サーバーを構成および構築します。
KDC サーバー上の主体鍵を更新します。
新しい暗号化タイプを使用して KDC サーバー上のセッション鍵を更新します。

マスター KDC を自動的に構成する方法

Oracle Solaris 11 リリースでは、次の手順を使用するとマスター KDC を自動的に構成できます。

  1. 管理者になるか、Kerberos Server Management プロファイルに割り当てられている役割またはユーザー名になります。

    詳細は、「管理権限を取得する方法」を参照してください。

  2. KDC を作成します。

    kdcmgr ユーティリティーを実行して KDC を作成します。マスター鍵のパスワードと管理主体のパスワードの両方を指定する必要があります。

    kdc1# kdcmgr -a kws/admin -r EXAMPLE.COM create master
    
    Starting server setup
    ---------------------------------------
    
    Setting up /etc/krb5/kdc.conf
    
    Setting up /etc/krb5/krb5.conf
    
    Initializing database '/var/krb5/principal' for realm 'EXAMPLE.COM', 
    master key name 'K/M@EXAMPLE.COM' 
    You will be prompted for the database Master Password. 
    It is important that you NOT FORGET this password. 
    Enter KDC database master key: <Type the password>
    Re-enter KDC database master key to verify: <Type it again>
    
    Authenticating as principal root/admin@EXAMPLE.COM with password. 
    WARNING: no policy specified for kws/admin@EXAMPLE.COM; defaulting to no policy 
    Enter password for principal "kws/admin@EXAMPLE.COM": <Type the password>
    Re-enter password for principal "kws/admin@EXAMPLE.COM": <Type it again>
    Principal "kws/admin@EXAMPLE.COM" created. 
    
    Setting up /etc/krb5/kadm5.acl. 
    
    --------------------------------------------------- 
    Setup COMPLETE. 
    
    kdc1#

マスター KDC を対話的に構成する方法

Oracle Solaris リリースでは、次の手順を使用するとマスター KDC を対話形式で構成できます。

  1. 管理者になるか、Kerberos Server Management プロファイルに割り当てられている役割またはユーザー名になります。

    詳細は、「管理権限を取得する方法」を参照してください。

  2. KDC を作成します。

    kdcmgr ユーティリティーを実行して KDC を作成します。マスター鍵のパスワードと管理主体のパスワードの両方を指定する必要があります。

    kdc1# kdcmgr create master
    
    Starting server setup
    ---------------------------------------
    
    Enter the Kerberos realm: EXAMPLE.COM
    
    Setting up /etc/krb5/kdc.conf
    
    Setting up /etc/krb5/krb5.conf
    
    Initializing database '/var/krb5/principal' for realm 'EXAMPLE.COM', 
    master key name 'K/M@EXAMPLE.COM' 
    You will be prompted for the database Master Password. 
    It is important that you NOT FORGET this password. 
    Enter KDC database master key: <Type the password>
    Re-enter KDC database master key to verify: <Type it again>
    
    Enter the krb5 administrative principal to be created: kws/admin
    
    Authenticating as principal root/admin@EXAMPLE.COM with password. 
    WARNING: no policy specified for kws/admin@EXAMPLE.COM; defaulting to no policy 
    Enter password for principal "kws/admin@EXAMPLE.COM": <Type the password>
    Re-enter password for principal "kws/admin@EXAMPLE.COM": <Type it again>
    Principal "kws/admin@EXAMPLE.COM" created. 
    
    Setting up /etc/krb5/kadm5.acl. 
    
    --------------------------------------------------- 
    Setup COMPLETE. 
    
    kdc1#

例 21-1 KDC サーバーのステータスの表示

kdcmgr status コマンドを使用すると、マスター KDC サーバーまたはスレーブ KDC サーバーのどちらかに関する情報を表示できます。

マスター KDC を手動で構成する方法

この手順では、増分伝播を構成します。さらに、次の構成パラメータを使用します。

始める前に

この手順を実行するには、ホストが DNS を使用するように構成されている必要があります。マスター KDC を入れ替え可能にする場合の手順については、「マスター KDC とスレーブ KDC の入れ替え」を参照してください。

  1. マスター KDC 上でスーパーユーザーになります。
  2. Kerberos 構成ファイル (krb5.conf) を編集します。

    レルム名とサーバー名を変更する必要があります。このファイルの詳細は、krb5.conf(4) のマニュアルページを参照してください。

    kdc1 # cat /etc/krb5/krb5.conf
    [libdefaults]
            default_realm = EXAMPLE.COM
    
    [realms]
            EXAMPLE.COM = {
            kdc = kdc1.example.com
            admin_server = kdc1.example.com
            }
    
    [domain_realm]
            .example.com = EXAMPLE.COM
    #
    # if the domain name and realm name are equivalent, 
    # this entry is not needed
    #
    [logging]
            default = FILE:/var/krb5/kdc.log
            kdc = FILE:/var/krb5/kdc.log
    
    [appdefaults]
        gkadmin = {
            help_url = http://download.oracle.com/docs/cd/E23824_01/html/821-1456/aadmin-23.html
            }

    この例では、default_realmkdcadmin_server、およびすべての domain_realm エントリの行を変更しました。また、help_url を定義する行を編集しました。


    注 - 暗号化タイプを制限する場合は、default_tkt_enctypes または default_tgs_enctypes の行を設定します。暗号化タイプの制限に関する詳細は、「Kerberos 暗号化タイプの使用」を参照してください。


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

    レルム名を変更する必要があります。このファイルの詳細は、kdc.conf(4) のマニュアルページを参照してください。

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

    この例では、realms セクションのレルム名定義を変更しました。また、realms セクションで、増分伝播できるようにする行とログ内に保持する KDC マスターの更新数を選択する行を追加しました。


    注 - 暗号化タイプを制限する場合は、permitted_enctypessupported_enctypes、または master_key_type の行を設定します。暗号化タイプの制限に関する詳細は、「Kerberos 暗号化タイプの使用」を参照してください。


  4. kdb5_util コマンドを使用して、KDC データベースを作成します。

    kdb5_util は、KDC データベースを作成するコマンドです。-s オプションを指定すると、kadmindkrb5kdc デーモンが起動する前に、KDC の認証に使用される stash ファイルが作成されます。

    kdc1 # /usr/sbin/kdb5_util create -s
    Initializing database '/var/krb5/principal' for realm 'EXAMPLE.COM'
    master key name 'K/M@EXAMPLE.COM'
    You will be prompted for the database Master Password.
    It is important that you NOT FORGET this password.
    Enter KDC database master key: <Type the key>
    Re-enter KDC database master key to verify: <Type it again>
  5. Kerberos アクセス制御リストファイル (kadm5.acl) を編集します。

    作成された /etc/krb5/kadm5.acl ファイルには、KDC を管理できる主体名がすべて含まれている必要があります。

    kws/admin@EXAMPLE.COM   *

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

  6. kadmin.local コマンドを起動し、主体を追加します。

    次の手順では、Kerberos サービスで使用される主体を作成します。

    kdc1 # /usr/sbin/kadmin.local
    kadmin.local: 
    1. データベースに管理主体を追加します。

      必要な数の admin 主体を追加できます。KDC 構成処理を完了するには、1 つ以上の admin 主体を追加する必要があります。この例では、kws/admin 主体を追加します。「kws」の代わりに、適切な主体名で置き換えてください。

      kadmin.local: addprinc kws/admin
      Enter password for principal kws/admin@EXAMPLE.COM:<Type the password>
      Re-enter password for principal kws/admin@EXAMPLE.COM: <Type it again>
      Principal "kws/admin@EXAMPLE.COM" created.
      kadmin.local: 
    2. kiprop 主体を作成します。

      kiprop 主体はマスター KDC からの更新の承認に使用されます。

      kadmin.local: addprinc -randkey kiprop/kdc1.example.com
      Principal "kiprop/kdc1.example.com@EXAMPLE.COM" created.
      kadmin.local:
    3. kadmin.local を終了します。

      以降の手順で必要になる主体をすべて追加しました。

      kadmin.local: quit
  7. Kerberos デーモンを起動します。
    kdc1 # svcadm enable -r network/security/krb5kdc
    kdc1 # svcadm enable -r network/security/kadmin
  8. kadmin を起動して、主体をさらに追加します。

    この時点で、Kerberos グラフィカル管理ツールを使用して、主体を追加できます。追加するには、上記の手順で作成した admin 主体名を使用してログインする必要があります。ただし、次のコマンド行の例では、簡略化されています。

    kdc1 # /usr/sbin/kadmin -p kws/admin
    Enter password: <Type kws/admin password>
    kadmin: 
    1. マスター KDC の host 主体を作成します。

      ホスト主体は、変更をスレーブ KDC に伝播するために、kprop などの Kerberos アプリケーションで使用されます。この主体はまた、ssh などのアプリケーションを使用して、KDC サーバーにセキュリティー保護されたリモートアクセスを提供するためにも使用されます。主体のインスタンスがホスト名のときは、ネームサービス内のドメイン名が大文字であるか小文字であるかに関係なく、FQDN は小文字で指定する必要があります。

      kadmin: addprinc -randkey host/kdc1.example.com
      Principal "host/kdc1.example.com@EXAMPLE.COM" created.
      kadmin: 
    2. (省略可能) kclient 主体を作成します。

      この主体は、Kerberos クライアントのインストール中に kclient ユーティリティーで使用されます。このユーティリティーを使用しない場合は、主体に追加する必要はありません。kclient ユーティリティーのユーザーは、このパスワードを使用する必要があります。

      kadmin: addprinc clntconfig/admin
      Enter password for principal clntconfig/admin@EXAMPLE.COM:<Type the password>
      Re-enter password for principal clntconfig/admin@EXAMPLE.COM: <Type it again>
      Principal "clntconfig/admin@EXAMPLE.COM" created.
      kadmin: 
    3. マスター KDC のキータブファイルにマスター KDC の host 主体を追加します。

      キータブファイルにホスト主体を追加すると、sshd などのアプリケーションサーバーによってこの主体が自動的に使用されるようになります。

      kadmin: ktadd host/kdc1.example.com
      Entry for principal host/kdc1.example.com with kvno 3, encryption type AES-256 CTS mode
                with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc1.example.com with kvno 3, encryption type AES-128 CTS mode
                with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc1.example.com with kvno 3, encryption type Triple DES cbc
                mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc1.example.com with kvno 3, encryption type ArcFour
                with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc1.example.com with kvno 3, encryption type DES cbc mode
                with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    4. kadmin を終了します。
      kadmin: quit
  9. (省略可能) NTP などのクロック同期メカニズムを使用して、マスター KDC のクロックを同期化します。

    Network Time Protocol (NTP) のインストールと使用は必要はありません。ただし、認証が正常終了するには、すべてのクロックが krb5.conf ファイルの libdefaults セクションに定義されているデフォルト時間内に収まるようにする必要があります。NTP については、「KDC と Kerberos クライアントのクロックの同期化」を参照してください。

  10. スレーブ KDC の構成

    冗長性を提供するには、スレーブ KDC を必ず 1 つ以上インストールするようにしてください。手順については、「スレーブ KDC を手動で構成する方法」を参照してください。

LDAP データサーバーを使用するように KDC を構成する方法

LDAP データサーバーを使用するように KDC を構成するには、次の手順を使用します。

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

始める前に

この手順を実行する場合も、ホストが DNS を使用するように構成されている必要があります。パフォーマンスを向上させるためには、KDC と LDAP ディレクトリサービスを同じサーバーにインストールしてください。さらに、ディレクトリサーバーも稼働させるようにしてください。次の手順は、Sun Directory Server Enterprise Edition 7.0 リリースを使用しているサーバーで機能します。

  1. KDC 上でスーパーユーザーになります。
  2. SSL を使用してディレクトリサーバーに接続するようにマスター KDC を構成します。

    次の手順では、Directory Server 自己署名付き証明書を使用するように Oracle Solaris リリースの KDC を構成します。証明書の期限が切れている場合は、「「To Manage Self-Signed Certificates」」の手順に従って証明書を更新してください。

    1. ディレクトリサーバーで、自己署名付きのディレクトリサーバー証明書をエクスポートします。
      # /export/sun-ds6.1/ds6/bin/dsadm show-cert -F der /export/sun-ds6.1/directory2 \ defaultCert > /tmp/defaultCert.cert.der
    2. マスター KDC で、そのディレクトリサーバー証明書をインポートします。
      # pktool setpin keystore=nss dir=/var/ldap
      # chmod a+r /var/ldap/*.db
      # pktool import keystore=nss objtype=cert trust="CT" infile=/tmp/defaultCert.certutil.der \
              label=defaultCert dir=/var/ldap
    3. マスター KDC で、SSL が機能していることをテストします。

      この例では、cn=directory manager エントリに管理権限が付与されているものとします。

      /usr/bin/ldapsearch -Z -P /var/ldap -D "cn=directory manager" \ -h dsserver.example.com -b "" -s base objectclass='*'
      Subject:
          "CN=dsserver.example.com,CN=636,CN=Directory Server,O=Example Corporation

      CN=dsserver.example.com エントリに、短縮版ではなく完全修飾ホスト名が含まれているはずです。

  3. 必要に応じて、LDAP ディレクトリにデータを設定します。
  4. 既存のスキーマに Kerberos スキーマを追加します。
    # ldapmodify -h dsserver.example.com -D "cn=directory manager" -f /usr/share/lib/ldif/kerberos.ldif
  5. LDAP ディレクトリ内に Kerberos コンテナを作成します。

    krb5.conf ファイルに次のエントリを追加します。

    1. データベースの種類を定義します。

      realms セクションに database_module を定義するエントリを追加します。

      database_module = LDAP
    2. データベースのモジュールを定義します。
      [dbmodules] LDAP = { ldap_kerberos_container_dn = "cn=krbcontainer,dc=example,dc=com" db_library = kldap ldap_kdc_dn = "cn=kdc service,ou=profile,dc=example,dc=com" ldap_kadmind_dn = "cn=kadmin service,ou=profile,dc=example,dc=com" ldap_cert_path = /var/ldap ldap_servers = ldaps://dsserver.example.com }
    3. LDAP ディレクトリ内に KDC を作成します。

      このコマンドによって、krbcontainer とその他のいくつかのオブジェクトが作成されます。また、/var/krb5/.k5.EXAMPLE.COM マスター鍵の stash ファイルも作成されます。

      # kdb5_ldap_util -D "cn=directory manager" create -P abcd1234 -r EXAMPLE.COM -s
  6. KDC のバインド識別名 (DN) のパスワードを隠します。

    これらのパスワードは、DS にバインドするときに KDC によって使用されます。KDC は、その KDC が使用しているアクセスの種類に応じて異なる役割を使用します。

    # kdb5_ldap_util stashsrvpw "cn=kdc service,ou=profile,dc=example,dc=com"
    # kdb5_ldap_util stashsrvpw "cn=kadmin service,ou=profile,dc=example,dc=com"
  7. KDC サービスの役割を追加します。
    1. 次に示すような内容を含む kdc_roles.ldif ファイルを作成します。
      dn: cn=kdc service,ou=profile,dc=example,dc=com
      cn: kdc service
      sn: kdc service
      objectclass: top
      objectclass: person
      userpassword: test123
      
      dn: cn=kadmin service,ou=profile,dc=example,dc=com
      cn: kadmin service
      sn: kadmin service
      objectclass: top
      objectclass: person
      userpassword: test123
    2. LDAP ディレクトリ内に役割のエントリを作成します。
      # ldapmodify -a -h dsserver.example.com -D "cn=directory manager" -f kdc_roles.ldif
  8. KDC に関連する役割の ACL を設定します。
    # cat << EOF | ldapmodify -h dsserver.example.com -D "cn=directory manager" 
    # Set kadmin ACL for everything under krbcontainer.
    dn: cn=krbcontainer,dc=example,dc=com
    changetype: modify
    add: aci
    aci: (target="ldap:///cn=krbcontainer,dc=example,dc=com")(targetattr="krb*")(version 3.0;\
          acl kadmin_ACL; allow (all)\
          userdn = "ldap:///cn=kadmin service,ou=profile,dc=example,dc=com";)
    
    # Set kadmin ACL for everything under the people subtree if there are
    # mix-in entries for krb princs:
    dn: ou=people,dc=example,dc=com
    changetype: modify
    add: aci
    aci: (target="ldap:///ou=people,dc=example,dc=com")(targetattr="krb*")(version 3.0;\
          acl kadmin_ACL; allow (all)\
          userdn = "ldap:///cn=kadmin service,ou=profile,dc=example,dc=com";)
    EOF
  9. Kerberos 構成ファイル (krb5.conf) を編集します。

    レルム名とサーバー名を変更する必要があります。このファイルの詳細は、krb5.conf(4) のマニュアルページを参照してください。

    kdc1 # cat /etc/krb5/krb5.conf
    [libdefaults]
            default_realm = EXAMPLE.COM
    
    [realms]
            EXAMPLE.COM = {
            kdc = kdc1.example.com
            admin_server = kdc1.example.com
            }
    
    [domain_realm]
            .example.com = EXAMPLE.COM
    #
    # if the domain name and realm name are equivalent, 
    # this entry is not needed
    #
    [logging]
            default = FILE:/var/krb5/kdc.log
            kdc = FILE:/var/krb5/kdc.log
    
    [appdefaults]
        gkadmin = {
            help_url = http://download.oracle.com/docs/cd/E23824_01/html/821-1456/aadmin-23.html
            }

    この例では、default_realmkdcadmin_server、およびすべての domain_realm エントリの行を変更しました。また、help_url を定義する行を編集しました。


    注 - 暗号化タイプを制限する場合は、default_tkt_enctypes または default_tgs_enctypes の行を設定します。暗号化タイプの制限に関する詳細は、「Kerberos 暗号化タイプの使用」を参照してください。


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

    レルム名を変更する必要があります。このファイルの詳細は、kdc.conf(4) のマニュアルページを参照してください。

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

    この例では、realms セクションのレルム名定義を変更しました。また、realms セクションで、増分伝播できるようにする行とログ内に保持する KDC マスターの更新数を選択する行を追加しました。


    注 - 暗号化タイプを制限する場合は、permitted_enctypessupported_enctypes、または master_key_type の行を設定します。暗号化タイプの制限に関する詳細は、「Kerberos 暗号化タイプの使用」を参照してください。


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

    作成された /etc/krb5/kadm5.acl ファイルには、KDC を管理できる主体名がすべて含まれている必要があります。

    kws/admin@EXAMPLE.COM   *

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

  12. kadmin.local コマンドを起動し、主体を追加します。

    次の手順では、Kerberos サービスで使用される主体を作成します。

    kdc1 # /usr/sbin/kadmin.local
    kadmin.local: 
    1. データベースに管理主体を追加します。

      必要な数の admin 主体を追加できます。KDC 構成処理を完了するには、1 つ以上の admin 主体を追加する必要があります。この例では、kws/admin 主体を追加します。「kws」の代わりに、適切な主体名で置き換えてください。

      kadmin.local: addprinc kws/admin
      Enter password for principal kws/admin@EXAMPLE.COM:<Type the password>
      Re-enter password for principal kws/admin@EXAMPLE.COM: <Type it again>
      Principal "kws/admin@EXAMPLE.COM" created.
      kadmin.local: 
    2. kadmin.local を終了します。

      以降の手順で必要になる主体をすべて追加しました。

      kadmin.local: quit
  13. (省略可能) Kerberos サービスの LDAP 依存性を構成します。

    LDAP および KDC サーバーが同一のホスト上で稼働しており、LDAP サービスが SMF FMRI を使って構成されている場合は、Kerberos デーモンの LDAP サービスに対する依存性を追加します。この依存性により、LDAP サービスが再起動すると KDC サービスも再起動するようになります。

    1. krb5kdc サービスへの依存性を追加します。
      # svccfg -s security/krb5kdc
      svc:/network/security/krb5kdc> addpg dsins1 dependency
      svc:/network/security/krb5kdc> setprop dsins1/entities = \
          fmri: "svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1"
      svc:/network/security/krb5kdc> setprop dsins1/grouping = astring: "require_all"
      svc:/network/security/krb5kdc> setprop dsins1/restart_on = astring: "restart"
      svc:/network/security/krb5kdc> setprop dsins1/type = astring: "service"
      svc:/network/security/krb5kdc> exit
    2. kadmin サービスへの依存性を追加します。
      # svccfg -s security/kadmin
      svc:/network/security/kadmin> addpg dsins1 dependency
      svc:/network/security/kadmin> setprop dsins1/entities =\
          fmri: "svc:/application/sun/ds:ds--var-opt-SUNWdsee-dsins1"
      svc:/network/security/kadmin> setprop dsins1/grouping = astring: "require_all"
      svc:/network/security/kadmin> setprop dsins1/restart_on = astring: "restart"
      svc:/network/security/kadmin> setprop dsins1/type = astring: "service"
      svc:/network/security/kadmin> exit
  14. Kerberos デーモンを起動します。
    kdc1 # svcadm enable -r network/security/krb5kdc
    kdc1 # svcadm enable -r network/security/kadmin
  15. kadmin を起動して、主体をさらに追加します。

    この時点で、Kerberos GUI 管理ツールを使用すると、主体を追加できます。追加するには、上記の手順で作成した admin 主体名を使用してログインする必要があります。ただし、次のコマンド行の例では、簡略化されています。

    kdc1 # /usr/sbin/kadmin -p kws/admin
    Enter password: <Type kws/admin password>
    kadmin: 
    1. マスター KDC の host 主体を作成します。

      host 主体は、klistkprop などの Kerberos アプリケーションで使用されます。クライアントは、認証された NFS ファイルシステムをマウントするときに、この主体を使用します。主体のインスタンスがホスト名のときは、ネームサービス内のドメイン名が大文字であるか小文字であるかに関係なく、FQDN は小文字で指定する必要があります。

      kadmin: addprinc -randkey host/kdc1.example.com
      Principal "host/kdc1.example.com@EXAMPLE.COM" created.
      kadmin: 
    2. (省略可能) kclient 主体を作成します。

      この主体は、Kerberos クライアントのインストール中に kclient ユーティリティーで使用されます。このユーティリティーを使用しない場合は、主体に追加する必要はありません。kclient ユーティリティーのユーザーは、このパスワードを使用する必要があります。

      kadmin: addprinc clntconfig/admin
      Enter password for principal clntconfig/admin@EXAMPLE.COM:<Type the password>
      Re-enter password for principal clntconfig/admin@EXAMPLE.COM: <Type it again>
      Principal "clntconfig/admin@EXAMPLE.COM" created.
      kadmin: 
    3. マスター KDC のキータブファイルにマスター KDC の host 主体を追加します。

      キータブファイルに追加したホスト主体が、自動的に使用されます。

      kadmin: ktadd host/kdc1.example.com
      Entry for principal host/kdc1.example.com with kvno 3, encryption type AES-256 CTS mode
                with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc1.example.com with kvno 3, encryption type AES-128 CTS mode
                with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc1.example.com with kvno 3, encryption type Triple DES cbc
                mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc1.example.com with kvno 3, encryption type ArcFour
                with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc1.example.com with kvno 3, encryption type DES cbc mode
                with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    4. kadmin を終了します。
      kadmin: quit
  16. (省略可能) NTP などのクロック同期メカニズムを使用して、マスター KDC のクロックを同期化します。

    Network Time Protocol (NTP) のインストールと使用は必要はありません。ただし、認証が正常終了するには、krb5.conf ファイルの libdefaults セクションに定義されているデフォルト時間内に収まるよう、すべてのクロックを調整する必要があります。NTP については、「KDC と Kerberos クライアントのクロックの同期化」を参照してください。

  17. スレーブ KDC の構成

    冗長性を提供するには、スレーブ KDC を必ず 1 つ以上インストールするようにしてください。手順については、「スレーブ KDC を手動で構成する方法」を参照してください。

スレーブ KDC を自動的に構成する方法

Oracle Solaris リリースでは、次の手順を使用するとスレーブ KDC を自動的に構成できます。

  1. 管理者になるか、Kerberos Server Management プロファイルに割り当てられている役割またはユーザー名になります。

    詳細は、「管理権限を取得する方法」を参照してください。

  2. KDC を作成します。

    kdcmgr ユーティリティーを実行して KDC を作成します。マスター鍵のパスワードと管理主体のパスワードの両方を指定する必要があります。

    kdc2# kdcmgr -a kws/admin -r EXAMPLE.COM create -m kdc1 slave
    
    Starting server setup
    ---------------------------------------
    
    Setting up /etc/krb5/kdc.conf
    
    Setting up /etc/krb5/krb5.conf
    Obtaining TGT for kws/admin ... 
    Password for kws/admin@EXAMPLE.COM: <Type the password>
    
    Setting up /etc/krb5/kadm5.acl. 
    
    Setting up /etc/krb5/kpropd.acl. 
    
    Waiting for database from master... 
    Waiting for database from master... 
    Waiting for database from master... 
    kdb5_util: Cannot find/read stored master key while reading master key 
    kdb5_util: Warning: proceeding without master key 
    Enter KDC database master key: <Type the password>
    
    --------------------------------------------------- 
    Setup COMPLETE. 
    
    kdc2#

スレーブ KDC を対話的に構成する方法

スレーブ KDC を対話形式で構成するには、次の手順を使用します。

  1. 管理者になるか、Kerberos Server Management プロファイルに割り当てられている役割またはユーザー名になります。

    詳細は、「管理権限を取得する方法」を参照してください。

  2. KDC を作成します。

    kdcmgr ユーティリティーを実行して KDC を作成します。マスター鍵のパスワードと管理主体のパスワードの両方を指定する必要があります。

    kdc1# kdcmgr create slave
    
    Starting server setup
    ---------------------------------------
    
    Enter the Kerberos realm: EXAMPLE.COM
    What is the master KDC's host name?: kdc1
    
    Setting up /etc/krb5/kdc.conf
    
    Setting up /etc/krb5/krb5.conf
    Obtaining TGT for kws/admin ... 
    Password for kws/admin@EXAMPLE.COM: <Type the password>
    
    Setting up /etc/krb5/kadm5.acl. 
    
    Setting up /etc/krb5/kpropd.acl. 
    
    Waiting for database from master... 
    Waiting for database from master... 
    Waiting for database from master... 
    kdb5_util: Cannot find/read stored master key while reading master key 
    kdb5_util: Warning: proceeding without master key 
    Enter KDC database master key: <Type the password>
    
    --------------------------------------------------- 
    Setup COMPLETE. 
    
    kdc2#

スレーブ KDC を手動で構成する方法

この手順では、kdc2 という名前の新しいスレーブ KDC を構成します。また、増分伝播も構成します。この手順では、次の構成パラメータを使用します。

始める前に

マスター KDC が構成済みである必要があります。スレーブ KDC を入れ替え可能にする手順については、「マスター KDC とスレーブ KDC の入れ替え」を参照してください。

  1. マスター KDC 上でスーパーユーザーになります。
  2. マスター KDC 上で kadmin を起動します。

    マスター KDC を構成するときに作成した admin 主体名を使用して、ログインする必要があります。

    kdc1 # /usr/sbin/kadmin -p kws/admin
    Enter password: <Type kws/admin password>
    kadmin: 
    1. マスター KDC のデータベースにスレーブホスト主体が存在しない場合は、追加します。

      スレーブが機能するには、ホスト主体が必要です。主体のインスタンスがホスト名のときは、ネームサービス内のドメイン名が大文字であるか小文字であるかに関係なく、FQDN は小文字で指定する必要があります。

      kadmin: addprinc -randkey host/kdc2.example.com
      Principal "host/kdc2.example.com@EXAMPLE.COM" created.
      kadmin: 
    2. マスター KDC 上で、kiprop 主体を作成します。

      kiprop 主体は、マスター KDC からの増分伝播を承認するために使用されます。

      kadmin: addprinc -randkey kiprop/kdc2.example.com
      Principal "kiprop/kdc2.example.com@EXAMPLE.COM" created.
      kadmin:
    3. kadmin を終了します。
      kadmin: quit
  3. マスター KDC 上で、Kerberos 構成ファイル (krb5.conf) を編集します。

    各スレーブ用にエントリを追加する必要があります。このファイルの詳細は、krb5.conf(4) のマニュアルページを参照してください。

    kdc1 # cat /etc/krb5/krb5.conf
     .
     .
    [realms]
                    EXAMPLE.COM = {
                    kdc = kdc1.example.com
                    kdc = kdc2.example.com
                    admin_server = kdc1.example.com
            }
  4. マスター KDC 上で、kadm5.aclkiprop エントリを追加します。

    このエントリにより、マスター KDC が kdc2 サーバー用の増分伝播の要求を受け取ることができるようになります。

    kdc1 # cat /etc/krb5/kadm5.acl
    */admin@EXAMPLE.COM *
    kiprop/kdc2.example.com@EXAMPLE.COM p
  5. マスター KDC 上で、kadmind を再起動し、kadm5.acl ファイルの新しいエントリを使用します。
    kdc1 # svcadm restart network/security/kadmin
  6. すべてのスレーブ KDC 上で、KDC 管理ファイルをマスター KDC サーバーからコピーします。

    この手順は、マスター KDC サーバーが、各 KDC サーバーに必要な情報を更新したため、すべてのスレーブ KDC 上で実行する必要があります。ftp などの転送メカニズムを使用して、マスター KDC から次のファイルのコピーを取得できます。

    • /etc/krb5/krb5.conf

    • /etc/krb5/kdc.conf

  7. すべてのスレーブ KDC 上で、マスター KDC のエントリと各スレーブ KDC のエントリをデータベース伝播構成ファイル kpropd.acl に追加します。

    この情報は、すべてのスレーブ KDC サーバー上で更新する必要があります。

    kdc2 # cat /etc/krb5/kpropd.acl
    host/kdc1.example.com@EXAMPLE.COM
    host/kdc2.example.com@EXAMPLE.COM
  8. すべてのスレーブ KDC 上で、Kerberos アクセス制御リストファイル kadm5.acl が反映されていないことを確認してください。

    修正前の kadm5.acl ファイルは次のようになっています。

    kdc2 # cat /etc/krb5/kadm5.acl
    */admin@___default_realm___ *

    ファイルに kiprop のエントリがある場合は、それを削除します。

  9. 新しいスレーブ上で、kdc.conf のエントリを変更します。

    sunw_dbprop_master_ulogsize エントリを sunw_dbprop_slave_poll を定義するエントリと置き換えます。このエントリにより、ポーリング時間が 2 分に設定されます。

    kdc1 # cat /etc/krb5/kdc.conf
    [kdcdefaults]
            kdc_ports = 88,750
    
    [realms]
            EXAMPLE.COM= {
                    profile = /etc/krb5/krb5.conf
                    database_name = /var/krb5/principal
                    acl_file = /etc/krb5/kadm5.acl
                    kadmind_port = 749
                    max_life = 8h 0m 0s
                    max_renewable_life = 7d 0h 0m 0s
                    sunw_dbprop_enable = true
                    sunw_dbprop_slave_poll = 2m
            }
  10. 新しいスレーブ上で、kadmin コマンドを起動します。

    マスター KDC を構成するときに作成した admin 主体名を使用して、ログインする必要があります。

    kdc2 # /usr/sbin/kadmin -p kws/admin
    Enter password: <Type kws/admin password>
    kadmin: 
    1. kadmin を使用して、スレーブのホスト主体をスレーブのキータブファイルに追加します。

      このエントリにより kprop などの Kerberos アプリケーションが機能します。主体のインスタンスがホスト名のときは、ネームサービス内のドメイン名が大文字であるか小文字であるかに関係なく、FQDN は小文字で指定する必要があります。

      kadmin: ktadd host/kdc2.example.com
      Entry for principal host/kdc2.example.com with kvno 3, encryption type AES-256 CTS mode
                with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc2.example.com with kvno 3, encryption type AES-128 CTS mode
                with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc2.example.com with kvno 3, encryption type Triple DES cbc
                mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc2.example.com with kvno 3, encryption type ArcFour
                with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/kdc2.example.com with kvno 3, encryption type DES cbc mode
                with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    2. スレーブ KDC のキータブファイルに kiprop 主体を追加します。

      krb5.keytabkiprop 主体を追加すると、増分伝播が開始されるときに、kprpod コマンドが自身を認証できるようになります。

      kadmin: ktadd kiprop/kdc2.example.com
      Entry for principal kiprop/kdc2.example.com with kvno 3, encryption type AES-256 CTS mode
                with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal kiprop/kdc2.example.com with kvno 3, encryption type AES-128 CTS mode
                with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal kiprop/kdc2.example.com with kvno 3, encryption type Triple DES cbc
                mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal kiprop/kdc2.example.com with kvno 3, encryption type ArcFour
                with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal kiprop/kdc2.example.com with kvno 3, encryption type DES cbc mode
                with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    3. kadmin を終了します。
      kadmin: quit
  11. 新しいスレーブ上で、Kerberos 伝播デーモンを起動します。
    kdc2 # svcadm enable network/security/krb5_prop
  12. 新しいスレーブ上で、kdb5_util を使用して stash ファイルを作成します。
    kdc2 # /usr/sbin/kdb5_util stash
    kdb5_util: Cannot find/read stored master key while reading master key
    kdb5_util: Warning: proceeding without master key
    
    Enter KDC database master key: <Type the key>
  13. (省略可能) 新しいスレーブ KDC 上で、NTP などのクロック同期メカニズムを使用して、マスター KDC のクロックを同期化します。

    Network Time Protocol (NTP) のインストールと使用は必要はありません。ただし、認証が正常終了するには、krb5.conf ファイルの libdefaults セクションに定義されているデフォルト時間内に収まるよう、すべてのクロックを調整する必要があります。NTP については、「KDC と Kerberos クライアントのクロックの同期化」を参照してください。

  14. 新しいスレーブ上で、KDC デーモン (krb5kdc) を起動します。
    kdc2 # svcadm enable network/security/krb5kdc

マスターサーバー上でチケット認可サービス鍵を更新する方法

Solaris 10 リリース以前に作成された KDC サービスで、チケット認可サービス (TGS) 主体が DES 鍵のみを持つ場合、この鍵により、チケット認可チケット (TGT) セッション鍵の暗号化タイプは DES に限定されます。より強力なほかの暗号化タイプもサポートするリリースに KDC を更新すると、KDC で生成されるすべてのセッション鍵に、より強力な暗号化が使用されるようになります。ただし、既存の TGS 主体の鍵を新しい暗号化タイプを含むよう更新していない場合、TGT セッション鍵は DES に限定されたままになります。次の手順では、この鍵を更新して、ほかの暗号化タイプも使用できるようにします。

例 21-2 マスターサーバーから主体鍵を更新する

KDC マスターに root としてログオンした場合、次のコマンドを使用して TGS サービス主体を更新できます。

kdc1 # kadmin.local -q 'cpw -randkey krbtgt/EXAMPLE.COM@EXAMPLE.COM'