我正试图为我的内部网络上的主机设置一个NTP时间服务器,以便与之同步。
我需要使用授权,以符合PCI标准。
我使用ntp创建了一组密钥,并将下面的代码片段添加到服务器上的/etc/ntp.conf文件中。
enable auth
keys /etc/ntp.keys
trustedkey 1 7 17我无法从客户端连接到服务器。当我在客户机上运行"ntpq -c as“时,我可以看到auth对我的服务器来说是”坏的“。我已将服务器上生成的密钥文件复制到客户端,并将受信任的密钥行添加到客户端,如下所示:
server timeserver key 17
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
restrict ::1
keys /etc/ntp.keys
trustedkey 1 7 17查看服务器日志,我可以看到,在试图读取文件时,我得到了一个被拒绝的权限错误,如下所示。
Jan 30 12:38:01 ip-10-0-1-103 systemd[1]: Starting LSB: Start NTP daemon...
Jan 30 12:38:01 ip-10-0-1-103 ntp[28084]: * Starting NTP server ntpd
Jan 30 12:38:01 ip-10-0-1-103 ntpd[28094]: ntpd 4.2.8p4@1.3265-o Wed Oct 5 12:34:45 UTC 2016 (1): Starting
Jan 30 12:38:01 ip-10-0-1-103 ntpd[28094]: Command line: /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 112:116
Jan 30 12:38:01 ip-10-0-1-103 ntp[28084]: ...done.
Jan 30 12:38:01 ip-10-0-1-103 systemd[1]: Started LSB: Start NTP daemon.
Jan 30 12:38:01 ip-10-0-1-103 ntpd[28096]: proto: precision = 0.182 usec (-22)
Jan 30 12:38:01 ip-10-0-1-103 ntpd[28096]: authreadkeys: file /etc/ntp.keys: Permission denied我已经使用客户端机器的ntpdate从服务器设置日期,所以我非常确信网络已经启动并运行。实际上,我在两台服务器上都禁用了iptable,而我正忙着设置它。
服务器上的密钥文件为600,如下所示:
-rw------- 1 root root 1066 Jan 30 12:29 ntpkey_MD5key_timeserver.3694768152
lrwxrwxrwx 1 root root 35 Jan 30 12:33 ntp.keys -> ntpkey_MD5key_timeserver.3694768152我尝试将配置更改为指向实际文件,而不是符号链接。
有人能帮我弄清楚syslog中的错误意味着什么以及如何解决这个问题吗?
编辑:看看来源,看起来错误的“权限拒绝”部分来自操作系统。
发布于 2022-02-09 09:11:59
如果密钥文件仅由root读取,但ntpd作为非根用户运行,例如使用-u ntp:ntp,请确保有效用户能够读取密钥文件。
例如,可以对密钥文件使用chmod u=rw,g=r,o= keyfile来允许组读取,然后执行chgrp ntp keyfile将组ntp分配给文件,从而有效地允许组ntp访问文件(但您已经知道了,对吧?)
尽管如此,可能还是值得检查一下机构或selinux施加的额外限制。对于前者,您可以尝试aa-status | grep ntpd检查。
发布于 2017-01-30 15:11:28
我制作了一个Ubuntu14.04实例,并注意到在相同的“拒绝权限”消息之后,日志中有一条应用程序装甲消息。
禁用用于设备的ntp配置文件解决了该问题。
https://serverfault.com/questions/829410
复制相似问题