0 环境
- 操作系统
CentOS7.6
# cat /proc/version
Linux version 3.10.0-957.27.2.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Mon Jul 29 17:46:05 UTC 2019
- NTP版本
4.2.6p5
# rpm -qa | grep ntp
ntp-4.2.6p5-29.el7.centos.2.x86_64
ntpdate-4.2.6p5-29.el7.centos.2.x86_64
1 NTP配置文件
NTP具有较多的配置项,主要包含以下几类:
默认的配置文件ntp.conf
位于/etc/ntp.conf
。
默认情况下,ntp.conf
的配置信息如下:
# For more information about this file, see the man pages
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
driftfile /var/lib/ntp/drift
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default nomodify notrap nopeer noquery
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict 10.46.255.1
restrict 10.46.255.2
restrict ::1
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 10.46.255.1 iburst minpoll 3 maxpoll 4 prefer
server 10.46.255.2 iburst minpoll 3 maxpoll 4 prefer
server 0.cn.pool.ntp.org iburst minpoll 3 maxpoll 4
#broadcast 192.168.1.255 autokey # broadcast server
#broadcastclient # broadcast client
#broadcast 224.0.1.1 autokey # multicast server
#multicastclient 224.0.1.1 # multicast client
#manycastserver 239.255.254.254 # manycast server
#manycastclient 239.255.254.254 autokey # manycast client
# Enable public key cryptography.
#crypto
includefile /etc/ntp/crypto/pw
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography.
keys /etc/ntp/keys
# Specify the key identifiers which are trusted.
#trustedkey 4 8 42
# Specify the key identifier to use with the ntpdc utility.
#requestkey 8
# Specify the key identifier to use with the ntpq utility.
#controlkey 8
# Enable writing of statistics records.
#statistics clockstats cryptostats loopstats peerstats
# Disable the monitoring facility to prevent amplification attacks using ntpdc
# monlist command when default restrict does not include the noquery flag. See
# CVE-2013-5211 for more details.
# Note: Monitoring will not be disabled with the limited restriction flag.
disable monitor
配置文件相关配置项的含义,原文可以在官方网站查看。下面对常用的配置进行介绍。
1.1 drift
配置格式
driftfile
driftfile
该命令指定用于记录本地时钟振荡器频率的文件的完整路径和名称。 此操作与-f
命令行选项相同。 该命令与tinker
命令的freq
选项互斥。
如果文件存在,则在启动时读取该文件以设置初始频率,然后每小时一次或更多次用守护程序计算出的当前频率进行更新。 如果指定了文件名,但文件本身不存在,则以初始频率零开始,并在首次写入时创建文件。 如果未给出此命令,则守护程序将始终以初始频率零开始。
文件格式由包含单个浮点数的一行组成,该行记录以百万分之一(PPM)为单位的频率偏移量。 通过首先将当前偏移值写入临时文件,然后重命名此文件以替换旧版本来更新文件。
1.2 restrict
配置格式
restrict
default [flag][...]
restrict
source [flag][...]
restrict
address [mask mask] [flag]
用点分四进制形式表示的address
参数是主机或网络的地址。address参数也可以是有效的主机DNS名称。以IPv4或IPv6数字地址形式表示的mask
参数默认为on
的所有mask
位,这意味着该地址被视为单个主机的地址。默认列表(IPv4: address
0.0.0.0,mask
0.0.0.0; IPv6: address
::, mask
::)始终是列表中的第一项。
restrict default
,不带掩码选项,同时修改IPv4和IPv6默认条目。
restrict
source,该命令配置在运行时为每个关联自动添加模板限制,无论该模板是已配置的,短暂的还是可抢占的,并在解除关联时删除。
flag
,一些标志具有拒绝服务的作用,一些标志具有启用服务的作用,而某些标志则受其他标志的限制。标志不是正交的,因为限制性较高的标志通常会使限制性较小的标志变得多余。拒绝服务的标志分为两类:限制时间服务的标志和限制信息查询并尝试对服务器进行运行时重新配置的标志。可以指定以下一个或多个标志:
-
flake
丢弃接收到的NTP报文的概率为0.1;也就是说,平均每十个丢一包。这是为了测试和娱乐。这个名字来自鲍勃·布雷登(Bob Braden)的公司,该公司曾经为早期的Internet测试做过类似的事情。 -
ignore
拒绝各种数据包,包括ntpq
和ntpdc
查询。 -
kod
如果存在limited
标志,并且数据包违反了由discard
命令建立的速率限制,则发送“kiss-o'-death”(KoD)数据包。 KoD数据包本身分别对每个源地址进行速率限制。如果将kod标志用于没有limited
标志的限制中,则不会导致KoD响应。 -
limited
如果数据包违反discard
命令建立的速率限制,则拒绝服务时间。这不适用于ntpq
和ntpdc
查询。 -
lowpriotrap
将匹配主机设置的陷阱声明为低优先级。服务器可以维护的陷阱数量是有限的(当前限制为3)。陷阱通常是按照先到先得的原则分配的,以后的陷阱请求者将被拒绝服务。该标志通过允许低优先级陷阱被以后普通优先级陷阱的请求覆盖来修改分配算法。 -
mssntp
使用Active Directory服务启用Microsoft Windows MS-SNTP身份验证。注意:潜在用户应注意,这些服务涉及到可能潜在被阻止的另一个进程的TCP连接,从而拒绝了其他用户的服务。因此,此标志应仅用于没有MS-SNTP客户端的专用服务器。 -
nomodify
拒绝尝试修改服务器状态的ntpq
和ntpdc
查询(即运行时重新配置)。允许返回信息的查询。 -
noquery
拒绝ntpq
和ntpdc
查询。时间服务不受影响。 -
nopeer
除非通过身份验证,否则拒绝可能启动关联(mobilize an association)的数据包。这包括当配置的关联不存在时的broadcast
,symmetric-active
和manycast
服务器数据包。它还包括池关联,因此如果要使用pool
指令中的服务器,并且还希望默认情况下使用nopeer
,则还需要不包含nopeer
指令的restrict source ...
行。请注意,此标志不适用于不尝试动员关联(mobilize an association)的数据包。 -
noserve
拒绝除ntpq
和ntpdc
查询以外的所有数据包。 -
notrap
拒绝向匹配的主机提供模式6控制消息陷阱服务。陷阱服务(trap service)是ntpdc
控制消息协议的子系统,旨在供远程事件日志记录程序使用。 -
notrust
拒绝未经密码认证的数据包。<>请仔细注意该标志如何与enable
和disable
命令的auth
选项交互。如果启用了auth
(这是默认设置),则需要可能动员关联(mobilize an association)的所有数据包都进行身份验证。如果禁用了auth
,但是notrust
标志不存在,则无论是否通过身份验证,都可以动用关联(mobilize an association)。如果禁用了auth
,但是存在notrust
标志,则仅对于指定的地址/掩码(address/mask)范围进行身份验证。 -
ntpport
这实际上是匹配算法修饰符,而不是限制标志。它的存在仅在数据包中的源端口是标准NTP UDP端口(123)时才使限制条目匹配。包含ntpport
的限制行被认为比具有相同地址和掩码但缺少ntpport
的限制行更具体。 -
version
拒绝与当前NTP版本不匹配的数据包。
对于每个本地主机的接口地址,带有标志ignore, ntpport
的默认限制列表条目会在启动时插入到表中,以防止服务器尝试与其自己的时间同步。即使没有配置,默认条目也始终存在。没有标志与默认条目相关联(即,除了您自己的NTP服务器外,其他所有内容也均不受限制)。
1.3 server
对于类型s和r地址(仅),此命令动员与指定的远程服务器或本地参考时钟的持久客户端模式关联。 如果指定了preempt
标志,则会调动可抢占客户端模式关联。
配置格式
server
address [options ...]
server
指令的可选项
-
autokey
发送和接收通过Autokey Public Key Authentication描述的自动密钥方案进行身份验证的数据包。此选项与key
选项互斥。 -
burst
当服务器可达时,发送一连串的数据包,而不是通常的一个数据包。此选项仅对server
命令和s
类型的地址有效。当maxpoll
选项大于10(1024 s)时,建议使用此选项。有关此选项的其他信息,请参阅Poll Program(轮询程序)。 -
iburst
当服务器无法访问时,发送一连串的数据包,而不是通常的一个数据包。此选项仅对server
命令和s
类型的地址有效。这是server
命令的推荐选项。有关此选项的其他信息,请参阅Poll Program(轮询程序)。 -
ident
group
指定关联的组名。有关更多信息,请参阅Autokey Public Key Authentication。 -
key
key
发送和接收通过Authentication Support描述的对称密钥方案进行身份验证的数据包。key
指定密钥标识符,其值从1到65534(含)之间。此选项与autokey
选项互斥。 -
minpoll
minpoll
和maxpoll
maxpoll
这些选项指定NTP消息的最小和最大轮询间隔,以秒为单位,为2的幂。最大轮询间隔默认为10(1024 s = 2^10),但可以通过maxpoll
选项将其增加为17(36 hr)的上限。最小轮询间隔默认为6(64 s = 2^6),但可以通过minpoll
选项减小到3(8 s = 2^3)的下限。有关此选项的其他信息,请参阅Poll Program。 -
mode
option
将选项传递给参考时钟驱动器,其中option
是一个介于0到255之间的整数(包括0和255)。此选项仅对类型r
地址有效。 -
noselect
将选择算法忽略的服务器或对等设备标记为不可访问,但对监视程序可见。此选项仅对server
和peer
命令有效。 -
preempt
(抢占式)
将关联指定为可抢占而不是默认的持久关联。该选项在broadcast
命令中被忽略,并且在manycastclient
和pool
命令中最有用。 -
prefer
将服务器标记为首选。在所有其他条件相同的情况下,将选择该主机在一组正确运行的主机之间进行同步。有关更多信息,请参阅Mitigation Rules and theprefer
Keyword 。此选项仅对server
和peer
命令有效。 -
true
将关联标记为truechimer
状态;也就是说,始终在选择和聚类算法中生存。该选项可与任何关联一起使用,但对于串行端口上具有较大抖动和精确每秒脉冲(PPS)信号的参考时钟最为有用。注意:此选项使旨在消除虚假消息的算法无效,并且可以允许这些源设置系统时钟。此选项仅对server
和peer
命令有效。 -
ttl
ttl
此选项为broadcast
命令指定生存时间ttl
,并为manycastclient
命令使用的扩展环搜索指定最大ttl
。选择适当的值(默认为127)就像是魔法,应与网络管理员进行协调。此选项对于r
型地址无效。 -
version
version
指定用于发送NTP数据包的版本号。可以选择版本1-4,默认为version 4
。 -
xleave
在交错模式下操作(仅对称模式和广播模式)。有关更多信息,请参阅NTP Interleaved Modes。
。
服务器命令和选项部分解释
Server和Peer地址
以下是NTPv4中server
配置命令的说明。有两类命令:(1)配置命令,用于配置与远程服务器、对等或参考时钟的关联;(2)辅助命令,用于指定控制各种相关操作的环境变量。
Association Management描述的各种模式由命令关键字以及DNS名称或IP地址确定。地址按类型分类为:
s,远程服务器或Peer(IPv4类A,B和C或IPv6);
b,本地接口的IPv4广播地址;
m,多播地址(IPv4类D或IPv6 );
r,参考时钟地址(127.127.xx)。对于类型m地址,IANA已为NTP专门分配了多播组地址IPv4 224.0.1.1和IPv6 ff05 :: 101(站点本地),但是可以使用其他无冲突的地址。
如果检测到IPv6的基本套接字接口扩展(RFC-2553),则除了默认的IPv4地址族之外,还将生成对IPv6地址族的支持。可以通过在地址字段中使用冒号":
"来标识IPv6地址。 IPv6地址几乎可以在所有可以使用IPv4地址的地方使用,但参考时钟地址始终为IPv4。请注意,在需要主机名的情况下,主机名前面的-4
限定符将DNS解析强制为IPv4命名空间,而-6
限定词将DNS解析强制为IPv6命名空间。
2 其他
其他指令不再详细介绍,详情见官网。