设备生成的日志要反映出准确的时间,尤其是处理繁忙的数据时,如果时间不同步,几乎不可能将来自不同源的日志关联起来,一旦日志关联不起来,安全相关工具就毫无用处;解决方法是需要一个能调整始终抖动率,建立一个即时缓和且调整时间变化并用一群受托服务器提供准确且稳定时间的时间管理协议,这就是网络校时协议(NTP).NTP协议是OSI参考模型的高层协议,拥有专用的UDP端口123.
一、NTP介绍
1、网络时间服务的实现方式:
NTP提供准确的时间首先要有准确的时间来源,这一时间应该是国际标准时间UTC,来源可以是原子钟、天文台、卫星,也可以是internet;
网络时间服务的实现方式主要有以下三种:
1)、无线时钟;
就是服务器通过串口连接一个无线时钟,而无线时钟接受全球卫星定位系统的卫星发射来的信号决定当前时间;
2)、时间服务器;
可以使用NTP服务器来同步网络中的系统时钟,
3)、局域网内同步;
如果只是需要在局域网内的时间同步,就可以使用局域网中任何一个系统时钟,作为局域网内“权威的”时间源;
2、NTP的工作模式:
1)、主/被动对称模式(broadcast/multicast):一对一的连接,双方均可同步对方或被对方同步。谁先发出申请谁就处于主动,另一方工作在被动模式下,此方式用于配置用冗余的时间服务器;
2)、客服/服务器模式(client/server):与主/被动模式基本相同。只是只有客户端被服务器端同步,而服务器端不能被客户端同步;
3)、广播模式:一对多的连接,服务器不论客户工作的何种模式,主动发出时间信息,客户由此调整自己的时间,这种方式精度有损失,,但可以满足秒级使用。
上述三种模式都使用UDP协议,
3、选择NTP服务器
国外主要时间服务器:
美国:
国家 机构 网络地
---------------------------------------------------------------------------------------
美国 NIST Boulder Laboratories time-b.timefreq.bldrdoc.gov (132.163.4.102)
---------------------------------------------------------------------------------------
美国 NIST Boulder Laboratories time-c.timefreq.bldrdoc.gov (132.163.135.132)
---------------------------------------------------------------------------------------
加拿大 Canadian Meteorological Centre clock.cmc.ec.gc.ca(142.3.100.2)
---------------------------------------------------------------------------------------
英国 Computing Systems Research Ltd. chronos.csr.net (194.35.252.7
---------------------------------------------------------------------------------------
国内的NTP服务器如下:
(1)、time.buptnet.edu.cn :北京邮电大学
(2)、slb.time.edu.cn :清华大学
(3)、slc.time.edu.cn :北京大学
(4)、sld.time.edu.cn :东南大学
注:CERNET教育网内NTP服务器列表请见:http://www.time.edu.cn/mem.htm
二、配置NTP网络时间服务器:
http://www.ntp.org/downloads.html 下载
[root@dns ~]# rpm -qa |grep ntp
chkfontpath-1.10.1-1.1
ntp-4.2.2p1-9.el5_3.2
[root@dns ~]#
[root@dns ~]# service ntpd status
ntpd 已停
在装系统时已经安装了;如果没有安装可以到光盘里面找到NTP的安装包,也可以到上面的网站上下载安装包;
1、NTP软件包的结构和相关命令
NTP服务的配置文件包括4个文件:
/etc/ntp.conf :这个文件50行,是NTP服务的主要配置文件,
/usr/share/zoneinfo/ :这个目录下面规定了各主要时区的设定文件,如国内的时区设置文件是/usr/share/zoneinfo/Asia/shanghai;
/etc/sysconfig/clock :linux时区的设定文件,每次启动系统会自动读取这个文件,来设定系统要显示的时间;
ZONE="Asia/Shanghai" 表示的是linux系统的时间设定使用/usr/share/zoneinfo/Asia/shanghai这个文件
/etc/localtime :本地系统的时间设定文件,如果clock文件中规定了使用的时间设定文件为/usr/share/zenoinfo/Asia/Shanghai,linux系统会将shanghai这个文件复制一份为/etc/localtime,所以系统的时间显示就会以shanghai那个时间设定文件为准;
2、与NTP及系统时间有关的执行文件如下:
/bin/date :修改及输出日期与时间的命令;
/sbin/hwclock :主机的bios时间与系统时间是分开的,date只是调整了系统时间,还需要用hwclock将修改后的时间写入bios,这个命令只有root用户运行;
/usr/sbin/ntpd :NTP的守护进程文件,需要启动它才能提高NTP服务;
/usr/sbin/ntpdate :NTP客户端用来连接NTP服务器的命令文件;
/usr/sbin/ntpq:标准的网络计时协议NTP查询程序;
/usr/sbin/ntptrace :跟踪网络计时协议主机链到他们的控制时间源;
/sbin/clock : 调整电脑内建的硬件时间RTC,执行这个命令可以显示现在的时刻,
3、NTP服务器端的设置文件 /etc/ntp.conf相关格式设定:
(1)、restrict 参数来设定权限 格式如下:
restrict IP地址 mask 子网掩码参数
其中IP地址可以是default,default指所有IP,包括如下参数:
ignore :关闭所有的NTP连接服务;
nomodify :客户端不能更改服务端的时间参数,但是可以通过服务端进行网络效时;
notrust : 客户端除非通过认证,否则其来源将视为不信任子网;
noquery :不提供客户端的时间查询:
如果未设置IP 表示该IP没有任何限制
(2)、使用server参数设定上级时间服务器。格式如下:
server ip地址或域名[prefer]
IP地址或域名为指定的上级时间服务器,如果在server后加上prefer,表示ntp服务器主要以其主机时间校准;
(3)、driftfile格式如下:
driftfile 文件名
在与上级时间服务器联系时所花费的时间记录在driftfile参数后面的文件中;driftfile后面的问价需要使用完整的路径文件名,不能是连接文件,并且文件的权限要设定为ntpd守护进程可以写入。
如:driftfile /var/lib/ntp/drift
[root@dns lib]# ll -d ntp/
drwxr-xr-x 2 ntp ntp 4096 2009-05-14 ntp/
4、配置内部NTP服务器为数据服务器时钟;