RHEL chrony 中的网络时间安全 (NTS) 概述

网络时间安全性 (NTS) 是网络时间协议 (NTP) 的一种身份验证机制,旨在扩展大量客户端。它验证从服务器计算机接收的数据包在移动到客户端计算机时是否保持不变。网络时间安全性 (NTS) 包括密钥建立 (NTS-KE) 协议,该协议可自动创建服务器与其客户端之间使用的加密密钥。

在客户端上启用网络时间安全 (NTS)

默认情况下,网络时间安全性 (NTS) 未启用。您可以在 .为此,请执行以下步骤:/etc/chrony.conf

程序

编辑文件,并进行以下更改:/etc/crony.conf

  1. 除了 recommended 选项外,还使用 option 指定服务器。ntsiburst

    For example:
    server time.example.com iburst nts
    server nts.netnod.se iburst nts
    server ptbtime1.ptb.de iburst nts
  2. 添加以下设置以避免在系统引导期间重复网络时间安全密钥建立 (NTS-KE) 会话:

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

    sourcedir /run/chrony-dhcp
  4. 重新启动服务: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

    , , 和 应具有非零值。如果该值为零,请检查系统日志中是否有来自 的错误消息。KeyIDTypeKLenchronyd

  • 验证客户端是否正在进行 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

    该列应具有非零值;理想情况下是 377。如果该值很少达到 377 或从未达到 377,则表示 NTP 请求或响应在网络中丢失。Reach

在时间服务器上启用网络时间安全 (NTS)

如果您运行自己的网络时间协议 (NTP) 服务器,则可以启用服务器网络时间安全性 (NTS) 支持,以便其客户端安全地同步。

如果 NTP 服务器是其他服务器的客户端,即不是 Stratum 1 服务器,则应使用 NTS 或对称密钥进行同步。

程序

  1. 编辑文件,并进行以下更改:/etc/chrony.conf

    ntsserverkey /etc/pki/tls/private/<ntp-server.example.net>.key
    ntsservercert /etc/pki/tls/certs/<ntp-server.example.net>.crt
  2. 对私钥和证书文件设置权限,以允许 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
  3. 确保该设置存在。ntsdumpdir /var/lib/chrony
  4. 在 firewalld 中打开所需的端口:

    # firewall-cmd –permannent --add-port={323/udp,4460/tcp}
    # firewall-cmd --reload
  5. 重新启动服务:chronyd

    # systemctl restart chronyd

验证

  1. 从客户端计算机执行测试:

    $ 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

    该消息指示 NTP 服务器正在接受 NTS-KE 连接,并使用受 NTS 保护的 NTP 消息进行响应。System clock wrong

  2. 验证服务器上观察到的 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

    如果 and 字段的值为非零值,则表示至少有一个客户端能够连接到 NTS-KE 端口并发送经过身份验证的 NTP 请求。NTS-KE connections acceptedAuthenticated NTP packets

声明:欢迎大家光临本站,学习IT运维技术,转载本站内容,请注明内容出处”来源刘国华教育“。如若本站内容侵犯了原著者的合法权益,请联系我们进行处理。