红联Linux门户
Linux协助

如安在Linux上运转你自己的公共时刻服务器

发布时刻:2018-03-26 08:45:29来历:linux.cn作者:qhwdw
最重要的公共服务之一便是报时,可是许多人并没有意识到这一点。大多数公共时刻服务器都是由志愿者办理,以满意不断添加的需求。这儿学习一下怎么运转你自己的时刻服务器,为根底公共利益做奉献。(检查 在Linux上运用NTP坚持准确时刻 去学习怎么设置一台局域网时刻服务器)
 
闻名的时刻服务器乱用工作
就像实际生活中任何一件工作相同,即便是像时刻服务器这样的公益项目,也会遭受不称职的或许歹意的乱用。
消费类网络设备的供货商因制作了大紊乱而臭名远扬。我回想起的第一件事发作在 2003 年,那时,NetGear 在它们的路由器中硬编码了威斯康星大学的 NTP 时刻服务器地址。使得时刻服务器的查询恳求忽然添加,跟着 NetGear 卖出越来越多的路由器,这种状况越发严峻。更有意思的是,路由器的程序设置是每秒钟发送一次恳求,这将使服务器尴尬重负。后来 Netgear 发布了晋级固件,可是,晋级他们的设备的用户很少,而且他们的其间一些用户的设备,到今天为止,还在不停地每秒钟查询一次威斯康星大学的 NTP 服务器。Netgear 给威斯康星大学捐献了一些钱,以协助补偿他们带来的本钱添加,直到这些路由器悉数筛选。相似的工作还有 D-Link、Snapchat、TP-Link 等等。
对 NTP 协议进行反射和扩大,已经成为建议 DDoS 进犯的一个挑选。当进犯者运用一个假造的方针受害者的源地址向时刻服务器发送恳求,称为反射进犯;进犯者发送恳求到多个服务器,这些服务器将回复恳求,这样就使假造的源地址遭到轰炸。扩大进犯是指一个很小的恳求收到许多的回复信息。例如,在 Linux 上,ntpq 指令是一个查询你的 NTP 服务器并验证它们的体系时刻是否正确的很有用的东西。一些回复,比方,对端列表,是非常大的。组合运用反射和扩大,进犯者能够将 10 倍乃至更多带宽的数据量发送到被进犯者。
那么,怎么维护供给公益服务的公共 NTP 服务器呢?从运用 NTP 4.2.7p26 或许更新的版别开端,它们能够协助你的 Linux 发行版不会发作前面所说的这种问题,由于它们都是在 2010 年今后发布的。这个发行版都默许禁用了最常见的乱用进犯。现在,最新版别是 4.2.8p10,它发布于 2017 年。
你能够选用的另一个办法是,在你的网络上启用入站和出站过滤器。堵塞声称来自你的网络的数据包进入你的网络,以及阻拦发送到假造回来地址的出站数据包。入站过滤器能够协助你,而出站过滤器则协助你和其他人。阅览 BCP38.info 了解更多信息。
 
层级为 0、1、2 的时刻服务器
NTP 有超越 30 年的前史了,它是至今还在运用的最老的因特网协议之一。它的用处是坚持计算机与国际标准时刻(UTC)的同步。NTP 网络是分层安排的,而且同层的设备是对等的。层次 0 包含主报时设备,比方,原子钟。层级 1 的时刻服务器与层级 0 的设备同步。层级 2 的设备与层级 1 的设备同步,层级 3 的设备与层级 2 的设备同步。NTP 协议支撑 16 个层级,实际中并没有运用那么多的层级。同一个层级的服务器是彼此对等的。
曩昔很长一段时刻内,咱们都为客户端挑选装备单一的 NTP 服务器,而现在更好的做法是运用 NTP 服务器地址池,它运用轮询的 DNS 信息去同享负载。池地址仅仅为客户端服务的,比方单一的 PC 和你的本地局域网 NTP 服务器。当你运转一台自己的公共服务器时,你不必运用这些池地址。
 
