ネットワーク上の各コンピュータがそれぞれどのKerberosレルムに所属しているか、またどのKDCと通信するかを設定するほかに、それのホストプリンシパルを作成します。 ここまでは、ユーザ資格情報について説明してきました。 しかし、一般的にKerberos互換のサービスは、自分自身もクライアントから認証を受ける必要があります。 そのため、レルム中の各ホストのKerberosデータベース中に、特別なホストプリンシパルを作成する必要があります。
ホストプリンシパルの命名規則は、host/<hostname>@<REALM>です。ここで、hostnameには、ホストの完全修飾ホスト名を指定します。 ホストプリンシパルはユーザプリンシパルと似ていますが、大きな違いがあります。 ユーザプリンシパルのキーは、パスワードにより保護されています。ユーザがKDCからticket-grantingチケットを入手する場合、そのチケットを復号化するにはパスワードを入力する必要があります。 システム管理者にとっては、SSHデーモン用のチケットを8時間ごとに入手し直さなければならないのは不便です。
そこで、ホストプリンシパル用の初期チケットを復号化するために必要なキーは、KDCから1回入手したら、それをkeytabと呼ばれるローカルファイルに格納します。 SSHデーモンなどのサービスは、必要な時にこのキーを読み込んで、新しいチケットを自動的に入手します。 デフォルトでは、keytabファイルは/etc/krb5.keytabに格納されています。
test.example.com用のホストプリンシパルを作成するには、kadminセッション中に次のコマンドを入力します。
kadmin -p newbie/admin Authenticating as principal newbie/admin@EXAMPLE.COM with password. Password for newbie/admin@EXAMPLE.COM: kadmin: addprinc -randkey host/test.example.com WARNING: no policy specified for host/test.example.com@EXAMPLE.COM; defaulting to no policy Principal "host/test.example.com@EXAMPLE.COM" created.
新しいプリンシパル用のパスワードを設定するかわりに、-randkeyを指定して、kadminにランダムキーの生成を指示します。 このプリンシパルの場合、ユーザが処理に介入することは想定されていないため、このオプションを使用します。 このプリンシパルは、このコンピュータ用のサーバアカウントです。
最後に、キーを入手して。それをローカルのkeytabファイルである/etc/krb5.keytabに保管します。 このファイルはスーパーユーザが所有者になります。そのため、kadminシェルで次のコマンドを実行するには、rootでなければなりません。
kadmin: ktadd host/test.example.com Entry for principal host/test.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/test.example.com with kvno 3, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab. kadmin:
作業が完了したら、前述のkinitで入手した管理チケットをkdestroyコマンドで破棄してください。