欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~
介绍
什么是 NTP
准确时间对于几乎所有服务或软件都至关重要。在分布式平台上运行的电子邮件,记录器,事件系统和调度程序,用户身份验证机制和服务都需要准确的时间戳记录事件。这些服务使用网络时间协议(NTP)将系统时钟与可信外部源同步。NTP 全称为 Network Time Protocol ,中文翻译为网络时间协议,1985年就已经被提出,旨在缩短互联网上所有计算机设备与 UTC 的时间差。通过 Marzullo 算法,他可以选择准确的时间服务器,并且可以适当减轻由于网络延迟所带来的误差。NTP 客户端将定期轮询不同网络上的三个或更多服务器。为同步其时钟,客户端必须计算其时间偏移量和来回通信延迟,随后,从最好的三个剩余中导出估算的时间偏移。然后调整时钟频率以逐渐减小偏移 。
什么是 NTP 服务器池
NTP 服务器池是一个分布式的公益性项目,简单来说,他就是各个地区可用的 NTP 服务器的一个集合。全世界各地的志愿者可以提交自己的 NTP 服务器到这个池中,在用户需要进行 NTP 查询的时候,通过 DNS 的按区域解析,用户可以被分配到最近的服务器上,这样可以减少网络延迟带来的误差,准确的提供时间。
这是NTP PoolProject项目发挥作用的地方。它是一个庞大的全球时间服务器集群,被全球数以千万计的客户称为“美妙时光”。它是Ubuntu和大多数其他主要Linux发行版的默认时间服务器,以及许多联网设备和软件应用程序。
如果你有位于国内的、长期可以使用的、有固定 IP 的服务器,你可以考虑参与进来这个项目。无论你的带宽多少,只要在服务器池中设置了服务器带宽,DNS 会对服务器的权重进行调整,使之尽可能的不超过你所设定的带宽。因此只要你有闲置的带宽,就可以参与进来,而不用担心影响正常的业务。
在本教程中,您将在服务器上设置NTP并将其配置为NTP池项目的一部分,以便为NTP池项目的其他用户提供准确的时间。提供备用CPU周期和未使用的带宽也是是向社区提供回馈的绝佳方式。
NTP所需带宽相对较低,可根据您提供的数量和服务器所在的位置进行调整。每个客户端每20分钟只发送几个UDP数据包,大多数服务器每秒只接收大约12个NTP数据包,每天发送一次高达每秒数百个数据包的峰值。这意味着带宽使用量为10-15Kb/秒,峰值为50-120Kb /秒。
在加入NTP池项目之前,您必须满足三个基本要求:
1.您的服务器必须具有静态IP地址。
2.您的服务器必须具有永久稳定的Internet连接。
3.您的IP地址一般不更改,或者很少更改(每年一次或更少)。
对于大多数云的服务器,通常会满足前两个要求。第三个要求强调,在加入NTP池项目将构成一个长期的承诺。当然,如果您的情况发生变化,也可以将服务器从池中取出,但在流量完全消失之前需要很长时间。
准备
要完成本教程,您需要:
- 一台配置了公网IP的Ubuntu 16.04服务器。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后在购买服务器。
- 在您的服务器上启用防火墙,如果您使用的是腾讯云的CVM服务器,您可以直接在腾讯云控制台中的安全组进行设置。
第一步、安装NTP
默认情况下系统不安装NTP软件包,因此您将使用软件包管理器apt
进行安装。首先,更新您的包:
sudo apt-get update
然后安装NTP:
sudo apt-get install ntp
如果已按准备教程配置防火墙,则必须允许123端口上的UDP通信才能与NTP池通信,如果您使用的是腾讯云的CVM服务器,您可以直接在腾讯云控制台中的安全组进行设置。:
sudo ufw allow 123/udp
NTP现已安装,但已配置为使用默认的NTP池时间服务器。让我们选择一些特定的时间服务器。
第二步、选择一个合适的上游服务器
NTP池项目要求加入池的运营商选择良好的网络本地时间服务器,而不是使用默认pool.ntp.org
服务器。这可确保NTP池项目可靠,快速。在选择时间源时,您需要稳定的网络连接,不会丢失数据包,并且服务器之间的转跳数尽可能少。
多层和分层NTP协议将所涉及的各方分为主服务器,辅助服务器和客户端。主服务器称为***Stratum1***,主服务器接连接到称为***Stratum 0_的时间源。该源可以是一个原子钟,GPS接收器或无线电导航系统。辅助服务器称为*Stratum2***,__*Stratum 3_** 等。
每个服务器也是一个客户端。Stratum 2客户端从上游Stratum 1服务器接收时间,并为下游Stratum 3服务器或其他客户端提供时间。要使NTP池项目正常工作,NTP至少需要配置三个服务器。该项目建议至少四个,不超过七个的时间源。
NTP池项目提供了公共Stratum 1和Startum 2时间的服务器的列表。这些列表指定了在规定限制下可用于公共访问的NTP时间服务器。您会发现大致有三种类型:
- OpenAccess:此时间服务器对符合NTP池的任何客户端开放。
- RestrictedAccess:此时间服务器除了NTP池使用外还有一些访问限制。
- ClosedAccess:此时间服务器已关闭或关机。
警告:除非您已获得批准,否则请勿使用未列为OpenAccess的服务器。
访问Stratum 1 Time Servers列表。您将看到如下列表:
![](https://i-blog.csdnimg.cn/blog_migrate/3d275c583aa0972d1d27c98e91f27586.png)
按ISO代码列对列表进行排序,找到一个或两个地理位置靠近你的服务器的服务器。当服务器的声明OpenAccess时,您可以放心地使用它。如果显示“RestrictedAccess”,请单击以打开该条目并阅读AccessDetails字段中指出的说明。通常,您会发现NotificationMessage设置为Yes,这意味着您必须制作一个指向ServerContact中提供的地址的电子邮件,通知服务器运营商您希望将此时间服务器用作NTP池项目的时间源。
确定要使用的服务器后,单击ISO列中每个服务器的链接并复制其主机名或IP地址。您将在第三步中使用这些地址。接下来,按照相同的过程从Stratum2列表中选择三个或四个服务器。
选择时间服务器后,就可以配置NTP客户端来使用它们了。
第三步、配置NTP以加入池
要将服务器与NTP池一起使用,需要配置新的时间服务器,您需要对NTP守护程序的配置进行一些修改。为此,请编辑/etc/ntp.conf
文件:
sudo nano /etc/ntp.conf
首先,确保配置了一个频率文件。频率文件存储以其标称频率运行的系统时钟与保持与正确时间同步所需的频率之间的频率偏移。它有助于实现稳定和准确的时间。您应该在默认安装的配置文件顶部找到它:
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help
driftfile /var/lib/ntp/ntp.drift
...
接下来,从配置中删除默认时间源条目。你需要寻找所有带有pool [0-3].ubuntu.pool.ntp.org iburst
或pool ntp.ubuntu.com
格式的行。如果您使用的是默认配置,请删除:
# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
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
您可在上一步中选择的服务器删除的行上使用server关键字替换pool关键字。
...
server ntp_server_hostname_1 iburst
server ntp_server_hostname_2 iburst
server ntp_server_hostname_3 iburst
server ntp_server_hostname_4 iburst
server ntp_server_hostname_5 iburst
...
我们根据NTP池建议为每个服务器使用iburst
选项。接下来,确保默认配置不允许管理查询。如果不这样做,你的服务器可以在NTP反射攻击中使用,也可能会受到ntpq
和ntpdc
试图修改服务器状态。检查noquery
选项是否已添加到默认restrict
行:
...
# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
您的NTP守护程序配置文件现在应如下所示,尽管您的文件可能有其他注释,您可以忽略它们:
driftfile /var/lib/ntp/ntp.drift
server ntp_server_hostname_1 iburst
server ntp_server_hostname_2 iburst
server ntp_server_hostname_3 iburst
server ntp_server_hostname_4 iburst
server ntp_server_hostname_5 iburst
# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
保存文件并退出编辑器。现在重新启动NTP服务,让时间服务器将其时钟同步到上游服务器。
sudo systemctl restart ntp.service
几分钟后,使用以下ntpq命令检查时间服务器的运行状况:
ntpq -p
输出结果应该类似于:
remote refidst t when poll reach delay offsetjitter
==============================================================================
mizbeaver.udel. .INIT.16 u- 6400.0000.000 0.000
montpelier.ilan .GPS.1 u 25 647 55.1902.121 130.492
+nist1-lnk.binar .ACTS. 1 u 28 647 52.728 23.860 3.247
*ntp.okstate.edu .GPS.1 u 31 647 19.708 -8.344 6.853
+ntp.colby.edu .GPS.1 u 34 647 51.518 -5.914 6.669
该remote列告诉您NTP守护进程正在使用的服务器的主机名,refid列告诉您的服务器使用的源代码。因此,对于Stratum 1服务器,refid字段应显示GPS,PPS,ACTS或PTB,而Stratum 2和更其他辅助服务器将显示上游服务器的IP地址。在ST列显示层级,和delay,offset和jitter告诉你时间源的质量。这三个字段的值越低越好。
您的时间服务器现在可以为公共服务。您可以通过从其他主机输入ntpdate
调用来验证这一点:
ntpdate -q your_server_ip
输出结果应该与以下类似,它告诉您它调整了时间服务器和偏移量:
server your_server_ip, stratum 2, offset 0.001172, delay 0.16428
2 Mar 23:06:44 ntpdate[18427]: adjust time server your_server_ip offset 0.001172 sec
您现在可以使用NTP池项目注册NTP服务器,以便其他人可以使用它。
第四步 - 将服务器添加到NTP池
要添加您的服务器以便其他人可以使用,可以访问manage.ntppool.org并注册一个帐户。您将收到来自NTP Poolhelp@ntppool.org的电子邮件,要求您验证您的帐户。按照电子邮件中的说明确认您的帐户,然后登录manage.ntppool.org。登录后,您将看到添加服务器的界面:
![](https://i-blog.csdnimg.cn/blog_migrate/19352d03106619479215550a3c3dcb9a.png)
输入服务器的IP地址,然后单击“ 提交”。
下一个屏幕会要求您验证它是否已标识服务器的区域。如果它将您的服务器显示在与您不同的地区,使用“**Comment”**框可让他们了解情况。
如果您满意,请单击Yes, this is my server, add it!
您的服务器现在已经是NTP池项目的一部分了。访问www.pool.ntp.org/scores/your…以查看NTP Pool的监控系统收集的有关您的服务器的信息。它每小时会检查您的服务器几次,并显示偏移数据,与系统的分数对应。只要您的服务器保持良好的时间并且可以访问,分数就会上升,直到达到20分。池中仅使用分数高于10的服务器。
结论
在本教程中,您成功学习了如何设置了自己的时间服务器,并使其成为NTP池项目的成员,为社区服务,现在国内NTP服务器数量还是不够乐观,还是那句话,如果你有位于国内的、长期可以使用的、有固定 IP 的服务器,你可以考虑参与进来这个项目。无论你的带宽多少,只要在服务器池中设置了服务器带宽,DNS 会对服务器的权重进行调整,使之尽可能的不超过你所设定的带宽。因此只要你有闲置的带宽,就可以参与进来,而不用担心影响正常的业务。更多Linux教程请前往腾讯云+社区学习更多知识。
参考文献:
《How to Configure NTP for Use in the NTP Pool Project on Ubuntu 16.04》
《国内 NTP 服务器池可能需要你的帮助》
问答
相关阅读
安全报告 | 2018上半年互联网恶意爬虫分析:从全景视角看爬虫与反爬虫
此文已由作者授权腾讯云+社区发布,原文链接:https://cloud.tencent.com/developer/article/1175079?fromSource=waitui
欢迎大家前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~
ce%3Dwaitui “https://cloud.tencent.com/developer/article/1163768?fromSource=waitui”)
此文已由作者授权腾讯云+社区发布,原文链接:https://cloud.tencent.com/developer/article/1175079?fromSource=waitui
欢迎大家前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~
海量技术实践经验,尽在云加社区!## 题外话
初入计算机行业的人或者大学计算机相关专业毕业生,很多因缺少实战经验,就业处处碰壁。下面我们来看两组数据:
2023届全国高校毕业生预计达到1158万人,就业形势严峻;
国家网络安全宣传周公布的数据显示,到2027年我国网络安全人员缺口将达327万。
一方面是每年应届毕业生就业形势严峻,一方面是网络安全人才百万缺口。
6月9日,麦可思研究2023年版就业蓝皮书(包括《2023年中国本科生就业报告》《2023年中国高职生就业报告》)正式发布。
2022届大学毕业生月收入较高的前10个专业
本科计算机类、高职自动化类专业月收入较高。2022届本科计算机类、高职自动化类专业月收入分别为6863元、5339元。其中,本科计算机类专业起薪与2021届基本持平,高职自动化类月收入增长明显,2022届反超铁道运输类专业(5295元)排在第一位。
具体看专业,2022届本科月收入较高的专业是信息安全(7579元)。对比2018届,电子科学与技术、自动化等与人工智能相关的本科专业表现不俗,较五年前起薪涨幅均达到了19%。数据科学与大数据技术虽是近年新增专业但表现亮眼,已跻身2022届本科毕业生毕业半年后月收入较高专业前三。五年前唯一进入本科高薪榜前10的人文社科类专业——法语已退出前10之列。
“没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关重要的因素之一。
网络安全行业特点
1、就业薪资非常高,涨薪快 2022年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!
2、人才缺口大,就业机会多
2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而全国各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全报告》预测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。
行业发展空间大,岗位非常多
网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…
职业增值潜力大
网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。
随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。
从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
行业发展空间大,岗位非常多
网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…
职业增值潜力大
网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。
随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。
从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!