13.5. 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
が致命的なメッセージを表示して中断する可能性があります。/etc/sysconfig/chronyd
ファイルに GNUTLS_FORCE_FIPS_MODE=0
設定を追加することで、chronyd
サービスの OSPP プロファイルと FIPS モードを無効にできます。
13.5.1. クライアントでの Network Time Security (NTS) の有効化
デフォルトでは、Network Time Security (NTS) は有効になっていません。/etc/chrony.conf
では、NTS を有効にできます。これを行うには、以下の手順を実行します。
前提条件
- タイムサーバーが NTS をサポートしている。
手順
/etc/crony.conf
ファイルを編集し、次の変更を加えます。
推奨される
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) セッションが繰り返されないように、次の設定を追加します。
ntsdumpdir /var/lib/chrony
次の設定をコメントアウトまたは削除して、
DHCP
によって提供される Network Time Protocol (NTP) サーバーとの同期を無効にします (設定が存在する場合)。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.netnod.se NTS 1 15 256 33m 0 0 8 100 ptbtime1.ptb.de 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.netnod.se 1 6 377 44 +237us[ +237us] +/- 23ms ptbtime1.ptb.de 1 6 377 44 -170us[ -170us] +/- 22ms
Reach
列の値はゼロ以外にする必要があります。理想的には 377 です。この値が 377 になることがめったにないか、377 に到達しない場合は、NTP の要求または応答がネットワークで失われていることを示しています。
関連情報
-
システム上の
chrony.conf(5)
man ページ
13.5.2. タイムサーバーでの Network Time Security (NTS) の有効化
独自の Network Time Protocol (NTP) サーバーを実行している場合は、サーバーの Network Time Security (NTS) サポートを有効にして、クライアントの同期を容易にし、安全に行うことができます。
NTP サーバーがその他のサーバーのクライアントである (Stratum 1 サーバーではない) 場合は、同期に NTS または対称鍵を使用する必要があります。
前提条件
-
PEM
形式のサーバー秘密鍵 -
PEM
形式で必要な中間証明書を持つサーバー証明書
手順
/etc/chrony.conf
ファイルを編集し、次の変更を加えます。ntsserverkey /etc/pki/tls/private/<ntp-server.example.net>.key ntsservercert /etc/pki/tls/certs/<ntp-server.example.net>.crt
秘密鍵と証明書ファイルの両方に、ファイルの読み取りを chrony ユーザーに許可する権限を設定します。次に例を示します。
# chown root:chrony /etc/pki/tls/private/<ntp-server.example.net>.key /etc/pki/tls/certs/<ntp-server.example.net>.crt # chmod 644 /etc/pki/tls/private/<ntp-server.example.net>.key /etc/pki/tls/certs/<ntp-server.example.net>.crt
-
ntsdumpdir /var/lib/chrony
設定が存在することを確認します。 Firewalld で必要なポートを開きます。
# firewall-cmd –permannent --add-port={323/udp,4460/tcp} # firewall-cmd --reload
chronyd
を再起動します。# systemctl restart chronyd
検証
クライアントマシンからテストを実行します。
$ 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 リクエストを送信できたことを意味します。