16.17. NTP の設定

NTP サービスのデフォルト設定を変更するには、root でテキストエディターを使用して /etc/ntp.conf ファイルを編集します。このファイルは、ntpd と共にインストールされ、Red Hat プールからのタイムサーバーを使用するデフォルト設定になっています。ntp.conf(5) man ページでは、アクセスおよびレート制限コマンドを除く、設定ファイルで使用可能なコマンドオプションが説明されています。アクセスおよびレート制限コマンドは、ntp_acc(5) man ページで説明されています。

16.17.1. NTP サービスへのアクセス制御の設定

システム上で実行中の NTP サービスへのアクセスを制限または制御するには、ntp.conf ファイル内の restrict コマンドを利用します。コメントアウトされた例は以下のとおりです。
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict コマンドは以下の形式になります。
restrict option
ここでの option は、以下のいずれか (1 つまたは複数) になります。
  • ignorentpq および ntpdc クエリーを含むすべてのパケットが無視されます。
  • kodKiss-o'-death パケットが送信され、不要なクエリーが少なくなります。
  • limited — パケットがレート制限のデフォルト値または discard コマンドで指定された値に違反する場合、タイムサーバー要求に応答しません。ntpq および ntpdc クエリーには影響ありません。discard コマンドおよびデフォルト値に関する詳細情報は、「NTP サービスへのレート制限アクセスの設定」 を参照してください。
  • lowpriotrap — 一致するホストがトラップを低い優先度に設定します。
  • nomodify — 設定に変更を加えられないようにします。
  • noqueryntpq および ntpdc クエリーに応答しないようにしますが、タイムクエリーは除外されます。
  • nopeer — ピア関連付けの形成をできないようにします。
  • noserventpq および ntpdc クエリーを除くすべてのパケットを拒否します。
  • notrapntpdc 制御メッセージプロトコルトラップをできないようにします。
  • notrust — 暗号法で認証されないパケットを拒否します。
  • ntpport — 発信元ポートが標準の NTP UDP ポート 123 の場合、一致アルゴリズムが制限のみを適用するように修正します。
  • version — 現在の NTP バージョンに一致しないパケットを拒否します。
レート制限アクセスがクエリーに対してまったく応答しないように設定するには、各 restrict コマンドで limited オプションが必要になります。ntpdKoD パケットで応答するには、restrict コマンドは limited および kod の両方のオプションが必要になります。
ntpq および ntpdc クエリーは増幅攻撃に使用可能 (詳細は CVE-2013-5211 を参照) なので、アクセスを公開しているシステムでは、restrict default コマンドから noquery オプションを削除しないでください。

16.17.2. NTP サービスへのレート制限アクセスの設定

システム上で実行中の NTP サービスへのレート制限アクセスを有効にするには、 「NTP サービスへのアクセス制御の設定」 の説明にあるように、restrict コマンドに limited オプションを追加します。デフォルトの discard パラメーターを使用したくない場合は、以下の説明にあるように discard コマンドも使用できます。
discard コマンドは以下の形式になります。
discard [average value] [minimum value] [monitor value]
  • average — 許可される最小限の平均パケット間隔を指定します。log2 秒の引数を取ります。デフォルト値は 3 です (23 は 8 秒と同等です)。
  • minimum — 許可される最小限のパケット間隔を指定し、log2 秒の引数を取ります。デフォルト値は 1 です (21 は 2 秒と同等です)。
  • monitor — 許可されるレート制限を超えた場合のパケットの discard の確率を指定します。デフォルト値は、3000 秒です。このオプションは、1 秒あたり 1000 以上のリクエストを受信するサーバー用に用意されています。
discard コマンドの例を以下に示します。
discard average 4
discard average 4 minimum 2

16.17.3. ピアアドレスの追加

ピアのアドレス、つまり同一 stratum の NTP サービスを実行しているサーバーのアドレスを追加するには、ntp.conf ファイルの peer コマンドを利用します。
peer コマンドは以下の形式になります。
peer address
ここでの address は、IP ユニキャストアドレスまたは DNS の解決可能な名前になります。アドレスは、同一 stratum のメンバーに既知のシステムのものである必要があります。ピアは、相互に異なる時間ソースを少なくとも 1 つ持っている必要があります。ピアは通常、同一管理制御下にあるシステム群です。

