Red Hat Linux 7.1におけるKerberos 5サーバーのセットアップ

 Kerberosをセットアップするには、まずサーバー(群)をインストールします。 スレーブサーバー群をセットアップする必要がある場合、マスタサーバーとスレーブサーバー群の関係をセットアップする方法の詳細については、『Kerberos 5 Installation Guide』( /usr/share/doc/krb5-server-<version-number> ディレクトリにあります)を参照してください。

 Kerberosサーバーをインストールするには、以下のようにします。

  1. Kerberos 5をインストールするには、時計の同期が取られていることと、サーバー上でDNSが機能していることを確認しなければなりません。Kerberosサーバーと多数のクライアントとの間で時計の同期が取られているかどうかについては、特に注意を払ってください。 サーバーとクライアントの時計のずれが5分を超えると(このデフォルトの数値はKerberos 5で設定されます)、Kerberosクライアントはサーバーに対して認証を行うことができません。 このような時計の同期化は、攻撃者が正当なユーザーとしてマスカレードを行う際に古い認証を使用できないようにするために必要です。

    Kerberosを使用していない場合でも、Red Hat Linuxを使用して、NTP(Network Time Protocol)互換のクライアント/サーバーネットワークをセットアップしなければなりません。 Red Hat Linux 7.1には、インストールを容易にするために、 ntp パッケージが用意されています。 NTPの詳細については、http://www.eecis.udel.edu/~ntp を参照してください。

  2. KDCを動作させる予定の専用マシン上に、krb5-libskrb5-serverkrb5-workstationの各パッケージをインストールします。 このマシンは、正しく保護される必要があります。可能であれば、KDC以外のサービスを実行すべきではありません。

    Kerberosを管理するためのGUI(Graphical User Interface)ユーティリティを使用したい場合には、 gnome-kerberos パッケージもインストールする必要があります。 このパッケージには、チケット管理用のGUIツール krb5 や、Kerberosのrealmを管理するためのGUIツール gkadmin が含まれています。

  3. 使用するrealmの名前と、ドメインからrealmへのマッピングを反映するために、設定ファイルである /etc/krb5.conf/var/kerberos/krb5kdc/kdc.conf を編集します。 単純なrealmを作成するには、 EXAMPLE.COMexample.com のインスタンスを、使用するドメイン名と置き換え(大文字の名前は大文字のまま、小文字の名前は小文字のままとします)、KDCを kerberos.example.com から、使用するKerberosサーバー名に変更します。 慣習により、すべてのrealm名は大文字となっており、すべてのDNSホスト名とドメイン名は小文字となっています。 上記のファイルのフォーマットに関する詳細については、各manページを参照してください。

  4. シェルプロンプトから kdb5_util ユーティリティを使用して、データベースを作成します。

    /usr/kerberos/sbin/kdb5_util create -s

    create コマンドを使用することによって、Kerberosのrealm用の鍵を保存するためのデータベースを作成します。 -s スイッチを使用すると、マスタサーバー鍵の保存場所である stash ファイルが強制的に作成されます。 鍵の読み込み元であるstashファイルが存在しない場合、Kerberosサーバー( krb5kdc )は、起動するたびにユーザーに対してマスタサーバー用のパスワード(鍵を再生成するために使用することができます)を入力するように指示します。

  5. /var/kerberos/krb5kdc/kadm5.acl ファイルを編集します。 kadmind は、このファイルを使用することによって、どのプリンシパルに対して、どのようなレベルのKerberosデータベースへのアクセスを可能にするかを決定します。 ほとんどの組織の場合は、1行書けば済みます。

    */[email protected]��*

    ほとんどのユーザーは、データベースの中では、( NULL 、つまり空のインスタンスを持つ、たとえば [email protected] などの)1つのプリンシパルとして表現されます。 この設定の場合、 admin というインスタンスを持つ第二のプリンシパルを持ったユーザーは(たとえば joe/[email protected] )、realmのKerberosデータベースに対してすべての権限を使用することができるようになります。

    このサーバー上で、 kadmind が起動された後では、どのユーザーもrealm内の任意のクライアントかサーバー上で、 kadmingkadmin のいずれかを実行することによって、サービスにアクセスできるようになります。 ただし、自分自身のパスワードを変更すること以外の、何らかの形でのデータベース修正を実行できるのは、 kadm5.acl ファイルの中にリストされたユーザーのみです。

    Note注意
     

    kadmingkadmin のユーティリティはいずれも、ネットワーク経由で kadmind サーバーと通信し、Kerberosを使用して認証を実行します。 もちろん、ネットワーク経由の管理を目的としてサーバーと接続できるようにするためには、第一のプリンシパルを作成する必要があります。 kadmin.local コマンドにより、第一のプリンシパルを作成します。このコマンドは、厳密に言えば、KDCと同一のホスト上で使用するために設計されており、認証用にKerberosを使用しません。

    KDC端末で、以下のように kadmin.local コマンドを入力して、第一のプリンシパルを作成します。

    /usr/kerberos/sbin/kadmin.local -q "addprinc
    username
    /admin"
  6. 以下のコマンドを使用してKerberosを起動します。

    /sbin/service krb5kdc start
    /sbin/service kadmin start
    /sbin/service krb524 start
  7. ユーザーのプリンシパルを追加するには、 kadminaddprinc コマンドを使用するか、gkadmin[Principal]-[Add]メニューを使用します。kadmin(とマスタKDC上の kadmin.local)は、Kerberos管理システムに対するコマンドラインインターフェイスです。 そのため、 kadmin プログラムの実行後に、多数のコマンドを利用できます。 詳細については、kadminのmanページを参照してください。

  8. サーバーによってチケットが発行されることを検証します。 まず、 kinit を実行してチケットを取得し、そのチケットを証明書キャッシュファイルに保存します。 次に、 klist を使用してキャッシュ内の証明書一覧を参照し、 kdestroy を使用してキャッシュとその中に含まれる証明書を破棄します。

    Note注意
     

    デフォルト設定の場合、 kinit は、ユーザーが最初にシステム(Kerberosサーバーではない)にログインした際に使用したアカウントのログインユーザー名を使用してユーザーを認証しようとします。 システムのユーザー名がKerberosデータベース内のプリンシパルと対応しない場合は、エラーメッセージが表示されます。 その場合には、 kinit に対して、コマンドライン上の引数としてプリンシパルの名前を指定してください(kinit principal )。

 上記のステップを完了すると、Kerberosサーバーが立ち上がり、稼動するはずです。 次に、Kerberosクライアントをセットアップする必要があります。