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

ドキュメントの情報

はじめに

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

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

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

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

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

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

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

6.  BART を使用したファイル整合性の検証 (タスク)

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

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

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

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

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

パート IV 暗号化サービス

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

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

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

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

14.  プラグイン可能認証モジュールの使用

15.  Secure Shell の使用

16.  Secure Shell (参照)

17.  簡易認証セキュリティー層の使用

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

パート 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 レルム内のユーザーを自動的に移行するように構成する方法

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

すべてのチケット認可チケット (TGT) を自動的に更新する方法

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 サーバー上のセキュリティーの強化

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

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

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

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

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

25.  Kerberos サービス (参照)

パート VII Oracle Solaris での監査

26.  監査 (概要)

27.  監査の計画

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

29.  監査 (参照)

用語集

索引

Kerberos クライアントの構成

Kerberos クライアントは、Kerberos サービスを使用する同じネットワーク上のすべてのホスト (KDC サーバーを除く) です。このセクションでは、Kerberos クライアントのインストール手順と、root 認証を使用して NFS ファイルシステムをマウントする方法について説明します。

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

次のタスクマップは、Kerberos クライアントの設定に関連するすべての手順が含まれます。各行には、タスク識別名、そのタスクを行う理由、およびタスクへのリンクが含まれます。

タスク
説明
参照先
Kerberos クライアントのインストールプロファイルを確立します。
Kerberos クライアントの自動インストールに使用されるクライアントのインストールプロファイルを生成します。
Kerberos クライアントを構成します。
手動で Kerberos クライアントをインストールします。各クライアントのインストールに独自のインストールパラメータが必要な場合に、この手順を使用します。
自動的に Kerberos クライアントをインストールします。各クライアントのインストールパラメータが同じ場合に、この手順を使用します。
対話的に Kerberos クライアントをインストールします。2、3 のインストールパラメータを変更する必要がある場合にだけ、この手順を使用します。
自動的に Active Directory サーバーの Kerberos クライアントをインストールします。
クライアントが root ユーザーとして NFS ファイルシステムにアクセスすることを許可します
root アクセス付きで共有される NFS ファイルシステムをクライアントがマウントできるように、root 主体をクライアント上に作成します。また、cron ジョブを実行できるように、NFS ファイルシステムへの非対話的な root アクセスをクライアントがセットアップすることを許可します。
クライアントのチケット認可チケット (TGT) を発行した KDC の確認を無効にします。
ローカルのキータブファイルにホスト主体を保存しないクライアントが、TGT を発行した KDC とホスト主体を発行した KDC が同じサーバーであることを確認するセキュリティー検査を省略できるようにします。

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

この手順は、Kerberos クライアントをインストールする際に使用される kclient プロファイルを作成します。kclient プロファイルを使用することにより、入力エラーの可能性を減らします。また、プロファイルを使用すると、対話型のプロセスと比べて、ユーザーの介入も減ります。

  1. スーパーユーザーになります。
  2. kclient インストールプロファイルを作成します。

    kclient プロファイルの例は、次のようになります。

    client# cat /net/denver.example.com/export/install/profile
    REALM EXAMPLE.COM
    KDC kdc1.example.com
    ADMIN clntconfig
    FILEPATH /net/denver.example.com/export/install/krb5.conf
    NFS 1
    DNSLOOKUP none

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

始める前に

この手順では、インストールプロファイルを使用します。 「Kerberos クライアントのインストールプロファイルの作成方法」を参照してください。

このタスクを完了するには、root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

例 21-8 コマンド行オーバーライドを利用して Kerberos クライアントを自動的に構成する

次の例は、インストールプロファイルに設定されている DNSARG パラメータと KDC パラメータに対しコマンド行での指定が優先します。

# /usr/sbin/kclient -p /net/denver.example.com/export/install/profile\
-d dns_fallback -k kdc2.example.com

Starting client setup
---------------------------------------------------

kdc1.example.com

Setting up /etc/krb5/krb5.conf.

Obtaining TGT for clntconfig/admin ...
Password for clntconfig/admin@EXAMPLE.COM: <Type the password>

nfs/client.example.com entry ADDED to KDC database.
nfs/client.example.com entry ADDED to keytab.

