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 で指定されていない場合、すべての設定が失われます。

前提条件

手順

  1. 次の内容を含む 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 ファイルを参照してください。

  2. Playbook の構文を検証します。

    $ ansible-playbook --syntax-check ~/playbook.yml

    このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。

  3. Playbook を実行します。

    $ ansible-playbook ~/playbook.yml

検証

  • 管理対象ノードが chronyd サービスを実行している場合は、次の手順を実行します。

    1. 時刻ソースの詳細を表示します。

      # 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
    2. 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

関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.