時計の同期化

Kerberosを適切に利用するには、組織内のすべてのシステムの時計(クロック)を一定範囲内に同期化する必要があります。 このことは、Kerberosで再生攻撃からシステムを保護する場合に重要になります。 攻撃者は、ネットワーク上のKerberos資格情報を傍受し、それを使ってサーバを攻撃する可能性があります。 Kerberosは、このような攻撃から防御するために、さまざまな手段を採用しています。 そのような保護手段の1つとして、チケットにタイムスタンプが記入されます。 サーバが現在の時刻と異なるタイムスタンプを持つチケットを受け取った場合、そのチケットは拒否されます。

Kerberosでは、タイムスタンプの比較時に多少の誤差は許容されます。 ただし、コンピュータの時計の時刻が実際とずれてしまうこともよくあります。一週間で30分ほど進んだり、遅れたりすることも珍しくはありません。 このような理由から、ネットワーク上のすべてのホストの時刻を、単一の時刻ソースと同期化するように設定する必要があります。

時刻を同期化するもっとも簡単な方法は、あるコンピュータ上にNTP時間サーバをインストールして、他のすべてのクライアントをこのサーバの時刻と同期化するように設定することです。 そのためには、すべてのクライアント上でNTPデーモンをクライアントモードで稼働させるか、または毎日1回各クライアント上でntpdateコマンドを実行します(この方法は、クライアント数が多い場合、現実的ではない)。 KDC自身も、共通の時間ソースと時刻を同期化する必要があります。 ただし、KDCコンピュータ上でNTPデーモンを稼働させることにはセキュリティリスクがあるため、cronを使ってntpdateを毎日実行することをお勧めします。 お使いのコンピュータをNTPクライアントとして設定するには、32.1項 「YaSTでのNTPクライアントの設定」の説明に従ってください。

Kerberosがタイムスタンプを比較する際に許容する、時間の最大許容誤差を変更することもできます。 この値(クロックスキュー(clock skew))を設定するには、46.5.3項 「クロックスキューの調整」の説明に従って、krb5.confファイルを編集してください。