保护/强化 Linux 服务器上的 ntp 客户端 - 配置文件

保护/强化 Linux 服务器上的 ntp 客户端 - 配置文件

我有一个全新安装的 Debian 和 NTP 客户端。我获得了一些设置来保护我的 NTP 客户端配置。我知道如何将它们添加到文件中,/etc/ntp.conf但我不知道是否需要合并或覆盖设置,顺序是否重要,或者如何处理重复设置。

/etc/ntp.conf这是包中附带的默认文件:

cat /etc/ntp.conf | egrep -v '^#|^$'
driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
pool 0.debian.pool.ntp.org iburst
pool 1.debian.pool.ntp.org iburst
pool 2.debian.pool.ntp.org iburst
pool 3.debian.pool.ntp.org iburst
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
restrict 127.0.0.1
restrict ::1
restrict source notrap nomodify noquery

以下是我被告知要使用的设置:

#creates file to adjust the default system clock value after a service interruption/restart
driftfile /var/lib/ntp/drift

#access controls to reduce unwanted queries (kod)
#prevent alteration of configuration file (nomodify)
#prevent nptdc from being used for control message protocol traps (notrap)
#prevent peer queries (nopeer)
#prevent ntpq and ntpdc queries from being answered (noquery)

restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery

#restrict NTP access to localhost
restrict 127.0.0.1
restrict -6 ::1

#point to NIST time servers use fastest method to collect time
server time.nist.gov iburst

#point to localhost if access is lost to NTP servers/pools
fudge 127.127.1.0 stratum 10

#mitigates CVE-2013-5211
disable monitor

对于其中一些,例如driftfile,我发现它们需要被覆盖。我不确定还剩下哪些。它们是必需的还是我应该替换它们?如果我保留它们,顺序重要吗?

根据我的理解,根据合并默认选项和我提供的内容,我知道需要有以下设置:

# creates file to adjust the default system clock value after a service interruption/restart
driftfile /var/lib/ntp/drift

# access control configuration
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited

# restrict NTP access to localhost
restrict 127.0.0.1
restrict -6 ::1

# point to NIST time servers use fastest method to collect time
server time.nist.gov iburst

# point to localhost if access is lost to NTP servers/pools
fudge 127.127.1.0 stratum 10

# mitigates CVE-2013-5211
disable monitor

这些是默认文件中剩余的设置,但我不确定如何处理它们:

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
restrict source notrap nomodify noquery

答案1

进一步补充 John Mahowald 的回答:您给出的推荐配置已经过时,不应遵循。考虑到我们迄今为止所知的 NTP 漏洞,Debian/Ubuntu 提供的默认配置设计得尽可能安全,您应该尽可能少地对其进行更改。

建议配置中唯一可能对您重要的就是 NIST 时间服务器的选择。如果您想使用它们,您应该使用指令pool而不是仅仅server。如果服务器没有响应或提供错误时间,该pool指令可以ntpd停止使用它们,因此您几乎应该总是使用它而不是server

因此总的来说,您可能考虑添加到默认配置的唯一内容是:

pool time.nist.gov iburst

除非您取消注释此行,否则突出显示的统计信息行不会产生任何效果:

#statsdir /var/log/ntpstats/

最后一个非常重要,因为它使你能够使用池:

restrict source notrap nomodify noquery

您应该确保该线保持在原位。

答案2

如果你有一套完整的指令要设置,只需替换发行版的 ntp.conf。但你不需要需要因为他们具有同等的安全性:

  • 您的限制选项非常相似。Debian 明确使用 -4 来指示 IPv4 并施加速率限制。
  • CVE-2013-5211是使用 monlist 的放大攻击。Debian stretch 及更高版本没有此缺陷,并且其默认配置早在几年前就缓解了此问题。
  • 漂移文件的位置对安全性几乎没有影响。

您对所提议的 NTP 配置的个人烦恼:

地址以 127.127.1 开头的服务器是不守纪律的本地时钟。不建议使用它,它没有增加任何东西,让人困惑,孤儿模式更好。

你不需要使用 NIST 互联网时间服务来获得可靠的时钟。如果你愿意,你可以使用,并且他们喜欢使用 time.nist.gov 全局负载均衡器。但是,NTP 池项目减轻了参考时钟的负载,并且在许多用例中表现良好。

答案3

的内容driftfile不会添加/删除任何安全性,它只是 NTP 存储数据的位置。使用分发默认值。

否则,所有剩余的设置都是不需要的,它们是正常操作不需要的统计功能。

相关内容