48.6.5. Kerberos 5 サーバーの設定
Kerberos を設定するときは、KDC を最初にインストールします。スレーブサーバーをセットアップする必要がある場合は、最初にマスターをインストールします。
最初の Kerberos KDC を設定するには、以下の手順に従います。
- Kerberos を設定する前に、時刻同期と DNS がすべてのクライアントおよびサーバーマシンで正しく機能していることを確認します。Kerberos サーバーとそのクライアント間の時刻同期に特に注意してください。サーバーとクライアント間の時間差が 5 分を超える場合(これは Kerberos 5 で設定可能)、Kerberos クライアントはサーバーに認証できません。この時間同期は、攻撃者が古い Kerberos チケットを使用して有効なユーザーとしてマスカレードしないようにするために必要です。Kerberos が使用されていない場合でも、NTP (Network Time Protocol)と互換性のあるクライアント/サーバーネットワークを設定することが推奨されます。Red Hat Enterprise Linux には、この目的のために
ntp
パッケージが含まれています。ネットワークタイムプロトコルサーバーの設定方法は/usr/share/doc/ntp-< version-number > /index.html
(<version-number> はシステムにインストールされているntp
パッケージのバージョン番号)、および NTP の詳細は http://www.ntp.org を参照してください。 - KDC を実行する専用マシンに
krb5-
パッケージをインストールします。このマシンは非常に安全である必要があります。可能な場合は、KDC 以外のサービスを実行しないでください。libs
、krb5-server
、および krb5-workstation - レルム名と、ドメインからレルムへのマッピングを反映するように
/etc/krb5.conf
と/var/kerberos/krb5kdc/kdc.conf
設定ファイルを編集します。シンプルなレルムは、EXAMPLE.COM と example.com のインスタンスを正しいドメイン名で置き換えることで設定できます。これは、正しい形式で大文字と小文字の名前を維持することが確実にでき、KDC を kerberos.example.com から Kerberos サーバーの名前に変更することで設定できます。通常、レルム名はすべて大文字で、DNS ホスト名およびドメイン名はすべて小文字になります。これらの設定ファイルの形式に関する詳細は、それぞれの man ページを参照してください。 - シェルプロンプトから kdb5_util ユーティリティーを使用してデータベースを作成します。
/usr/kerberos/sbin/kdb5_util create -s
この create コマンドは、Kerberos レルムのキーを保存するデータベースを作成します。-s スイッチは、マスターサーバーキーが保存される stash ファイルの作成を強制します。キーの読み取り元となる stash ファイルがない場合、Kerberos サーバー (krb5kdc) は起動時に毎回マスターサーバーのパスワード (このパスワードを使って鍵を再生成できる) を要求します。 /var/kerberos/krb5kdc/kadm5.acl
ファイルを編集します。このファイルは、Kerberos データベースへの管理アクセス権限およびそのアクセスレベルを決定するために kadmind によって使用されます。ほとんどの組織は、次の 1 行で取得できます。*/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 コマンドを入力して、最初のプリンシパルを作成します。/usr/kerberos/sbin/kadmin.local -q "addprinc username/admin"
- 以下のコマンドを使用して Kerberos を起動します。
service krb5kdc start service kadmin start service krb524 start
- kadmin 内で addprinc コマンドを使用してユーザーのプリンシパルを追加します。kadmin および kadmin.local は、KDC へのコマンドラインインターフェイスです。そのため、addprinc などのコマンドの多くは、kadmin プログラムの起動後に利用できます。詳細については kadmin の man ページを参照してください。
- KDC がチケットを発行していることを確認します。まず、kinit を実行してチケットを取得し、認証情報キャッシュファイルに保存します。次に、klist を使用してキャッシュ内の認証情報の一覧を表示し、kdestroy を使用して、キャッシュと含まれる認証情報を破棄します。注記デフォルトでは、kinit は、(Kerberos サーバーではなく)同じシステムログインユーザー名を使用して認証を試みます。ユーザー名が Kerberos データベースのプリンシパルに対応しない場合は、kinit がエラーメッセージを発行します。その場合は、コマンドライン( kinit <principal>)の引数として、正しいプリンシパルの名前とともにkinit を提供します。
これらの手順が完了したら、Kerberos サーバーが稼働しているはずです。