网站搜索

如何在 Debian 上安装和配置 NTP 服务器和客户端


网络时间协议 (NTP) 为公司提供了同步公司内所有系统时钟的独特能力。时间同步很重要,原因有很多,从应用程序时间戳到安全性再到正确的日志条目。

当组织的系统都维护不同的时钟时间时,从故障排除的角度来看,确定特定事件可能发生的时间和条件变得非常困难。

NTP 提供了一种简单的方法来确保所有系统都保持正确的时间,从而可以大大减轻管理员/技术支持的负担。

NTP 工作的前提是与参考时钟同步,也称为“stratum 0”服务器。然后,所有其他 NTP 服务器根据距参考服务器的距离成为较低级别的分层服务器。

NTP 链的起点是层 1 服务器,它始终直接连接到层 0 参考时钟。从这里,较低级别的分层服务器通过网络连接连接到较高级别的服务器。

请参阅下图以获得更清晰的概念。

虽然可以设置层 0层 1 服务器,但这样做的成本很高,因此本指南将重点关注较低层服务器的设置。

Howtoing 在以下链接中提供了 NTP 的基本主机配置:

  1. 如何与 NTP 服务器同步时间

本指南的不同之处在于,一台(或更好的做法是多台)服务器将联系公共 NTP 系统,然后为网络中的所有主机提供时间,而不是让网络上的所有主机查询公共 NTP 服务器。本地网络。

内部 NTP 服务器通常非常适合节省网络带宽,并通过 NTP 限制和加密来提高安全性。要了解这与第一个图有何不同,请参阅下面的第二个图。

第1步:安装NTP服务器

1. 设置内部 NTP 结构的第一步是安装 NTP 服务器软件。 Debian 中名为“NTP”的软件包当前包含设置 NTP 层次结构所需的所有服务器实用程序。与所有有关系统配置的教程一样,假定具有 Rootsudo 访问权限。

apt-get install ntp
dpkg --get-selections ntp          [Can be used to confirm NTP is installed]
dpkg -s ntp                        [Can also be used to confirm NTP is installed]

第1步:配置NTP服务器

2. 安装 NTP 后,就可以配置要查询时间的更高层服务器了。 NTP 的配置文件存储在“/etc/ntp.conf”中,可以使用任何文本编辑器进行修改。该文件将包含更高级别服务器的完全限定域名、为此 NTP 服务器设置的限制以及查询该 NTP 服务器的主机的任何其他特殊参数。

要开始配置过程,需要配置更高级别的服务器。 Debian 默认情况下会将 Debian NTP 池放入配置文件中。这些对于大多数用途来说都很好,但管理员可以访问 NIST 来指定某些服务器或以循环方式使用所有 NIST 服务器(NIST 建议的方法)。

对于本教程,将配置特定服务器。配置文件分为几个主要部分,并且默认配置为 IPv4 和 IPv6(如果您希望禁用 IPv6,稍后会提到)。要开始配置过程,必须使用文本编辑器打开配置文件。

nano /etc/ntp.conf

前几个部分(driftfilestatsdirstatistics)很好地设置为默认值。下一部分包含该服务器应通过其请求时间的更高级别服务器。每个服务器条目的语法非常简单:

server <fully qualified domain name> <options>
server time.nist.gov iburst â     [sample entry]

通常,最好在此列表中选择几个更高层的服务器。该服务器将查询列表中的所有服务器以确定哪一个最可靠。此示例的服务器来自:http://tf.nist.gov/tf-cgi/servers.cgi。

步骤3:配置NTP限制

3.下一步是配置 NTP 限制。它们用于允许禁止主机与 NTP 服务器交互。 NTP 的默认值是为任何人提供服务时间,但不允许在 IPv4 和 IPv6 连接上进行配置。

该服务器当前仅在 IPv4 网络上使用,因此通过两种方式禁用 IPv6。在 NTP 服务器上禁用 IPv6 要做的第一件事是更改守护程序启动的默认值。这是通过更改“/etc/default/ntp”中的行来完成的。

nano /etc/default/ntp
NTPD_OPTS='-4 -g' [Add the ' -4 ' to this line to tell NTPD to only listen to IPv4]

回到主配置文件 (/etc/ntp.conf),NTP 守护进程将自动配置为与所有 IPv4/6 主机共享时间,但不允许配置。这可以通过以下两行看出:

NTPD 在允许除非拒绝的基础上工作。由于 IPv6 已禁用,因此可以删除“restrict -6”行或使用“ #”注释掉

这会更改 NTP 忽略所有消息的默认行为。这可能看起来很奇怪,但请继续阅读,因为限制子句将用于微调需要访问的主机对此 NTP 服务器的访问。

现在服务器需要知道谁可以查询服务器的时间以及他们还可以对 NTP 服务器执行哪些操作。对于此服务器,将使用 172.27.0.0/16 专用网络来构建限制节。

该行通知服务器允许来自 172.27.0.0/16 网络的任何主机访问服务器的时间。掩码后面的参数有助于控制该网络上的任何主机在查询服务器时可以执行的操作。让我们花点时间来了解每个限制选项:

  1. Limited:表示如果客户端滥用数据包数量速率控制,数据包将被服务器丢弃。如果死亡之吻数据包被启用,它将被发送回滥用主机。管理员可以配置费率,但此处假定为默认值。
  2. KOD:死亡之吻。如果主机违反了向服务器发送的数据包限制,服务器将向违反的主机响应 KoD 数据包。
  3. Notrap:拒绝模式6控制消息。这些控制消息用于远程日志记录程序。
  4. Nomodify:防止 ntpq 和 ntpdc 查询修改服务器的配置,但仍然允许信息查询。
  5. Noquery:此选项可防止主机向服务器查询信息。例如,如果没有此选项,主机可以使用 ntpdc 或 ntpq 来确定特定时间服务器从何处获取时间或可能与其通信的其他对等时间服务器。