ntp.conf:依靠在CentOS中公开的默认服务器列表是否合理?

每次我安装新的Linux主机(CentOS,最近),特别是当这样的主机将在我们的小型数据中心(大约100个主机)中有一些angular色时,我会注意:

  1. 安装ntp包;
  2. 在服务器列表顶部添加一个新的服务器实例,指向:
    • 到我们或多或less正式的意大利ntp服务器( time.ien.it ),如果系统有出站ntp访问;
    • 到一个“内部主机”,如果系统没有连接到互联网,那么他就像一个官方的ntp“内部”服务器。
  3. 启用ntp服务,以正确处理重新启动

因此,对于可以访问Internet的系统,在ntp.conf中configuration的服务器列表如下所示:

 server time.ien.it iburst server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst 

在调查完全不同的问题时,我发现上面的configuration产生了stream量到远程主机,我完全不知道

下面是我们的drbd-store-02-ch主机的出站接口上的一个tcpdump捕获片段:

在这里输入图像说明

你可以看到:

  • 来自/到主机的stream量我正确地期望(“黄色”);
  • CentOS和/或ntp.org域名无关的来自/到主机的stream量。 特别:
    • 1.ntp.tld.sk
    • laika.paina.net
    • time.reisenbauer-it.com
    • 183.84.160.167.rdns.kaiju.cc

在调查过程中,发现其中还有其他的主机,不包括在上面的列表中。 我甚至发现主机的反向主机名明确地指向一些大的ISP,指的是VPS和类似的东西。

所以我的问题是:

  1. 我应该删除默认的服务器列表,只依靠我的“信任” time.ien.it外部ntp-server主机?
  2. 如果没有,我怎么能确定这些远程主机是有效的“安全”,妥善保护/pipe理…所以不要冒险我的ntp服务请求?

PS:作为一个便笺,我完全了解DNSparsing过程,所以问题不是 “为什么”我正在联系这些服务器。 问题是:“安全吗?”

简短的版本:它可能是安全的。

更长的版本:你看到的行为是完全正常的和预期的。 NTP池是一个dynamic池,每次DNS TTL过期时都可能发生变化。

池中的每台主机都由NTP池基础设施进行监视,如果报告的时间太远,可以接受,则从池中删除。 您可以在http://www.pool.ntp.org/scores/IP (其中IP是服务器的IP地址)查看每个主机的监控logging。 例如,当我在我的机器上查找0.centos.pool.ntp.org时,我得到这些地址:

  • 74.120.8.2
  • 72.5.72.15
  • 45.79.187.10
  • 173.255.232.93

假设您的时间同步要求是平均的(与实际时间的偏差),通常的最佳做法是在您自己的networking中设置4-6台与池中的4-6台服务器同步的服务器,并将您的内部主机指向那些本地服务器。 我在今年的Linux.conf.au sysadmin miniconf (在页面上的最后一次谈话)中更详细地讨论了这个问题。

编辑:请注意,一些池服务器也TOR中继或退出节点。 这有时会让NTP池用户陷入过分热情的IDS / IPS甚至ISP的困扰之中。 有关最近的示例,请参阅https://twitter.com/_lennart/status/861714732709031936

你应该只使用DMZ中的列表。 内部系统不应该只能使用UDP端口123联系Internet上的随机服务。

  1. 您应该只在您自己的networking中将列表减less到可信主机。 在DMZ中,您应该相信您的NTP软件不会将内部的奇怪请求转发到互联网。
  2. 你不能。 那些主机也可能是可怕的configuration。

所以,如果你有一个很好的理由来build立一个值得信赖的时间服务器,那么得到一个与一个好的时间源设备交互的东西,而不要把它连接到互联网上。

这看起来像一个软件供应商(Centos)在默认的NTPconfiguration下提供免费的公共NTP.org池 ,而不是提供他们自己的NTP基础架构或依靠用户拥有NTP基础架构的相当常见的情况。

我将继续引用下面的文档。

关于使用NTP.org池 :

考虑NTP池是否适合您的使用。 如果企业,组织或人的生命依赖于正确的时间,或者由于错误而受到伤害,那么就不应该“只是从网上下载”。 NTP池通常质量很高,但这是志愿者在业余时间运行的服务。 请与您的设备和服务供应商谈谈为您提供本地和可靠的服务设置。 另请参阅我们的服务条款。 我们推荐来自Meinberg的时间服务器,但是您也可以从End Run,Spectracom等等find时间服务器。

如果你的互联网服务提供商有一个时间服务器,或者你知道你附近有一个很好的时间服务器,那么你应该使用它,而不是使用这个列表 – 你可能会得到更好的时间,你将使用更less的networking资源。 如果你只知道你附近的一个时间服务器,你当然可以使用pool.ntp.org或者两个。

关于NTP.org池供应商区域 (如0.centos.pool.ntp.orgcentos ):

获取您的供应商区域
为了让您在应用程序中使用该池作为默认时间服务,我们将使用特殊主机名设置您,例如0.vendor.pool.ntp.org,1.vendor.pool.ntp.org,2.vendor .pool.ntp.org和3.vendor.pool.ntp.org。

您绝对不能将默认的pool.ntp.org区域名称用作应用程序或设备中的默认configuration。

为什么要为供应商使用特殊的主机名?
特殊主机名允许我们对stream量进行一些控制,以便优化负载分配并将客户端匹配到最好的服务器。 它也提供了更好的select,以便在客户群中出现问题时继续提供支持。 (请参阅基本指南部分的链接)。

至于NTP.org池中的服务器的安全性,池中的服务器正在被监视 ,但是正如他们明确说的那样,如果你有一个更好的(更可信的和可靠的)选项,你应该使用它。

消费或提供不好的时间可能可以在“networking轻罪”下提交。 所有CentOS NTP名称都是一批IP地址,可能意味着提供大量的时间源样本(因为绘制完整的NTP空白可能会更糟?)。

就个人而言,我会对CentOS产生的清单给予适当的信任,但是如果您担心或者有业务需求,您应该能够从您的提供商networking或NIST(time-a.nist.gov,等等),如果你信任他们。 在安全性至关重要的情况下,我已经从我的提供商networking中消耗了时间,并在核心路由器上重新设置了时间参考,以便networking中的消费者都可以使用统一的已知源。