公共 NTP 服务器装备
运转一台公共 NTP 服务器只要两步:设置你的服务器,然后恳求参加到 NTP 服务器池。运转一台公共的 NTP 服务器是一种很崇高的行为,可是你得先知道这意味着什么。参加 NTP 服务器池是一种长时刻职责,由于即便你参加服务器池后,运转了很短的时刻立刻退出,然后接下来的许多年你仍然会接收到恳求。
你需求一个静态的公共 IP 地址,一个至少 512Kb/s 带宽的、牢靠的、耐久的因特网衔接。NTP 运用的是 UDP 的 123 端口。它对机器自身要求并不高,许多办理员在其它的面向公共的服务器(比方,Web 服务器)上顺带架设了 NTP 服务。
装备一台公共的 NTP 服务器与装备一台用于局域网的 NTP 服务器是相同的,只需求几个装备。咱们从阅览 协议规矩 开端。遵守规矩并留意你的行为;简直每个时刻服务器的维护者都是像你这样的志愿者。然后,从 StratumTwoTimeServers 中挑选 4 到 7 个层级 2 的上游服务器。挑选的时分,选取地理方位上接近(小于 300 英里的)你的因特网服务供给商的上游服务器,阅览他们的拜访规矩,然后,运用 ping 和 mtr 去找到推迟和跳数最小的服务器。
以下的 /etc/ntp.conf 装备示例文件,包含了 IPv4 和 IPv6,以及根本的安全防护:
# stratum 2 server list
server servername_1 iburst
server servername_2 iburst
server servername_3 iburst
server servername_4 iburst
server servername_5 iburst
# access restrictions
restrict -4 default kod noquery nomodify notrap nopeer limited
restrict -6 default kod noquery nomodify notrap nopeer limited
# Allow ntpq and ntpdc queries only from localhost
restrict 127.0.0.1
restrict ::1
发动你的 NTP 服务器,让它运转几分钟,然后测验它对长途服务器的查询:
$ ntpq -p
remote refid st t when poll reach delay offset jitter
+tock.no-such-ag 200.98.196.212 2 u 36 64 7 98.654 88.439 65.123
+PBX.cytranet.ne 45.33.84.208 3 u 37 64 7 72.419 113.535 129.313
*eterna.binary.n 199.102.46.70 2 u 39 64 7 92.933 98.475 56.778
+time.mclarkdev. 132.236.56.250 3 u 37 64 5 111.059 88.029 74.919
现在体现很好。现在从另一台 PC 上运用你的 NTP 服务器姓名进行测验。以下的示例是一个正确的输出。如果有不正确的当地,你将看到一些错误信息。
$ ntpdate -q yourservername
server 66.96.99.10, stratum 2, offset 0.017690, delay 0.12794
server 98.191.213.2, stratum 1, offset 0.014798, delay 0.22887
server 173.49.198.27, stratum 2, offset 0.020665, delay 0.15012
server 129.6.15.28, stratum 1, offset -0.018846, delay 0.20966
26 Jan 11:13:54 ntpdate[17293]: adjust time server 98.191.213.2 offset 0.014798 sec
一旦你的服务器运转的很好,你就能够向 manage.ntppool.org 恳求参加池中。
 
检查官方的手册 分布式网络时刻服务器(NTP) 学习一切的指令、装备选项、以及高档特性,比方,办理、查询、和验证。
 
用NTP把控时刻(一):运用概览:http://www.138comgov138.com/linux/30351.html
在Ubuntu中运用NTP进行时刻同步:http://www.138comgov138.com/linux/27546.html
Linux下两个主机NTP同步:http://www.138comgov138.com/linux/24030.html
linux、windows双体系时刻修正和我国的时刻校准网络服务(NTP):http://www.138comgov138.com/linux/17993.html
Linux实战布置系列之NTP服务器:http://www.138comgov138.com/linux/11986.html