第 13章Kerberos

Kerberosは、MITで開発されたネットワーク認証プロトコルです。このプロトコルでは、平文パスワードの代わりに鍵暗号が使用されます。Kerberosによってシステムセキュリティの新たな層が構築され、認証されていないユーザーがユーザーパスワードを盗み見るのが困難になります。Kerberosの機能についての詳細は、オフィシャル Red Hat Linuxリファレンスガイドを参照してください。

Kerberos 5サーバーの設定

Kerberosのセットアップを行うには、最初にサーバー(群)をインストールします。スレーブサーバーを設定する場合は、Kerberos 5 Installation Guide/usr/share/doc/krb5-server-<version-number>ディレクトリにあります)に記載されているマスタサーバーとスレーブサーバー間の関係を設定する方法を参照してください。

Kerberosサーバーのインストール方法

  1. Kerberos 5をインストールするには、時計が同期していることと、サーバー上でDNSが機能していることを確認してください。特に、Kerberosサーバーと各種クライアント間で時計の同期が取れているよう注意してください。サーバーとクライアントの時計のずれが5分を超えると(このデフォルト値はKerberos 5で設定が可能)、Kerberosクライアントはサーバーに対して認証を行えなくなります。時計の同期は、攻撃者が古い認証を使用して正当なユーザーになりすますことを防ぐ上で必要となります。

    Red Hat Linuxを使用して、NTP(Network Time Protocol)対応のクライアント/サーバーネットワークをセットアップします。これはKerberosを使用しない場合にも行うようにしてください。Red Hat Linux 7.2には、インストールを容易にするためのntpパッケージが含まれています。NTPの詳細については、http://www.eecis.udel.edu/~ntpを参照してください。

  2. KDCを実行する専用のマシンに、krb5-libsパッケージ、krb5-serverパッケージ、krb5-workstationパッケージをインストールします。このマシンは正しく保護されている必要があります。可能であれば、KDC以外のサービスは実行しないようにしてください。

    GUIユーティリティを使用してKerberosの管理を行うには、gnome-kerberosパッケージもインストールしてください。これには、チケット管理用のGUIツールであるkrb5や、Kerberosのrealmを管理するGUIツールgkadminが含まれています。

  3. /etc/krb5.conf/var/kerberos/krb5kdc/kdc.conf構成ファイルを編集して、使用するrealmの名前と、ドメインからrealmへのマッピングを記述します。単純な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行を記述すれば十分です。

    */admin@EXAMPLE.COM