linux下NTP服务器实战(ntp软件)
记录linux下NTP服务器搭建及相关管理操作,使用ntp软件包安装部署。
1. NTP服务器搭建实战
借助ntp软件包在linux上搭建ntp服务器,同时作为客户端从上游ntp服务器同步时间。
1.1 安装配置NTP服务器
1.1.1 安装NTP服务
在大多数Linux发行版上,NTP服务可以通过包管理器安装。
- Debian/Ubuntu:
sudo apt update
sudo apt install ntp
- RHEL/CentOS:
sudo yum install ntp
1.1.2 配置NTP服务器
安装完成后,编辑NTP服务器的配置文件 /etc/ntp.conf
,不同发行版配置文件大同小异。
sudo vi /etc/ntp.conf
- 配置上游的时间服务器
配置上游服务器主要用于同步当前NTP服务器的时间。默认情况下,系统指向linux发行版官方的NTP服务器。
centos配置,默认连接centos池:
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
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
# server address。其中 address 是 IP 单播地址或 DNS 可解析名称。
server ntp.ntsc.ac.cn
ubuntu配置,默认连接ubuntu池:
# Specify one or more NTP servers.
pool 0.ubuntu.pool.ntp.org iburst
pool 1.ubuntu.pool.ntp.org iburst
pool 2.ubuntu.pool.ntp.org iburst
pool 3.ubuntu.pool.ntp.org iburst
# Use Ubuntu's ntp server as a fallback.
pool ntp.ubuntu.com
# 加入中国国家授时中心作为上游ntp服务器
pool ntp.ntsc.ac.cn
- 关于pool.ntp.org项目
pool.ntp.org 是一个以时间服务器的大虚拟集群为上百万的客户端提供可靠的易用的网络时间协议(NTP)服务的项目。NTP池正在为世界各地成百上千万的系统提供服务。它是绝大多数主流Linux发行版和许多网络设备的默认“时间服务器”。
官网:https://www.ntppool.org/zh/
- 国内外常见公有的NTP服务器:
中国国家授时中心 (NTSC):ntp.ntsc.ac.cn
阿里云NTP服务器:ntp.aliyun.com
腾讯NTP服务器:ntp.tencent.com
全球NTP服务器池:pool.ntp.org
亚洲NTP服务器池:asia.pool.ntp.org
google NTP服务器:time.google.com
关于iburst
参数:要延长初始同步所需的时间,请在服务器命令末尾添加以下选项:iburst
,当服务器无法访问时,发送包含 8 个数据包的突发事件,而不是通常的一个数据包。
- 配置 NTP 服务的访问权限控制
要限制或控制对系统上运行的 NTP
服务的访问,请使用 ntp.conf
文件中的 restrict
命令。
restrict
命令用于限制NTP客户端对NTP服务器的访问权限。通过配置restrict
命令,可以定义允许或拒绝哪些客户端与NTP服务器进行通信,以及如何进行通信。restrict
命令中的option
(选项)用于进一步细化对客户端的访问控制。
centos:
# 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
ubuntu:
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
default
是一种特殊的限制关键字,表示默认的访问控制策略。它适用于没有明确列出的所有主机或网络。
restrict
命令采用以下格式:
restrict address [mask] option
其中地址和 掩码指定您要应用限制的 IP 地址,选项是以下一个或多个 :
ignore
- 忽略所有NTP数据包。这会阻止客户端与服务器的任何通信。Kod
- 在客户端受到限制时,服务器会发送“KoD”(Kiss of Death)消息,告诉客户端它受到限制并且应停止请求。limited
- 限制客户端的请求速率。如果客户端请求太频繁,则会被拒绝,避免DOS攻击。ntpq
和ntpdc
查询不受影响。lowpriotrap
- 匹配主机设置的陷阱低优先级。nomodify
- 客户端不能修改服务器的时间或配置。允许查询时间,但禁止发送修改请求(例如ntpq
或ntpdc
的配置修改命令)。noquery
- 禁止客户端查询NTP服务器状态。禁止使用ntpq
、ntpdc
等工具获取服务器状态信息。即使可以同步时间,也无法查询服务器的状态。nopeer
-阻止客户端尝试建立对等关系。客户端只能作为普通客户端,而不能作为对等服务器。noserve
- 拒绝ntpq 和 ntpdc
查询以外的所有数据包。不允许客户端同步时间,也不提供服务。这样客户端无法通过此服务器同步时间,但可以接受查询请求(ntpq
和ntpdc
查询)。notrap
- 禁止使用ntpdc
的陷阱服务(trap service),该服务允许系统管理员通过陷阱命令接收事件或状态更改通知。notrust
- 拒绝未经加密身份验证的数据包。ntpport
- 修改匹配算法,使其仅在源端口是标准NTP
UDP
端口123
时应用限制。Version
- 要求客户端使用特定版本的NTP协议。这个选项常用于防止低版本NTP客户端的访问。
restrict
配置原则:
- 最小权限原则:仅授予必要的权限。对于普通客户端,建议使用
nomodify
、nopeer
、notrap
等选项。 - 安全性:对于未知或外部网络来源,使用
ignore
或limited
选项,以提高NTP服务器的安全性。 - 灵活性:对本地地址和可信网络可以给予更宽松的权限,而对外部或不可信网络施