16.17.4. サーバーアドレスの追加

サーバーのアドレス、つまり一段階上の stratum の NTP サービスを実行しているサーバーのアドレスを追加するには、ntp.conf ファイルの server コマンドを利用します。
server コマンドは以下の形式になります。
server address
ここでの address は、IP ユニキャストアドレスまたは DNS の解決可能な名前になります。パケットの送信元となるリモートリファレンスサーバーまたはローカルリファレンスクロックのアドレスになります。

16.17.5. ブロードキャストまたはマルチキャストサーバーアドレスの追加

送信用のブロードキャストまたはマルチキャストアドレス、つまり NTP パケットをブロードキャストまたはマルチキャストする宛先のアドレスを追加 するには、ntp.conf ファイルの broadcast コマンドを利用します。
ブロードキャストおよびマルチキャストの両モードは、デフォルトで認証を必要とします。「NTP の認証オプション」 を参照してください。
broadcast コマンドは以下の形式になります。
broadcast address
ここでの address は、パケットの送信先となる IP ブロードキャストまたはマルチキャストアドレスになります。
このコマンドは、システムが NTP ブロードキャストサーバーとして作動するように設定します。使用するアドレスは、ブロードキャストかマルチキャストアドレスである必要があります。ブロードキャストアドレスの場合は、IPv4 アドレス 255.255.255.255 を意味します。デフォルトでは、ルーターはブロードキャストメッセージを渡しません。マルチキャストアドレスの場合は、IPv4 Class D アドレスか IPv6 アドレスになります。IANA は IPv4 マルチキャストアドレス 224.0.1.1IPv6 アドレス FF05::101 (サイトローカル) を NTP に割り当てています。RFC 2365 Administratively Scoped IP Multicast の説明にあるように、管理者が範囲指定した IPv4 マルチキャストアドレスも使用可能です。

16.17.6. Manycast クライアントアドレスの追加

manycast クライアントアドレスを追加する、つまり NTP サーバーの発見に使用するマルチキャストアドレスを設定するには、ntp.conf ファイルの manycastclient コマンドを利用します。
manycastclient コマンドは以下の形式になります。
manycastclient address
ここでの addressIP マルチキャストアドレスで、ここからパケットが受信されます。クライアントはこのアドレスにリクエストを送信し、応答から最善のサーバーを選んで他を無視します。その後は、NTP 通信は発見された NTP サーバーが ntp.conf リストされているかのようにユニキャスト関連付けを使用します。
このコマンドは、システムが NTP クライアントのように動作するように設定します。システムは、同時にクライアントとサーバーの両方になることができます。

16.17.7. ブロードキャストクライアントアドレスの追加

ブロードキャストクライアントのアドレスを追加するには、つまりブロードキャスト NTP パケット用にブロードキャストアドレスを監視するように設定するには、ntp.conf ファイルの broadcastclient コマンドを利用します。
broadcastclient コマンドは以下の形式になります。
broadcastclient
ブロードキャストメッセージを受信可能にします。デフォルトで認証を必要とします。「NTP の認証オプション」 を参照してください。
このコマンドは、システムが NTP クライアントのように動作するように設定します。システムは、同時にクライアントとサーバーの両方になることができます。

16.17.8. Manycast サーバーアドレスの追加

manycast サーバーのアドレスを追加する、つまり NTP パケットをマルチキャストすることでクライアントがサーバーを発見できるようにするアドレスを設定するには、ntp.conf ファイルの manycastserver コマンドを利用します。
manycastserver コマンドは以下の形式になります。
manycastserver address
マルチキャストメッセージの送信ができるようになります。ここでの address は、マルチキャスト送信先のアドレスになります。これは認証と合わせて使用して、サービス中断を防ぎます。
このコマンドは、システムが NTP サーバーのように動作するように設定します。システムは、同時にクライアントとサーバーの両方になることができます。

16.17.9. マルチキャストクライアントアドレスの追加

マルチキャストクライアントのアドレスを追加するには、つまりマルチキャスト NTP パケット用にマルチキャストアドレスを監視するように設定するには、ntp.conf ファイルの multicastclient コマンドを利用します。
multicastclient コマンドは以下の形式になります。
multicastclient address
マルチキャストメッセージの受信ができるようになります。ここでの address は、サブスクライブするアドレスになります。これは認証と合わせて使用して、サービス中断を防ぎます。
このコマンドは、システムが NTP クライアントのように動作するように設定します。システムは、同時にクライアントとサーバーの両方になることができます。

16.17.10. Burst オプションの設定

公開サーバーに対して burst オプションを使用することは、濫用とみなされます。公開 NTP サーバーでは、このオプションを使用しないでください。このオプションは、組織内のアプリケーションにのみ使用するようにしてください。
時間オフセットの統計情報の平均的な品質を向上させるには、サーバーコマンドの最後に以下のオプションを追加します。
burst
サーバーが反応している場合は、ポーリングの間隔ごとにシステムが通常の 1 パケットではなく、最大 8 パケットのバーストを送信します。server コマンドを使うと、時間オフセット計算の平均的な質が向上します。

16.17.11. iburst オプションの設定

初回同期にかかる時間を改善するには、サーバーコマンドの最後に以下のオプションを追加します。
iburst
サーバーに到達できない場合は、1 パケットではなく、8 パケットのバーストが送信されます。パケットの間隔は通常は 2 秒間隔ですが、1 番目と2 番目のパケット間の間隔は、モデムまたは ISDN 呼び出しの完了に必要な追加の時間を許可できるように calldelay コマンドを使って変更することができます。server コマンドと使用すると、初回の同期にかかる時間が短縮されます。これが設定ファイルでのデフォルトオプションになります。

16.17.12. 鍵を使った対称認証の設定

鍵を使った対称認証を設定するには、サーバーまたはピアコマンドの最後に以下のオプションを追加します。
key number
ここでの number は、1 から 65534 までの数字になります。このオプションを使うと、パケット内で メッセージ認証コード (MAC) が使えるようになります。このオプションは、peerserverbroadcast、および manycastclient の各コマンドで使用します。
このオプションは、/etc/ntp.conf 内で以下のように使用します。
server 192.168.1.1 key 10
broadcast 192.168.1.255 key 20
manycastclient 239.255.254.254 key 30
「NTP の認証オプション」 も参照してください。

16.17.13. ポーリング間隔の設定

デフォルトのポーリング間隔を変更するには、サーバーまたはピアコマンドの最後に以下のオプションを追加します。
minpoll value and maxpoll value
デフォルトのポーリング間隔を変更するオプションです。ここでは、間隔の秒数は 2 の value の累乗を計算して出されたものです。つまり、間隔は log2 秒で表示されます。デフォルトの minpoll 値は 6 なので、26 は 64 秒となります。デフォルトの maxpoll 値は 10 なので、1024 秒になります。使用可能な値は、3 から 17 なので、8 秒から 36.4 時間までに相当します。これらのオプションは、peer または server で使用します。maxpoll を低く設定すると、クロックの精度が高まります。

16.17.14. サーバー優先順位の設定

特定のサーバーが他の同様の統計情報のサーバーよりも優先されるよう指定するには、サーバーまたはピアコマンドの最後に以下のオプションを追加します。
prefer
他の同様の統計情報のサーバーに優先して、このサーバーが同期に使用されます。このオプションは、peer または server コマンドで使用します。

16.17.15. NTP パケットの Time-to-Live (有効期限) の設定

デフォルトで使用される特定の time-to-live (TTL: 有効期限) の値を指定するには、サーバーまたはピアコマンドの最後に以下のオプションを追加します。
ttl value
ブロードキャストサーバーおよびマルチキャスト NTP サーバーが送信するパケットで使用される TTL の値を指定します。manycast クライアントが expanding ring search を使用するには、TTL の最大値を指定します。デフォルト値は 127 です。

16.17.16. 使用する NTP バージョンの設定

デフォルトで使用される特定バージョンの NTP を指定するには、サーバーまたはピアコマンドの最後に以下のオプションを追加します。
version value
作成された NTP パケット内の NTP セットのバージョンを指定します。値は 1 から 4 になります。デフォルト値は 4 です。