host/client.example.com entry ADDED to KDC database.
host/client.example.com entry ADDED to keytab.

Copied /net/denver.example.com/export/install/krb5.conf.

---------------------------------------------------
Setup COMPLETE.

client#

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

この手順では、インストールプロファイルなしで kclient インストールユーティリティーを使用します。Oracle Solaris 11 リリースでは、kclient ユーティリティーの使いやすさと Active Directory サーバーで動作する能力が向上しました。詳細は、「Active Directory サーバー用に Kerberos クライアントを構成する方法」を参照してください。以前のリリースで kclient を実行する例については、例 21-10 を参照してください。

始める前に

このタスクを完了するには、root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

例 21-9 kclient インストールユーティリティーの実行

client# /usr/sbin/kclient

Starting client setup
---------------------------------------------------

Is this a client of a non-Solaris KDC ? [y/n]: n
        No action performed.
Do you want to use DNS for kerberos lookups ? [y/n]: n
        No action performed.
Enter the Kerberos realm: EXAMPLE.COM
Specify the KDC hostname for the above realm: kdc1.example.com

Note, this system and the KDC's time must be within 5 minutes of each other for
Kerberos to function. Both systems should run some form of time synchronization
system like Network Time Protocol (NTP).
Do you have any slave KDC(s) ? [y/n]: y
Enter a comma-separated list of slave KDC host names: kdc2.example.com

Will this client need service keys ? [y/n]: n
        No action performed.
Is this client a member of a cluster that uses a logical host name ? [y/n]: n
        No action performed.
Do you have multiple domains/hosts to map to realm ? [y/n]: y
Enter a comma-separated list of domain/hosts to map to the default realm: engineering.example.com, \
        example.com

Setting up /etc/krb5/krb5.conf.

Do you plan on doing Kerberized nfs ? [y/n]: y
Do you want to update /etc/pam.conf ? [y/n]: y
Enter a comma-separated list of PAM service names in the following format:
service:{first|only|optional}: xscreensaver:first
Configuring /etc/pam.conf.

Do you want to copy over the master krb5.conf file ? [y/n]: n
        No action performed.

---------------------------------------------------
Setup COMPLETE.

例 21-10 Oracle Solaris 10 リリースでの kclient インストールユーティリティーの実行

次の出力は、kclient コマンドの実行結果を示しています。

client# /usr/sbin/kclient

Starting client setup
---------------------------------------------------

Do you want to use DNS for kerberos lookups ? [y/n]: n
        No action performed.
Enter the Kerberos realm: EXAMPLE.COM
Specify the KDC hostname for the above realm: kdc1.example.com

Setting up /etc/krb5/krb5.conf.

Enter the krb5 administrative principal to be used: clntconfig/admin
Obtaining TGT for clntconfig/admin ...
Password for clntconfig/admin@EXAMPLE.COM: <Type the password>
Do you plan on doing Kerberized nfs ? [y/n]: n

host/client.example.com entry ADDED to KDC database.
host/client.example.com entry ADDED to keytab.

Do you want to copy over the master krb5.conf file ? [y/n]: y
Enter the pathname of the file to be copied: \
/net/denver.example.com/export/install/krb5.conf

Copied /net/denver.example.com/export/install/krb5.conf.

---------------------------------------------------
Setup COMPLETE !
#

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

この手順では、インストールプロファイルなしで kclient インストールユーティリティーを使用します。

始める前に

root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

  1. (省略可能) クライアントの DNS リソースレコードの作成を有効にします。
    client# sharectl set -p ddns_enable=true smb
  2. kclient ユーティリティーを実行します。

    -T オプションで、KDC サーバータイプを選択します。この場合は、Active Directory サーバーが選択されています。

    client# kclient -T ms_ad

    デフォルトでは、Administrator 主体のパスワードの入力が必要になります。

例 21-11 kclient を使用して Active Directory サーバー用に Kerberos クライアントを構成する

次の出力は、ms_ad (Microsoft Active Directory) サーバータイプ引数を使用した kclient コマンドの実行結果を示しています。クライアントは、EXAMPLE.COM と呼ばれる Active Directory ドメインに結合されます。

client# /usr/sbin/kclient -T ms_ad

Starting client setup
---------------------------------------------------

Attempting to join 'CLIENT' to the 'EXAMPLE.COM' domain.
Password for Administrator@EXAMPLE.COM: <Type the password>
Forest name found: example.com
Looking for local KDCs, DCs and global catalog servers (SVR RRs).

Setting up /etc/krb5/krb5.conf

Creating the machine account in AD via LDAP.
---------------------------------------------------
Setup COMPLETE.
#

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

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

始める前に

root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

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

    デフォルトの Kerberos ファイルを変更する場合は、レルム名とサーバー名を変更する必要があります。gkadmin のヘルプファイルへのパスも指定する必要があります。

    kdc1 # cat /etc/krb5/krb5.conf
    [libdefaults]
            default_realm = EXAMPLE.COM
    
    [realms]
            EXAMPLE.COM = {
            kdc = kdc1.example.com
            kdc = kdc2.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://docs.oracle.com/cd/E23824_01/html/821-1456/aadmin-23.html

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


  2. (省略可能) KDC の検出に使用されるプロセスを変更します。

    デフォルトでは、Kerberos レルムから KDC へのマッピングは次の順番で決められます。

    • krb5.conf 内の realms セクションの定義

    • DNS 内の SRV レコードの検索による。

    krb5.conf ファイルの libdefaults セクションに dns_lookup_kdc または dns_fallback を追加して、この動作を変更できます。詳細は、krb5.conf(4) のマニュアルページを参照してください。常にリフェラルが最初に試行されます。

  3. (省略可能) ホストのレルムの決定に使用されるプロセスを変更します。

    デフォルトでは、ホストからレルムへのマッピングは次の順番で決められます。

    • KDC がリフェラルをサポートしている場合は、KDC からクライアントに、ホストが属しているレルムが通知されることがある。

    • krb5.conf ファイル内の domain_realm の定義による。

    • ホストの DNS ドメイン名。

    • デフォルトレルム。

    krb5.conf ファイルの libdefaults セクションに dns_lookup_kdc または dns_fallback を追加して、この動作を変更できます。詳細は、krb5.conf(4) のマニュアルページを参照してください。常にリフェラルが最初に試行されます。

  4. (省略可能) NTP などのクロック同期メカニズムを使用して、クライアントのクロックをマスター KDC のクロックと同期化します。

    Network Time Protocol (NTP) のインストールと使用は必要はありません。ただし、認証が正常終了するには、すべてのクロックが、krb5.conf ファイル内の clockskew 関係指定子で定義されている最大の誤差以内で KDC サーバー上の時間と同期化されている必要があります。NTP については、「KDC と Kerberos クライアントのクロックの同期化」を参照してください。

  5. kadmin を起動します。

    Kerberos グラフィカル管理ツールを使って主体を追加する方法については、「新しい Kerberos 主体を作成する方法」を参照してください。追加するときは、マスター KDC を構成するときに作成した admin 主体名を使用してログインする必要があります。ただし、次の例では、コマンド行を使用して、必要な主体を追加しています。

    denver # /usr/sbin/kadmin -p kws/admin
    Enter password: <Type kws/admin password>
    kadmin: 
    1. (省略可能) ユーザー主体が存在しない場合は、ユーザー主体を作成します。

      このホストに関連付けられているユーザーに主体が割り当てられていない場合だけ、ユーザー主体を作成します。

      kadmin: addprinc mre
      Enter password for principal mre@EXAMPLE.COM: <Type the password>
      Re-enter password for principal mre@EXAMPLE.COM: <Type it again>
      kadmin: 
    2. (省略可能) root 主体を作成し、その主体をサーバーのキータブファイルに追加します。

      この手順は、クライアントが NFS サービスによってマウントされたファイルシステムに root アクセスを持つために必要です。また、cron ジョブを root として実行する場合など、非対話的な root アクセスが必要な場合にもこの手順が必要になります。

      クライアントが NFS サービスを使用してマウントされているリモートファイルシステムへの root アクセスを必要としない場合は、この手順をスキップできます。root 主体は 2 つのコンポーネント主体とするべきであり、二番目のコンポーネントは Kerberos クライアントシステムのホスト名にして、レルム幅の root 主体の作成を回避します。主体のインスタンスがホスト名のときは、ネームサービス内のドメイン名が大文字であるか小文字であるかに関係なく、FQDN は小文字で指定する必要があります。

      kadmin: addprinc -randkey root/client.example.com
      Principal "root/client.example.com" created.
      kadmin: ktadd root/client.example.com
      Entry for principal root/client.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 root/client.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 root/client.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 root/client.example.com with kvno 3, encryption type ArcFour
                with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal root/client.example.com with kvno 3, encryption type DES cbc mode
                with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    3. host 主体を作成し、その主体をサーバーのキータブファイルに追加します。

      host 主体は、認証を提供するためにリモートアクセスサービスによって使用されます。キータブファイルにまだ資格が存在しない場合は、この主体によって root が資格を取得できるようになります。

      kadmin: addprinc -randkey host/denver.example.com
      Principal "host/denver.example.com@EXAMPLE.COM" created.
      kadmin: ktadd host/denver.example.com
      Entry for principal host/denver.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/denver.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/denver.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/denver.example.com with kvno 3, encryption type ArcFour
                with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal host/denver.example.com with kvno 3, encryption type DES cbc mode
                with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin:
    4. (省略可能) サーバーの NFS サービス主体をサーバーのキータブファイルに追加します。

      この手順が必要になるのは、クライアントが Kerberos 認証を使用する NFS ファイルシステムにアクセスする必要がある場合だけです。

      kadmin: ktadd nfs/denver.example.com
      Entry for principal nfs/denver.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 nfs/denver.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 nfs/denver.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 nfs/denver.example.com with kvno 3, encryption type ArcFour
                with HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      Entry for principal nfs/denver.example.com with kvno 3, encryption type DES cbc mode
                with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
      kadmin: 
    5. kadmin を終了します。
      kadmin: quit
  6. (省略可能) NFS での Kerberos を有効にします。
    1. /etc/nfssec.conf ファイル内の Kerberos セキュリティーモードを有効にします。

      /etc/nfssec.conf ファイルを編集して、Kerberos セキュリティーモードの先頭にある「#」を削除します。

      # cat /etc/nfssec.conf
       .
       .
      #
      # Uncomment the following lines to use Kerberos V5 with NFS
      #
      krb5            390003  kerberos_v5     default -               # RPCSEC_GSS
      krb5i           390004  kerberos_v5     default integrity       # RPCSEC_GSS
      krb5p           390005  kerberos_v5     default privacy         # RPCSEC_GSS
    2. DNS を有効にします。

      svc:/network/dns/client:default サービスが有効になっていない場合は、このサービスを有効にします。詳細は、resolv.conf(4) のマニュアルページを参照してください。

    3. gssd サービスを再開します。
      # svcadm restart network/rpc/gss
  7. クライアントから 自動的に TGT を更新するか、または Kerberos チケットの有効期限切れをユーザーに警告する場合は、/etc/krb5/warn.conf ファイルにエントリを作成します。

    詳細は、warn.conf(4) のマニュアルページを参照してください。

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

Solaris 以外の KDC を使用するように Kerberos クライアントを設定することができます。この場合、/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
        }

