13.4. chrony における Network Time Security (NTS) の概要
Network Time Security (NTS) は、大規模なクライアントを拡張するように設計された Network Time Protocol (NTP) の認証メカニズムです。これは、クライアントマシンへの移動時に、サーバーマシンから受信したパケットが変更されていないことを確認します。NTS (Network Time Security) には、サーバーとそのクライアント間で使用される暗号鍵を自動的に作成する NTS-KE (Key Establishment) プロトコルが含まれます。
NTS は、FIPS および OSPP プロファイルと互換性がありません。FIPS および OSPP プロファイルを有効にすると、NTS で設定された chronyd
が致命的なメッセージを表示して中断する可能性があります。GNUTLS_FORCE_FIPS_MODE=0
を /etc/sysconfig/chronyd
ファイルに追加することで、chronyd
サービスの OSPP プロファイルと FIPS モードを無効にできます。
13.4.1. クライアント設定ファイルでの Network Time Security (NTS) の有効化
デフォルトでは、Network Time Security (NTS) は有効になっていません。/etc/chrony.conf
では、NTS を有効にできます。これを行うには、以下の手順を実行します。
前提条件
- NTS に対応するサーバー
手順
クライアント設定ファイル
推奨される
iburst
オプションのほかに、nts
オプションを使用してサーバーを指定します。For example: server time.example.com iburst nts server nts.netnod.se iburst nts server ptbtime1.ptb.de iburst nts
システムの起動時に Network Time Security-Key Establishment (NTS-KE) セッションが繰り返されないようにするには、次の行 (がない場合) を
chrony.conf
に追加します。ntsdumpdir /var/lib/chrony
DHCP
によって提供されるネットワークタイムプロトコル (NTP) サーバーとの Synchronization を無効にするには、chrony.conf
に次の行がある場合は、コメントアウトするか削除します。sourcedir /run/chrony-dhcp
- 変更を保存します。
chronyd
を再起動します。systemctl restart chronyd
検証
NTS
キーが正常に確立されたかどうかを確認します。# chronyc -N authdata Name/IP address Mode KeyID Type KLen Last Atmp NAK Cook CLen ================================================================ time.example.com NTS 1 15 256 33m 0 0 8 100 nts.sth1.ntp.se NTS 1 15 256 33m 0 0 8 100 nts.sth2.ntp.se NTS 1 15 256 33m 0 0 8 100
KeyID
、Type
、およびKLen
には、ゼロ以外の値を指定する必要があります。この値が 0 になっていない場合は、システムログでchronyd
からのエラーメッセージを確認します。クライアントが NTP 測定を行っていることを確認します。
# chronyc -N sources MS Name/IP address Stratum Poll Reach LastRx Last sample ========================================================= time.example.com 3 6 377 45 +355us[ +375us] +/- 11ms nts.sth1.ntp.se 1 6 377 44 +237us[ +237us] +/- 23ms nts.sth2.ntp.se 1 6 377 44 -170us[ -170us] +/- 22ms
Reach
列の値はゼロ以外にする必要があります。理想的には 377 です。この値が 377 になることがめったにないか、377 に到達しない場合は、NTP の要求または応答がネットワークで失われていることを示しています。
関連情報
-
chrony.conf(5)
の man ページ
13.4.2. サーバーで NTS (Network Time Security) の有効化
独自の Network Time Protocol (NTP) サーバーを実行している場合は、サーバーの Network Time Security (NTS) サポートを有効にして、クライアントの同期を容易にし、安全に行うことができます。
NTP サーバーがその他のサーバーのクライアントである (Stratum 1 サーバーではない) 場合は、同期に NTS または対称鍵を使用する必要があります。
前提条件
-
PEM
形式のサーバー秘密鍵 -
PEM
形式で必要な中間証明書を持つサーバー証明書
手順
chrony.conf
で秘密鍵と証明書ファイルを指定します。以下に例を示します。ntsserverkey /etc/pki/tls/private/<ntp-server.example.net>.key ntsservercert /etc/pki/tls/certs/<ntp-server.example.net>.crt
グループの所有権を設定し、鍵と証明書ファイルの両方が chrony システムユーザーにより読み取り可能であることを確認します。以下に例を示します。
# chown :chrony /etc/pki/tls//<ntp-server.example.net>.
-
ntsdumpdir /var/lib/chrony
ディレクティブがchrony.conf
に存在することを確認します。 chronyd
を再起動します。# systemctl restart chronyd
重要サーバーにファイアウォールがある場合は、NTP 用の
UDP 123
ポートとTCP 4460
ポート、および NTS-KE (Network Time Security-Key Establishment) の両方を許可する必要があります。
検証
次のコマンドを使用して、クライアントマシンからクイックテストを実行します。
$ chronyd -Q -t 3 'server ntp-server.example.net iburst nts maxsamples 1' 2021-09-15T13:45:26Z chronyd version 4.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SIGND +ASYNCDNS +NTS +SECHASH +IPV6 +DEBUG) 2021-09-15T13:45:26Z Disabled control of system clock 2021-09-15T13:45:28Z System clock wrong by 0.002205 seconds (ignored) 2021-09-15T13:45:28Z chronyd exiting
System clock wrong
メッセージは、NTP サーバーが NTS-KE 接続を受け入れ、NTS で保護されている NTP メッセージで応答していることを示しています。サーバーで監視されている NTS-KE 接続と認証された NTP パケットを確認します。
# chronyc serverstats NTP packets received : 7 NTP packets dropped : 0 Command packets received : 22 Command packets dropped : 0 Client log records dropped : 0 NTS-KE connections accepted: 1 NTS-KE connections dropped : 0 Authenticated NTP packets: 7
NTS-KE connections accepted
およびAuthenticated NTP packets
の値がゼロ以外の値の場合は、少なくとも 1 台のクライアントが NTS-KE ポートに接続し、認証された NTP リクエストを送信できたことを意味します。