3.3. Kerberos 5 サーバーの設定


Kerberos を設定する際は、マスター KDC を最初にインストールして設定した後に、必要なセカンダリーサーバーをインストールします。

3.3.1. マスター KDC サーバーの設定

  1. Kerberos を設定する前に、時刻同期と DNS がすべてのクライアントおよびサーバーマシンで正しく機能していることを確認します。
    Kerberos サーバーとそのクライアント間の時刻同期に特に注意してください。サーバーとクライアント間の時間差が、設定された制限 (デフォルトでは 5 分) よりも大きい場合、Kerberos クライアントはサーバーに認証できません。この時間同期は、攻撃者が古い Kerberos チケットを使用して有効なユーザーとしてマスカレードしないようにするために必要です。
    NTP のドキュメントは /usr/share/doc/ntp-version-number/html/index.htmlhttp://www.ntp.org で参照できます。
  2. KDC を実行する専用マシンに krb5-libs krb5-server および krb5-workstation パッケージをインストールします。このマシンは非常に安全である必要があります。可能な場合は、KDC 以外のサービスを実行しないでください。
  3. レルム名ととドメイン間のマッピングを反映するように /etc/krb5.conf/var/kerberos/krb5kdc/kdc.conf 設定ファイルを編集します。シンプルなレルムは、EXAMPLE.COMexample.com のインスタンスを正しいドメイン名で置き換えることで構成できます。これは、正しい形式で大文字と小文字の名前を維持することが確実にでき、KDC を kerberos.example.com から Kerberos サーバーの名前に変更することで構成できます。通常、レルム名はすべて大文字で、DNS ホスト名およびドメイン名はすべて小文字になります。これらの設定ファイルの man ページには、ファイル形式に関する詳細が記載されています。
  4. kdb5_util ユーティリティを使用してデータベースを作成します。
    /usr/sbin/kdb5_util create -s
    Copy to Clipboard Toggle word wrap
    この create コマンドは、Kerberos レルムのキーを保存するデータベースを作成します。-s 引数は、マスターサーバーキーを保存する stash ファイルを作成します。キーの読み取り元となる stash ファイルがない場合、Kerberos サーバー (krb5kdc) は起動時に毎回マスターサーバーのパスワード (このパスワードを使って鍵を再生成できる) を要求します。
  5. /var/kerberos/krb5kdc/kadm5.acl ファイルを編集します。このファイルは、Kerberos データベース kadmind への管理アクセス権限およびそのアクセスレベルを決定するために使用します。ほとんどの組織は、1 行で対応できます。
    */admin@EXAMPLE.COM  *
    Copy to Clipboard Toggle word wrap
    多くのユーザーは、データベース内で単一のプリンシパルで表されます (joe@EXAMPLE.COM などの NULL または空のインスタンス)。この設定では、admin (例: joe/admin@EXAMPLE.COM) のインスタンスを持つ 2 番目のプリンシパルを持つユーザーは、レルムの Kerberos データベースに対する完全な管理制御を強化できます。
    kadmin がサーバーで起動した後、ユーザーはレルム内のいずれかのクライアントまたはサーバーで kadmind を実行することで、そのサービスにアクセスできます。ただし、kadm5.acl ファイルにリストされているユーザーのみが、自身のパスワードを変更することを除いて、データベースを編集できます。

    注記

    この kadmin ユーティリティーはネットワーク経由で kadmind サーバーと通信し、Kerberos を使用して認証を処理します。したがって、ネットワーク経由でサーバーに接続してサーバーを管理するには、最初のプリンシパルがすでに存在している必要があります。kadmin.local コマンドを使って最初のプリンシパルを作成します。これは、KDC と同じホストで使用するように特別に設計されており、認証に Kerberos を使用しません。
  6. KDC ターミナル kadmin.local で最初のプリンシパルを作成します。
    /usr/sbin/kadmin.local -q "addprinc username/admin"
    Copy to Clipboard Toggle word wrap
  7. 以下のコマンドを使用して Kerberos を起動します。
    /sbin/service krb5kdc start
    /sbin/service kadmin start
    
    Copy to Clipboard Toggle word wrap
  8. kadmin 内で addprinc コマンドを使用してユーザーのプリンシパルを追加します。kadmin および kadmin.local は、KDC に対するコマンドラインインターフェースです。そのため、addprinc などのコマンドの多くは、kadmin プログラムの起動後に利用できます。詳細については kadmin の man ページを参照してください。
  9. KDC がチケットを発行していることを確認します。まず、kinit を実行してチケットを取得し、認証情報キャッシュファイルに保存します。次に、klist を使用してキャッシュ内の認証情報の一覧を表示し、kdestroyを使用して、キャッシュと含まれる認証情報を破棄します。

    注記

    デフォルトでは、kinit が同じシステムログインユーザー名 (Kerberos サーバーではなく) を使用して認証を試みます。ユーザー名が Kerberos データベースのプリンシパルに対応しない場合は、kinit がエラーメッセージを発行します。その場合は、コマンドラインの引数として、正しいプリンシパルの名前とともに kinit を提供します。
    kinit principal
    Copy to Clipboard Toggle word wrap

3.3.2. セカンダリー KDC の設定

