30.2. timesync RHEL システムロールを使用した NTP と NTS による時刻同期の設定
Network Time Protocol (NTP) は、ネットワーク経由でホストの時刻を NTP サーバーと同期します。クライアントは、Network Time Security (NTS) メカニズムを使用することで、サーバーへの TLS 暗号化接続を確立し、NTP パケットを認証します。IT ネットワーク内では、複数のサービスが、セキュリティーやロギングなどのために、正確なシステム時刻に依存しています。timesync
RHEL システムロールを使用すると、ネットワーク内の Red Hat Enterprise Linux NTP クライアントの設定を自動化し、NTS で時刻を同期させることができます。
NTS サーバーと非 NTS サーバーを混在させることはできないことに注意してください。混在する構成では、NTS サーバーが信頼され、認証されていない NTP ソースにクライアントがフォールバックしません。これは、サーバーが中間者 (MITM) 攻撃に悪用される可能性があるためです。詳細は、システム上の chrony.conf(5)
man ページの authselectmode
パラメーターに関する説明を参照してください。
timesync
RHEL システムロールは、管理対象ホスト上の指定または検出されたプロバイダーサービスの設定を置き換えます。したがって、設定が Playbook で指定されていない場合、すべての設定が失われます。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo
権限がある。 -
管理対象ノードが
chronyd
を使用している。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml
) を作成します。--- - name: Managing time synchronization hosts: managed-node-01.example.com tasks: - name: Configuring NTP with NTS-enabled servers ansible.builtin.include_role: name: rhel-system-roles.timesync vars: timesync_ntp_servers: - hostname: ptbtime1.ptb.de nts: yes iburst: yes
サンプル Playbook で指定されている設定は次のとおりです。
iburst: yes
- 高速な初期同期を可能にします。
Playbook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.timesync/README.md
ファイルを参照してください。Playbook の構文を検証します。
$ ansible-playbook --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
検証
管理対象ノードが
chronyd
サービスを実行している場合は、次の手順を実行します。時刻ソースの詳細を表示します。
# ansible managed-node-01.example.com -m command -a 'chronyc sources' MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* ptbtime1.ptb.de 1 6 17 55 -13us[ -54us] +/- 12ms ^- ptbtime2.ptb.de 1 6 17 56 -257us[ -297us] +/- 12ms
NTS が有効なソースの場合、NTP ソースの認証に固有の情報を表示します。
# ansible managed-node-01.example.com -m command -a 'chronyc -N authdata' Name/IP address Mode KeyID Type KLen Last Atmp NAK Cook CLen ========================================================================= ptbtime1.ptb.de NTS 1 15 256 229 0 0 8 100 ptbtime2.ptb.de NTS 1 15 256 230 0 0 8 100
Cook
列に報告される Cookie が 0 より大きいことを確認します。
管理対象ノードが
ntpd
サービスを実行している場合は、次のように入力します。# ansible managed-node-01.example.com -m command -a 'ntpq -p' remote refid st t when poll reach delay offset jitter ============================================================================== *ptbtime1.ptb.de .PTB. 1 8 2 64 77 23.585 967.902 0.684 -ptbtime2.ptb.de .PTB. 1 8 30 64 78 24.653 993.937 0.765
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.time_sync/README.md
ファイル -
/usr/share/doc/rhel-system-roles/time_sync/
ディレクトリー - Are the rhel.pool.ntp.org NTP servers supported by Red Hat?(Red Hat ナレッジベース)