Menu Close

第 30 章 chrony 中的网络时间安全概述(NTS)

Network Time Security(NTS)是用于网络时间协议(NTP)的身份验证机制,旨在扩展大量客户端。它将验证从服务器计算机接收的数据包在移到客户端机器时是否被取消处理。Network Time Security(NTS)包含 Key Establishment(NTS-KE)协议,该协议会自动创建在服务器及其客户端中使用的加密密钥。

30.1. 在客户端配置文件中启用网络时间协议(NTS)

默认情况下不启用 Network Time Security(NTS)。您可以在 /etc/chrony.conf 中启用 NTS。为此,请执行以下步骤:

先决条件

  • 带有 NTS 支持的服务器

流程

在客户端配置文件中:

  1. 除推荐的 iburst 选项外,使用 nts 选项指定服务器。

    For example:
    server time.example.com iburst nts
    server nts.netnod.se iburst nts
    server ptbtime1.ptb.de iburst nts
  2. 要避免在系统引导时重复 Network Time Security-Key Establishment(NTS-KE)会话,请在 chrony.conf 中添加以下行(如果不存在):

    ntsdumpdir /var/lib/chrony
  3. 要禁用与 DHCP 提供的网络时间协议(NTP)服务器进行同步,请在 chrony.conf 中注释掉或删除以下行:

    sourcedir /run/chrony-dhcp
  4. 保存您的更改。
  5. 重启 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

    KeyIDTypeKLen 应带有非零值。如果该值为零,请检查系统日志中来自 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) 手册页