あるレルムに複数の KDC がある場合は、1 つの KDC (マスター KDC) が書き込み可能なレルムデータベースの書き込み可能なコピーを保持し、kadmind を実行します。マスター KDC もレルムの 管理サーバー です。追加のセカンダリー KDC はデータベースの読み取り専用コピーを維持して、kpropd を実行します。
マスタースレーブを伝達するステップでは、マスター KDC がデータベースを一時ダンプファイルにダンプして、そのファイルを各スレーブに送信する必要があります。このファイルは、そのダンプファイルのコンテンツでこれ以前に受信したデータベースの読み取り専用コピーを上書きします。
セカンダリー KDC を設定するには、以下の手順にしたがいます。
  1. マスター KDC の krb5.conf および kdc.conf ファイルをセカンダリー KDC にコピーします。
  2. マスター KDC で root シェル kadmin.local から開始します。
    1. マスター KDC の host サービスの新規エントリーを作成するには、kadmin.local add_principal コマンドを使用します。
    2. kadmin.local ktadd コマンドを使ってサービス用にランダムの鍵を設定し、その鍵をマスターのデフォルト keytab ファイルに保存します。

      注記

      この鍵は、kprop コマンドがセカンダリーサーバーに認証するために使用されます。インストールするセカンダリー KDC サーバーの数にかかわらず、これは一度だけ実行する必要があります。
      # kadmin.local -r EXAMPLE.COM
       Authenticating as principal root/admin@EXAMPLE.COM with password. 
      kadmin: add_principal -randkey host/masterkdc.example.com
      Principal "host/host/masterkdc.example.com@EXAMPLE.COM" created. 
      kadmin: ktadd host/masterkdc.example.com
      Entry for principal host/masterkdc.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. 
      Entry for principal host/masterkdc.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab. 
      Entry for principal host/masterkdc.example.com with kvno 3, encryption type DES with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. 
      Entry for principal host/masterkdc.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5.keytab.
      kadmin: quit
      Copy to Clipboard Toggle word wrap
  3. セカンダリー KDC で root シェルから kadmin を起動します。
    1. この kadmin add_principal コマンドを使用して、セカンダリー KDC の ホスト サービスの新規エントリーを作成します。
    2. kadmin ktadd コマンドを使ってサービス用にランダムの鍵を設定し、その鍵をセカンダリー KDC サーバーのデフォルト keytab ファイルに保存します。このキーは、クライアントの認証時に kpropd サービスによって使用されます。
      # kadmin -p jsmith/admin@EXAMPLE.COM -r EXAMPLE.COM
      Authenticating as principal jsmith/admin@EXAMPLE.COM with password. 
      Password for jsmith/admin@EXAMPLE.COM: 
      kadmin: add_principal -randkey host/slavekdc.example.com
      Principal "host/slavekdc.example.com@EXAMPLE.COM" created. 
      kadmin: ktadd host/slavekdc.example.com@EXAMPLE.COM 
      Entry for principal host/slavekdc.example.com with kvno 3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. 
      Entry for principal host/slavekdc.example.com with kvno 3, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/etc/krb5.keytab. 
      Entry for principal host/slavekdc.example.com with kvno 3, encryption type DES with HMAC/sha1 added to keytab WRFILE:/etc/krb5.keytab. 
      Entry for principal host/slavekdc.example.com with kvno 3, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/etc/krb5.keytab. 
      kadmin: quit
      Copy to Clipboard Toggle word wrap
  4. セカンダリー KDC はサービスキーを使用して、接続するクライアントをすべて認証できます。すべてのクライアントが新しいレルムデータベースで kprop サービスを提供することができるわけではありません。アクセスを制限するため、セカンダリー KDC 上の kprop サービスは、プリンシパル名が /var/kerberos/krb5kdc/kpropd.acl でリストされているクライアントからのアップデートのみを受け入れます。
    マスター KDC のホストサービス名をこのファイルに追加します。
    # echo host/masterkdc.example.com@EXAMPLE.COM > /var/kerberos/krb5kdc/kpropd.acl
    Copy to Clipboard Toggle word wrap
  5. セカンダリー KDC がデータベースのコピーを取得したら、暗号化に使用したマスターキーも必要になります。KDC データベースのマスターキーがマスター KDC の古いファイル (通常は /var/kerberos/krb5kdc/.k5.REALM という名前) に保存されている場合は、利用可能なセキュアな方法を使用してこれをセカンダリー KDC にコピーするか、kdb5_util create -s を実行して同じパスワードを指定して、ダミーデータベースを作成して、セカンダリーKDC で同一の古いファイルを作成します。ダミーデータベースは、最初に成功したデータベースの伝播によって上書きされます。
  6. セカンダリー KDC のファイアウォールにより、マスター KDC がポート 754 (krb5_prop) で TCP を使用して接続し、kprop サービスを起動できることを確認します。
  7. kadmin サービスが 無効 になっていることを再度確認します。
  8. マスター KDC のレルムデータベースを、kprop コマンドが読み取るデフォルトのデータファイル (/var/kerberos/krb5kdc/slave_datatrans) にダンプして、手動でデータベース伝搬テストを実行します。
    # /usr/sbin/kdb5_util dump /var/kerberos/krb5kdc/slave_datatrans
    Copy to Clipboard Toggle word wrap
  9. kprop コマンドを使用して、そのコンテンツをセカンダリー KDC に送信します。
    # kprop slavekdc.example.com
    Copy to Clipboard Toggle word wrap
  10. kinit を使用して、クライアントシステムが KDC から正常に初回認証情報を取得できることを確認します。クライアントの /etc/krb5.conf は、KDC の一覧内のセカンダリー KDC のみを一覧表示する必要があります。
  11. レルムデータベースをダンプし、kprop コマンドの実行によりデータベースを各セカンダリー KDC に送信するスクリプトを作成します。このスクリプトを定期的に実行するように cron サービスを設定します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat