关于 NTP 服务器的基本概念: 时间服务器:NTP服务器
关于 NTP 服务器的实际搭建项目: NTP 时间服务器实战
NTP 服务器也是一个很容易就可以架设成功的玩意儿,不过这个软件在不同的 distribution 上面可能有不一样的名称, 你要作的其实就是将他安装起来之后,规定一部上层 NTP 服务器来同步化你的时间即可啊! 如果你只是想要进行你自己单部主机的时间同步化,别架设 NTP ,直接使用 NTP 客户端软件即可喔!
一. 所需软件与软件结构
在 CentOS 6.x 上头,你所需要的软件其实仅有 ntp 这个玩意儿而已,请自行使用 rpm 去找找看,若没有安装,请利用 yum install ntp 即可啊!不过,我们还需要时区相关的数据文件,所以
1. 需要的软件:
- ntp: 就是 NTP 服务器的主要软件啦,包括配置文件以及执行档等等
- tzdata: 软件名称为『 Time Zone data 』的缩写,提供各时区对应的显示格式
2. 与时间及 NTP 服务器设定相关的配置文件与重要数据文件:
- /etc/ntp.conf: 就是 NTP 服务器的主要配置文件,也是唯一的一个
- /usr/share/zoneinfo/: 由 tzdata 所提供,为各时区的时间格式对应档。 例如台湾地区的时区格式对应档案在 /usr/share/zoneinfo/Asia/Shanghai 就是了!这个目录里面的档案与底下要谈的两个档案 (clock 与 localtime) 是有关系的喔
- etc/sysconfig/clock: 设定时区与是否使用 UTC 时间钟的配置文件。 每次开机后 Linux 会自动的读取这个档案来设定自己系统所默认要显示的时间说!举个例子来说, 在我们台湾地区的本地时间设定中,这个档案内应该会出现一行『ZONE=”Asia/Shanghai”』的字样, 这表示我们的时间配置文件案『要取用 /usr/share/zoneinfo/Asia/Shanghai 那个档案』的意思
- /etc/localtime: 这个档案就是『本地端的时间配置文件』啦!刚刚那个 clock 档案里面规定了使用的时间配置文件 (ZONE) 为 /usr/share/zoneinfo/Asia/Shanghai,所以说这就是本地端的时间了,此时 Linux 系统就会将 Shanghai 那个档案复制一份成为 /etc/localtime ,所以未来我们的时间显示就会以 Shanghai 那个时间配置文件案为准
3. 常用于时间服务器与修改时间的指令:
- /bin/date: 用于 Linux 时间 (软件时钟) 的修改与显示的指令
- /sbin/hwclock: 用于 BIOS 时钟 (硬件时钟) 的修改与显示的指令。 这是一个 root 才能执行的指令,因为 Linux 系统上面 BIOS 时间与 Linux 系统时间是分开的,所以使用 date 这个指令调整了时间之后,还需要使用 hwclock 才能将修改过后的时间写入 BIOS 当中
- /usr/sbin/ntpd: 主要提供 NTP 服务的程序啰!配置文件为 /etc/ntp.conf
- /usr/sbin/ntpdate: 用于客户端的时间校正,如果你没有要启用 NTP 而仅想要使用 NTP Client 功能的话,那么只会用到这个指令而已啦
二. 主要配置文件 ntp.conf 的处理
由于 NTP 服务器的设定需要有上游服务器的支持才行,假设现有的 NTP 服务器所需要设定的架构如下:
- 上层 NTP 服务器共有 tock.stdtime.gov.tw, tick.stdtime.gov.tw, time.stdtime.gov.tw 三部,其中以 tock.stdtime.gov.tw 最优先使用 (prefer)——(服务器位于台湾地区)
- 不对 Internet 提供服务,仅允许来自内部网域 192.168.100.0/24 的查询而已
- 侦测一些 BIOS 时钟与 Linux 系统时间的差异并写入 /var/lib/ntp/drift 档案当中
好了,先让我们谈一谈如何在 ntp.conf 里面设定权限控制吧
2.1 利用 restrict 来管理权限控制
在 ntp.conf 档案内可以利用『 restrict 』来控管权限,这个参数的设定方式为:
restrict [你的IP] mask [netmask_IP] [parameter]
其中 parameter 的参数主要有底下这些:
- ignore: 拒绝所有类型的 NTP 连接
- nomodify: 客户端不能使用 ntpc 与 ntpq 这两支程序来修改服务器的时间参数, 但客户端仍可通过这部主机来进行网络校时的
- noquery: 客户端不能够使用 ntpq, ntpc 等指令来查询时间服务器,等于不提供 NTP 的网络校时啰
- notrap: 不提供 trap 这个远程事件登录 (remote event logging) 的功能
- notrust: 拒绝没有认证的客户端
那如果你没有在 parameter 的地方加上任何参数的话,这表示『该 IP 或网段不受任何限制』的意思喔!一般来说,我们可以先关闭 NTP 的权限,然后再一个一个的启用允许登入的网段。
2.2 利用 server 设定上层 NTP 服务器
上层 NTP 服务器的设定方式为:
server