Linux实战部署系列之ntp服务器—-实践篇

上篇Linux实战部署系列之ntp服务器—-理论篇为大家介绍时间的相关概念和ntp的原理,本篇博文将带大家一起部署生产环境中实现简单的负载均衡和高可用的NTP服务器。

简易架构图:

环境:

CentOS6.4 x86_64server-1 192.168.1.111 NTP服务器1server-2 192.168.1.112 NTP服务器2client 192.168.1.113 作为客户端的某台业务服务器ntp-4.2.4p8-3.el6.centos.x86_64

一、ntp服务端

1、检查并安装ntp服务

[root@c64-ntp-1 ~]# rpm -qa|grep ntp #如果出现下面两个就说明本机已经有了ntpdate-4.2.4p8-3.el6.centos.x86_64ntp-4.2.4p8-3.el6.centos.x86_64

如果没有,我们执行下面的命令进行安装

[root@c64-ntp-1 ~]# yum install ntp -y

2、同步NTP服务器时间

由于NTP的限制,如果系统时间比正确的时间要快的话,NTP是不会帮你做调整的,而且当你的时间设置和正确的时间相差很大的时候,NTP会花上很长一段时间进行同步调整,因此鉴于此,我们需要先做一个同步。

首先我们要先确定好自己的时区,最好根据所在地点从新设置时区,本例以上海为例

[root@c64-ntp-1 ~]#/bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #这样我们就将时区设置成上海了[root@c64-ntp-1 ~]# dateSat Nov 2 23:17:36 CST 2013#可以看到我们的时区已经设置过来了

接下来就要向互联网上的NTP服务器进行时间同步了。这里你如果没有NTP服务器的地址,你可以到(NTP官网)去找离自己城市最近的NTP服务器。由于我用的是上海的地址,所以这里我将离上海最近的3个NTP服务器贴出来。

server 1.cn.pool.ntp.orgserver 3.asia.pool.ntp.orgserver 0.asia.pool.ntp.org

同步本机时间的命令是

[root@c64-ntp-1 ~]# /usr/sbin/ntpdate 1.cn.pool.ntp.org 2 Nov 23:05:34 ntpdate[11560]: adjust time server 218.75.4.130 offset -0.114499 sec[root@c64-ntp-1 ~]# /usr/sbin/ntpdate 1.cn.pool.ntp.org #为了减少时延,我们最好执行两遍 2 Nov 23:05:41 ntpdate[11561]: adjust time server 218.75.4.130 offset -0.111105 sec

3、配置NTP服务器

其实,此时我们用/usr/sbin/ntpd start 已经可以向客户端提供时间更新服务了。但是,这样是满足不了企业安全性需求的。下面将为大家讲解ntp的主配置文件设定。

1)解决NTP服务器校准时间时的传送延迟

使用driftfile参数设置: driftfile 文件名

用途:将与上级时间服务器联系时所花费的时间,记录在driftfile参数后面指定的文件内

注意:driftfile后面必须接完整的文件路径,不能是链接文件,并且必须要有ntpd守护进程可以写入的权限。

对应默认配置项:

driftfile /var/lib/ntp/drift

2)权限的控制主要靠restrict这个参数

要的语法为:restrict IP mask 掩码 参数

IP规定了允许或不允许访问的地址(此处若为default,即为0.0.0.0所有ip),配合掩码可以对某一网段进行限制。

参数包括:

ignore:关闭所有NTP服务

nomodify:客户端不能修改服务端的时间,但可以作为客户端的校正服务器

noquery:不提供时间查询,,即用户端不能使用ntpq,ntpc等命令来查询ntp服务器

nopeer:不与同一层的其他服务器进行时间同步

kod:kod技术可以阻止“kiss of death”包(一种DOS攻击)对服务器的破坏

notrap:不提供trap远端事件登陆的功能

notrust:客户端除非通过认证,否则指定的网段为不信任网段 #ntp4.2之后的版本,已经默认没有这个参数,如果你添加了,会报错的。

对应默认配置项:

restrict default kod nomodify notrap nopeer noquery #默认对所有client拒绝所有的操作restrict -6 default kod nomodify notrap nopeer noqueryrestrict 127.0.0.1 #允许本机地址的一切操作restrict -6 ::1

3)用server这个参数设定上级时间服务器

语法为: server IP地址或域名 [prefer]

IP地址或域名即为该NTP服务器指定的上级NTP服务器。当指定多个NTP服务器时,使用prefer参数的服务器优先级最高,如果都没有使用prefer参数,那么服务器的优先级则按从上到下的顺序依次由高到低。在指定上层服务器后,至少15min才会与上层NTP服务器进行时间校对。

对应默认配置项:

server 0.centos.pool.ntp.orgserver 1.centos.pool.ntp.orgserver 2.centos.pool.ntp.org

下面我们要对配置文件进行精简和更改,更改之后的配置文件如下:

[root@c64-server-1 ~]# cat /etc/ntp.confdriftfile /var/lib/ntp/driftrestrict default kod nomodify notrap nopeer noquery notrust #默认对所有client拒绝所有的操作restrict 127.0.0.1 #允许本机地址的一切操作restrict 192.168.1.0 mask 255.255.255.0 nomodify #允许局域网内所有client连接到这台服务器同步时间.但是拒绝让他们修改服务器上的时间server 1.cn.pool.ntp.org perfer #指定该上级NTP服务器为最优先server 3.asia.pool.ntp.org#这个上级NTP服务器是在官网找到离上海最近的NTP服务器server 0.asia.pool.ntp.org#这里我们也可以用上海交大之类提供的公益性NTP服务器includefile /etc/ntp/crypto/pwkeys /etc/ntp/keys

配置完成之后,我们就可以启动服务

[root@c64-ntp-1 ~]# /etc/init.d/ntpd startStarting ntpd:[ OK ]

启动完成后,我们通过查看端口和进程来看服务是否真的起来了

[root@c64-ntp-1 ~]# netstat -lntup|grep ntpudp00 192.168.1.113:1230.0.0.0:*11992/ntpd udp00 127.0.0.1:1230.0.0.0:*11992/ntpd udp00 0.0.0.0:1230.0.0.0:*11992/ntpd udp00 fe80::20c:29ff:fe06:9c22:123 :::*11992/ntpd udp00 ::1:123:::*11992/ntpd udp00 :::123:::*11992/ntpd [root@c64-ntp-1 ~]# ps -ef |grep ntp|grep -v grepntp119921 0 02:17 ?00:00:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g

加入开机启动项

接受失败等于回归真实的自我,

Linux实战部署系列之ntp服务器—-实践篇

相关文章:

你感兴趣的文章:

标签云: