Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
11.2. Kerberos KDC の設定
マスター KDC を最初にインストールして設定した後に、必要なセカンダリーサーバーをインストールします。
重要
Kerberos KDC を手動で設定することは推奨されません。Red Hat Enterprise Linux 環境に Kerberos を導入する方法として、Identity Management 機能を使用することが推奨されます。
11.2.1. マスター KDC サーバーの設定
重要
KDC システムは専用マシンである必要があります。このマシンは非常に安全である必要があります。可能な場合は、KDC 以外のサービスを実行しないでください。
- KDC に必要なパッケージをインストールします。
[root@server ~]# yum install krb5-server krb5-libs krb5-workstation
- レルム名と、ドメインからレルムへのマッピングを反映するように
/etc/krb5.conf
と/var/kerberos/krb5kdc/kdc.conf
設定ファイルを編集します。以下に例を示します。[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true allow_weak_crypto = true [realms] EXAMPLE.COM = { kdc = kdc.example.com.:88 admin_server = kdc.example.com default_domain = example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM
シンプルなレルムは、EXAMPLE.COM と example.com のインスタンスを正しいドメイン名で置き換えることで設定できます。これは、正しい形式で大文字と小文字の名前を維持することが確実にでき、KDC を kerberos.example.com から Kerberos サーバーの名前に変更することで設定できます。通常、レルム名はすべて大文字で、DNS ホスト名およびドメイン名はすべて小文字になります。これらの設定ファイルの man ページには、ファイル形式に関する詳細が記載されています。 - kdb5_util ユーティリティーを使用してデータベースを作成します。
[root@server ~]# kdb5_util create -s
この create コマンドは、Kerberos レルムのキーを保存するデータベースを作成します。-s 引数は、マスターサーバーキーを保存する stash ファイルを作成します。キーの読み取り元となる stash ファイルがない場合、Kerberos サーバー (krb5kdc) は起動時に毎回マスターサーバーのパスワード (このパスワードを使って鍵を再生成できる) を要求します。 /var/kerberos/krb5kdc/kadm5.acl
ファイルを編集します。このファイルは、Kerberos データベースへの管理アクセス権限およびそのアクセスレベルを決定するために kadmind によって使用されます。以下に例を示します。*/admin@EXAMPLE.COM *
多くのユーザーは、データベース内で単一のプリンシパルで表されます (joe@EXAMPLE.COM などの NULL または空のインスタンス)。この設定では、admin (例: joe/admin@EXAMPLE.COM) のインスタンスを持つ 2 番目のプリンシパルを持つユーザーは、レルムの Kerberos データベースに対する完全な管理制御を強化できます。kadmind がサーバーで起動した後、ユーザーはレルム内のいずれかのクライアントまたはサーバーで kadmin を実行することで、そのサービスにアクセスできます。ただし、kadm5.acl
ファイルにリストされているユーザーのみが、自身のパスワードを変更することを除いて、データベースを編集できます。注記この kadmin ユーティリティーはネットワーク経由で kadmind サーバーと通信し、Kerberos を使用して認証を処理します。したがって、ネットワーク経由でサーバーに接続してサーバーを管理するには、最初のプリンシパルがすでに存在している必要があります。kadmin.local コマンドを使用して最初のプリンシパルを作成します。これは、KDC と同じホストで使用するように特別に設計されており、認証に Kerberos を使用しません。- KDC ターミナル kadmin.local で最初のプリンシパルを作成します。
[root@server ~]# kadmin.local -q "addprinc username/admin"
- 以下のコマンドを使用して Kerberos を起動します。
[root@server ~]# systemctl start krb5kdc.service [root@server ~]# systemctl start kadmin.service
- kadmin 内で addprinc コマンドを使用してユーザーのプリンシパルを追加します。kadmin および kadmin.local は、KDC へのコマンドラインインターフェイスです。そのため、addprinc などのコマンドの多くは、kadmin プログラムの起動後に利用できます。詳細については kadmin の man ページを参照してください。
- KDC がチケットを発行していることを確認します。まず、kinit を実行してチケットを取得し、認証情報キャッシュファイルに保存します。次に、klist を使用してキャッシュ内の認証情報の一覧を表示し、kdestroy を使用して、キャッシュと含まれる認証情報を破棄します。注記デフォルトでは、kinit が同じシステムログインユーザー名 (Kerberos サーバーではなく) を使用して認証を試みます。ユーザー名が Kerberos データベースのプリンシパルに対応しない場合は、kinit がエラーメッセージを発行します。その場合は、コマンドラインの引数として、正しいプリンシパルの名前とともに kinit を提供します。
kinit principal