例 21-13 ホスト名とドメイン名を Kerberos レルムにマッピングするための DNS TXT レコード

@ IN SOA kdc1.example.com root.kdc1.example.com (
                                1989020501   ;serial
                                10800        ;refresh
                                3600         ;retry
                                3600000      ;expire
                                86400 )      ;minimum

                        IN      NS      kdc1.example.com.
kdc1                    IN      A       192.146.86.20
kdc2                    IN      A       192.146.86.21

_kerberos.example.com.             IN      TXT     "EXAMPLE.COM"
_kerberos.kdc1.example.com.        IN      TXT     "EXAMPLE.COM"
_kerberos.kdc2.example.com.        IN      TXT     "EXAMPLE.COM"

例 21-14 Kerberos サーバーの場所を記録する DNS SRV レコード

この例は、KDC、admin サーバー、および kpasswd サーバーの場所を記録するレコードを定義します。

@ IN SOA kdc1.example.com root.kdc1.example.com (
                                1989020501   ;serial
                                10800        ;refresh
                                3600         ;retry
                                3600000      ;expire
                                86400 )      ;minimum

                                   IN      NS      kdc1.example.com.
kdc1                               IN      A       192.146.86.20
kdc2                               IN      A       192.146.86.21

_kerberos._udp.EXAMPLE.COM         IN      SRV 0 0 88  kdc2.example.com
_kerberos._tcp.EXAMPLE.COM         IN      SRV 0 0 88  kdc2.example.com
_kerberos._udp.EXAMPLE.COM         IN      SRV 1 0 88  kdc1.example.com
_kerberos._tcp.EXAMPLE.COM         IN      SRV 1 0 88  kdc1.example.com
_kerberos-adm._tcp.EXAMPLE.COM     IN      SRV 0 0 749 kdc1.example.com
_kpasswd._udp.EXAMPLE.COM          IN      SRV 0 0 749 kdc1.example.com

