在CentOS系统中配置NTP(Network Time Protocol)认证可以确保时间同步的安全性,防止恶意时间服务器对系统时间进行篡改,本文将详细介绍如何在CentOS上配置NTP认证,包括安装NTP服务、配置密钥、设置服务器和客户端等步骤,确保整个过程清晰易懂。

安装NTP服务
需要在CentOS系统上安装NTP服务,打开终端,使用以下命令更新系统软件包列表并安装NTP服务:
sudo yum update -y sudo yum install ntp -y
安装完成后,启动NTP服务并设置为开机自启:
sudo systemctl start ntpd sudo systemctl enable ntpd
系统已默认与公共NTP服务器同步时间,但尚未启用认证功能,接下来需要配置NTP认证。
生成NTP密钥
NTP认证依赖于共享密钥,因此需要先生成密钥文件,使用以下命令生成一个随机密钥:
sudo ntp-keygen -c MD5 -b 512 -o /etc/ntp/keys -p /etc/ntp/ntpkey
该命令将生成一个MD5加密的512位密钥,并保存到/etc/ntp/keys和/etc/ntp/ntpkey文件中,密钥文件的权限需要设置为仅root可读:
sudo chmod 600 /etc/ntp/keys sudo chmod 600 /etc/ntp/ntpkey
配置NTP服务器
编辑NTP主配置文件/etc/ntp.conf,添加认证相关配置,在文件开头指定密钥文件路径:
keys /etc/ntp/keys
trustedkey 1
requestkey 1
controlkey 1
trustedkey指定受信任的密钥ID,requestkey用于控制消息认证,controlkey用于远程控制,在服务器配置部分添加认证选项:

restrict default noquery notrust
restrict 127.0.0.1
restrict ::1
server 127.127.1.0 fudge 127.127.1.0 stratum 10
restrict default noquery notrust拒绝所有未认证的请求,restrict 127.0.0.1允许本地时间同步,添加受信任的NTP服务器,
server pool.ntp.org iburst key 1
key 1表示使用密钥ID为1的密钥进行认证,保存文件后,重启NTP服务使配置生效:
sudo systemctl restart ntpd
配置NTP客户端
如果需要在其他CentOS系统上作为客户端与配置了认证的NTP服务器同步时间,需在客户端的/etc/ntp.conf中添加以下配置:
server <服务器IP> key 1
<服务器IP>为NTP服务器的IP地址,确保客户端已安装NTP服务,并重启ntpd服务:
sudo systemctl restart ntpd
客户端将使用与服务器共享的密钥进行认证,确保时间同步的安全性。
验证NTP认证
通过以下命令检查NTP认证是否生效:
sudo ntpq -p
在输出结果中,remote列显示的服务器名称后如果有符号,表示已通过认证,查看NTP日志文件/var/log/messages,确认是否有认证相关的成功信息:

sudo tail -f /var/log/messages | grep ntpd
常见问题处理
如果NTP同步失败,首先检查防火墙设置,确保NTP端口(UDP 123)已开放:
sudo firewall-cmd --permanent --add-service=ntp sudo firewall-cmd --reload
确认密钥文件权限是否正确,以及服务器和客户端的密钥ID是否一致,如果问题仍未解决,可使用ntpq -c peers命令查看详细的同步状态。
FAQs
Q1: 如何更改NTP认证的密钥?
A1: 生成新的密钥后,需更新/etc/ntp/keys文件,并在/etc/ntp.conf中修改trustedkey和requestkey的值为新密钥ID,最后重启NTP服务使配置生效。
Q2: NTP认证失败时如何排查?
A2: 检查密钥文件权限、服务器与客户端的密钥ID是否一致,以及防火墙是否放行NTP端口,通过ntpq -p和日志文件/var/log/messages进一步定位问题。