Kerberosを構築するには、最初にサーバをインストールします。スレーブサーバーを構築するには、 マスターとスレーブサーバー関係を構築する詳細がKeberos 5 Installation Guide (/usr/share/doc/krb5-server-<バージョン番号> ディレクトリの中)にありますので参照してください。
基本的な Kerberosサーバを設定するには、以下のステップに従います:
Kerberos 5をインストールする前に、時計同期とDNSがサーバーで 正常に動作している事を確認してください。Kerberosサーバーと各クライアント間の 時計同期は特に注意してください。もし、サーバーとクライアントの時計が5分以上 異なっていたら、(これはデフォルトのKeberos 5設定時間です。)Kerberosクライアントは サーバーに認証されません。この時計同期は、正規のユーザーと偽って、古いKerberos チケットを用いるアタッカーを防止するために必要です。
Keberosを用いていない場合でも、ネットワークでクライアント/サーバー互換の NTP(Network Time Protocol)の設定をすべきです。Red Hat Linuxには、簡単にインストールできる ntpパッケージが含まれています。Network Time Protocolサーバの 設定に関する詳細には/usr/share/doc/ntp-<version-number>/index.htmを 参照して、NTPに関するその他の情報については http://www.eecis.udel.edu/~ntpを御覧下さい。
KDCが実行するように決定している専用マシンに、krb5-libs, krb5-server, krb5-workstationをインストール します。このマシンは特にセキュアであることが必要です。 —可能なら、KDC以外の 他のサービスは実行しないことが望まれます。
Kerberosを管理するのに、GUI(Graphical User Interface)を使いたい場合は、 gnome-kerberosパッケージもインストールしてください。 このパッケージには、krb5というチケットを管理するGUIツールが 含まれています。
realm名とドメイン-realm間マッピングを反映するためには/etc/krb5.confと /var/keberos/krb5kdc/kdc.conf設定ファイルを編集してください。簡単なreamlは EXAMPLE.COMとexample.comの例をドメイン名 —大文字か小文字か、正しいフォーマットを確かめて下さい—で置き換え、そして KDCをkerberos.example.comからKerberosサーバー名に変更することで、 構築できます。慣習的に、realm名は大文字で、DNSホスト名とドメイン名は小文字です。 これらファイル形式の詳細については、該当するマニュアルページを参照ください。
シェルプロンプトからkrb5_utilユーティリティを使ってデータベースを作成します:
/usr/kerberos/sbin/kdb5_util create -s |
createコマンドはKerberos realmの鍵を格納するために使用する データベースを作成します。-sスイッチは、マスターサーバー鍵を 格納するstashファイルを作成します。鍵を読むためのstashファイルが 無い場合は、Kerberosサーバー(krb5kdc)は 起動する度に、 ユーザーにマスターサーバーパスワード(鍵を再生成するのに使われる)の入力を促します。
/var/kerberos/krb5kdc/kadm5.aclファイルを編集します。 このファイルはどのプリンシパルがKerberosデータベースにどのレベルでアクセスするかを決める kadmindで使われます。多くの場合、以下の様に一行で編集できます:
*/[email protected]��* |
ほとんどのユーザーは、データベース上に単一のプリンシパル(例えば[email protected]の例 ようにNULLあるいは空で)で表示されます。この設定を用いて、第2のプリンシパルを持っている ユーザーは(例えばjoe/[email protected]のように)adminの例を使って realmのKerberosデータベース上で全権限を使う事ができます。
一旦、kadmindがサーバー上で起動すると、realm内のクライアントや サーバーからkadminを起動する事で、どのユーザーも そのサービスにアクセスできます。しかし、kadm5.aclファイルに 記載されているユーザだけが、自身のパスワード変更以外なら、どのような変更も データーベースに対して行えます。
![]() | 注意 |
---|---|
kadminユーティリティはネットワーク越しにkadmindサーバーと 通信しており、認証を扱うためにKerberosを使います。当然、ネットワーク越しにサーバーに接続する前に、 ネットワークを管理する第一プリンシパルを作成する必要があります。第一プリンシパルを作成するには kadmin.localコマンドを使用します。これは特にKDCと同じホストで使用するように 設計してあり、認証用にKerberosを使用しません。 |
第一プリンシパルを作成するには、KDCターミナルで次のkadmin.localコマンドを 入力します:
/usr/kerberos/sbin/kadmin.local -q "addprinc username/admin" |
以下のコマンドでKerberosを起動します:
/sbin/service krb5kdc start /sbin/service kadmin start /sbin/service krb524 start |
addprincコマンドとkadmin使用してユーザーのための プリンシパルを追加します。kadminとkadmin.localはKDCの コマンドラインインターフェイスです。この中では、kadminプログラムを 起動した後に多くのコマンドが利用できます。詳細はkadminのman ページを御覧下さい。
システムがチケットを発行できるか確かめます。最初に、kinitを 実行してチケットを生成し、証明書キャッシュファイルに格納します。それからklistを 使用してキャッシュ内の証明書一覧を表示して、その後、kdestroyを 用いて、キャッシュとその中身の証明書を破棄します。
![]() | 注意 |
---|---|
デフォルトでは、kinitは、最初にシステム(Kerberosサーバーではない)に ログインした時に使ったアカウントのログインユーザー名を用いて、認証しようとします。 そのシステムのユーザー名がKerberosデータベースのプリンシパルと合致していない場合は、 エラーメッセージが表示されます。この場合は、コマンドラインの引数としてプリンシパルの名前を kinitに与えます。(kinitprincipal)。 |
以上のステップを完了すると、Kerberosサーバーは起動し作動してるはずです。次は、 Kerberosクライアントの設定をします。