例 21-15 マルチマスター KDC を操作するための Solaris クライアントの構成

Microsoft Active Directory Kerberos サービスは、複数のマスター上で動作する KDC を提供します。Solaris クライアントが情報を更新できるようにするには、/etc/krb5/krb5.conf 内の admin_server または kpasswd_server のどちらかの宣言を、すべてのサーバーを一覧表示するように更新する必要があります。この例は、クライアントが kdc1kdc2 の間で共有されている KDC 上の情報を更新できるようにする方法を示しています。

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

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

この手順では、ローカルの /etc/krb5/krb5.keytab ファイルに保存されているホスト主体の KDC とチケット認可チケット (TGT) を発行した KDC が同じであることを確認するセキュリティー検査を無効にします。この検査は DNS の偽装攻撃を防止します。ただし、一部のクライアント構成では、ホスト主体を使用できない場合があるため、クライアントが機能できるようにこの検査を無効にする必要があります。次のような構成では、この検査を無効にする必要があります。

始める前に

root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

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

この手順を実行すると、クライアントは root の ID 特権による Kerberos 認証を必要とする、NFS ファイルシステムにアクセスできるようになります。特に、NFS ファイルシステムが次のようなオプションによって共有されている場合です。-o sec=krb5,root=client1.sun.com

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

Kerberos 主体を持たないユーザーを、既存の Kerberos レルムに自動的に移行できます。移行は、PAM 構成ファイル内のサービスの認証スタックにある pam_krb5_migrate モジュールの積み重ねにより使用されているサービス用の PAM フレームワークを使用することによって実現されます。

この例では、gdm および other PAM サービス名が自動移行を使用するように構成されます。この手順では、次の構成パラメータを使用します。

始める前に

レルム EXAMPLE.COM の Kerberos クライアントとして server1 を設定します。詳細は、「Kerberos クライアントの構成」を参照してください。

root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

  1. server1 のホストサービス主体が存在するかどうかを確認します。

    server1keytab ファイル内のホストサービス主体は、マスター KDC にサーバーを認証するために使用されます。

    server1 # klist -k
    Keytab name: FILE:/etc/krb5/krb5.keytab
        KVNO Principal
        ---- ------------------------------------------------
           3 host/server1.example.com@EXAMPLE.COM
           3 host/server1.example.com@EXAMPLE.COM
           3 host/server1.example.com@EXAMPLE.COM
           3 host/server1.example.com@EXAMPLE.COM
  2. PAM 構成ファイルを変更します。
    1. gdm サービス用のエントリを更新します。
      # cat /etc/pam.d/gdm
       .
       .
      
      auth definitive         pam_user_policy.so.1
      auth requisite          pam_authtok_get.so.1
      auth required           pam_dhkeys.so.1
      auth sufficient         pam_krb5.so.1
      auth requisite          pam_unix_auth.so.1
      auth required           pam_unix_cred.so.1
      auth optional           pam_krb5_migrate.so.1
    2. (省略可能) 必要に応じて、即座のパスワードの変更を強制します。

      新しく作成された Kerberos アカウントでは、Kerberos パスワードの即時の変更を強制するために、パスワードの有効期限が現在時間 (今) に設定されています。有効期限を現在に設定するには、pam_krb5_migrate モジュールを使用する行に expire_pw オプションを追加します。詳細は、pam_krb5_migrate(5) のマニュアルページを参照してください。

      # cat /etc/pam.d/gdm
       .
       .
      auth optional           pam_krb5_migrate.so.1 expire_pw
    3. pam_krb5 モジュールをアカウントスタックに追加します。

      この追加により、Kerberos のパスワードの有効期限でアクセスをブロックできるようになります。

      # cat /etc/pam.d/other
       .
       .
      #
      # Default definition for Account management
      # Used when service name is not explicitly mentioned for account management
      #
      account requisite       pam_roles.so.1
      account definitive      pam_user_policy.so.1
      account required        pam_krb5.so.1
      account required        pam_unix_account.so.1
      account required        pam_tsol_account.so.1
      #
    4. pam_krb5 モジュールをパスワードスタックに追加します。

      この追加により、パスワードが期限切れになったらパスワードを更新できるようになります。

      # cat /etc/pam.d/other
       .
       .
      #
      # Default definition for Password management
      #
      password include        pam_authtok_common
      password sufficient     pam_krb5.so.1
      password required       pam_authtok_store.so.1
  3. マスター KDC 上で、アクセス制御ファイルを更新します。

    次のエントリにより、root ユーザー以外のすべてのユーザーの host/server1.example.com サービス主体に移行および照会権限が付与されます。U 権限を使って、移行すべきでないユーザーを kadm5.acl ファイル内に一覧表示することが重要です。これらのエントリは、permit all または ui エントリの前に置く必要があります。詳細は、kadm5.acl(4) のマニュアルページを参照してください。

    kdc1 # cat /etc/krb5/kadm5.acl
    host/server1.example.com@EXAMPLE.COM U root
    host/server1.example.com@EXAMPLE.COM ui *
    */admin@EXAMPLE.COM *
  4. マスター KDC 上で、Kerberos 管理デーモンを再起動します。

    この手順により、kadmind デーモンが新しい kadm5.acl エントリを使用できるようになります。

    kdc1 # svcadm restart network/security/kadmin
  5. マスター KDC 上で、pam.conf ファイルにエントリを追加します。

    次のエントリにより、kadmind デーモンが k5migrate PAM サービスを使用して、移行に必要なアカウントの UNIX ユーザーパスワードを検査できるようになります。

    # grep k5migrate /etc/pam.conf
    k5migrate        auth    required        pam_unix_auth.so.1
    k5migrate        account required        pam_unix_account.so.1

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

例 21-16 ロックアウトされた主体をロック解除する

次の例では、ユーザー主体がロック解除されます。

 /usr/sbin/kadmin -p kws/admin
Enter password: <Type kws/admin password>
kadmin: modify_principal -unlock principal

すべてのチケット認可チケット (TGT) を自動的に更新する方法

始める前に

root 役割になる必要があります。詳細は、「割り当てられている管理権限を使用する方法」を参照してください。

  1. warnd 構成ファイルを編集します。

    チケットの期限が切れる 30 分前に TGT を更新し、その更新が成功または失敗したらメッセージをユーザーの端末に記録するために、次のようなエントリを追加します。

    # cat /etc/krb5/warn.conf
    * renew:log terminal 30m
  2. サービスを再起動します。
    # svcadm restart network/security/ktkt_warn

例 21-17 サーバー上での TGT 有効期限メッセージの構成

次の例は、TGT の更新およびメッセージシステムを構成するためのいくつかの方法を示しています。

# cat /etc/krb5/warn.conf
#
# renew the TGT 30 minutes before expiration and send message to users terminal
#
gtb@EXAMPLE.COM renew:log terminal 30m
#
# send a warning message to a specific email address 20 minutes before TGT expiration
#
mre@EXAMPLE.COM mail 20m mre@example2.com
#
# renew the TGT 20 minutes before expiration and send an email message on failure
#
bricker@EXAMPLE.COM renew:log-failure mail 20m &
#
# catch-all: any principal not matched above will get an email warning
* mail 20m & 

例 21-18 ユーザーへの TGT 有効期限メッセージの構成

システムレベルでのユーザーごとのエントリの構成に加えて、各ユーザーは、/var/user/$USER/krb-warn.conf という名前の個々の warnd 構成ファイルを構成できます。例:

% cat /var/user/gtb/krb-warn.conf
gtb@EXAMPLE.COM renew:log mail 30m &