当前位置: 首页 > news >正文

Ops实践 | 国产化KylinOS系统中快速部署企业内部高性能DNS服务器、时间同步服务器 (精选)...

eb11762284ed512e24baf294924d3d01.jpeg

各位看友,由于微信公众号推送机制改变,现在需要设置为星标才能收到的本公众号推送消息哟。d91a0973bb50c907d929074d90c25295.gif关注回复【学习交流群】加入【安全开发运维】答疑交流群

请朋友们【多多点击文中的广告】,支持作者更新更多文章


目录:

23946bd9f1b305f9fb7566cac1604e2c.png


本文为作者原创文章,为尊重作者劳动成果禁止非授权转载,若需转载请在【全栈工程师修炼指南】公众号留言,或者发送邮件到 [master@weiyigeek.top] 中我将及时回复。

各位看友,由于微信公众号推送机制改变,现在需要设置为星标才能收到【本公众号最新技术文章】的推送消息哟。

本文为作者原创文章,为尊重作者劳动成果禁止非授权转载,若需转载请在【全栈工程师修炼指南】公众号留言,或者发送邮件到 [master@weiyigeek.top] 中我将及时回复。

0x00 前言简述

描述: 作者所在公司每年在做等保前,都会由专业的安全服务公司做内部系统主机的安全渗透测试漏洞扫描以及风险评估等, 最近安全服务人员发现企业内部DNS/NTP服务器安装的DNS主从服务(使用了bind9软件)以及NTP服务(使用的ntpd服务)版本过低,会有一定的安全风险因数,其次又因为国产化的操作系统替代的需求,遂作为一名运维打工人不得不将原本的使用Ubuntu 20.04部署的DNS服务以及NTP服务,改成使用国产操作系统银河麒麟KylinOS V10 SP3作为服务器系统,并使用最新的云原生CNCF毕业的CoreDNS 软件高性能可扩展软件工具来替换Bind9 软件作为主从DNS服务器,其次使用chrony 软件作为企业内部的时间同步服务器,此处作者为了总结经验,以及可能有其他企业的小伙伴正在向国产化系统的替换有同样需求的简单的做一个参考,遂有了此篇文章,希望大家多多支持。

温馨提示: 本文是作者原创文章,作者熬夜花费了许多精力进行实践和总结,为了防止恶意爬虫和伸手党直接转发,所以作者将此文设为付费文章(请作者喝一瓶可乐🍺 精神精神),希望大家理解并多多支持,作者后续将持续更新更多secdevops方面的文章,此外各位付费的朋友可以加入我们的【微信交流群】(关注后回复此关键即可)一起进行学习,相关问题讨论。

温馨提示: 此处,先来看看本文章,将实现在国产操作系统银河麒麟V10服务器中部署的企业高性能、可扩展的DNS域名解析服务以及时间同步服务器部署效果,请付费的朋友在文章末尾获取DNS/NTP相关配置文件。

「在Windows/Linux中使用nslookup工具验证使用CoreDNS部署的主从(辅助)DNS服务器解析情况」d6557b453c2283d1d9d86367cd961a2d.png

「在Windows/Linux中让内部无法连接外网的机器,使用内部部署时间同步服务器进行时间同步」a7c14f139cfb55c5e5c400b536e4d4a3.png

什么是时间同步服务器?

描述: 时间同步服务器(Time Synchronization Server)是一台计算机或设备,它通过网络提供精确的时间信号,用于同步其他计算机或设备的系统时间。时间同步服务器通常连接到具有高精度时钟的时间源,如原子钟或GPS卫星,以确保提供准确的时间。

它使用各种协议和技术,如NTP(Network Time Protocol)SNTP(Simple Network Time Protocol)和PTP(Precision Time Protocol)来与其他设备进行通信和时间同步。这些协议允许计算机和设备通过网络与时间同步服务器进行通信,并根据服务器提供的时间信号来调整自己的系统时间。

它在许多领域中都非常重要,特别是在网络和通信领域,以及需要精确时间戳和时间同步的应用程序中,一些常见的应用场景即金融交易、科学实验、电信网络、物联网设备、计算机集群等都有其身影,通过使用时间同步服务器,可以确保这些设备和应用程序之间的时间一致性,从而提高数据的准确性和可靠性。

当前企业内部通常是采用 ChronyNTP(Network Time Protocol) 两种不同的时间同步协议和软件来搭建部署时间同步服务器。


Chrony与NTP时间同步协议和软件区别

描述: Chrony 和 NTP(Network Time Protocol)是两种不同的时间同步协议和软件, 以下是它们之间的一些主要区别:

「算法和机制」

  • Chrony 是一种使用NTP或NTP-over-UDP协议来同步时间,通过"Clock Discipline Algorithm"的算法来调整系统时钟,以实现更高的精度和稳定性,是目前较新的时间同步工具。

  • NTP 是一种使用UDP协议的网络时间协议,通过"Marzullo's algorithm"的算法来对时钟进行频繁的微调来实现同步。

「精度和稳定性」

  • Chrony 相对于NTP具有更好的精度和稳定性。Chrony使用了更复杂的算法来计算和校准系统时钟,以提供更准确的时间同步。

  • NTP 使用一种分层的时间同步方法,通过在全球范围内建立时间服务器的层次结构来提供时间同步服务。这种分层结构可以提供较高的稳定性和可靠性。

「网络延迟和带宽消耗」

  • Chrony 相对于NTP具有更低的网络延迟和带宽消耗。Chrony使用了更少的网络流量来同步时间,这对于网络带宽有限的环境非常有益。

  • NTP 可能会产生较多的网络流量和带宽消耗。

「配置和管理」

  • Chrony 配置相对简单,它提供了更易于使用和管理的工具。Chrony可以自动选择最佳的时间服务器,并且提供了更灵活的配置选项。

  • NTP 配置相对较为复杂,需要手动配置和管理时间服务器的层次结构。NTP需要手动指定时间服务器和配置文件。

综上所述, Chrony提供了更高的精度和稳定性,对网络延迟和负载的影响较小,并具有简单灵活的配置选项。NTP在广泛的兼容性和可用性方面更为突出。

所以此处作者使用Chrony工具来搭建部署时间服务器,当然具体选择使用哪种时间服务器取决于您的特定需求和环境。


什么是DNS域名服务器?

描述: DNS(Domain Name System,域名系统)域名服务器是一种用于将人类可读的域名解析为计算机可理解的IP地址的服务器。在互联网中,每个设备都有一个唯一的IP地址,用于标识和定位设备。然而人们更习惯于使用易于记忆的域名来访问网站和应用程序,而不是记住一串数字的IP地址, 例如你想使用浏览器访问作者博客,你只需要记住 www.weiyigeek.top 域名地址,而非IP地址 82.156.18.253

「DNS域名服务器的作用」描述: 将用户输入的域名转换为相应的IP地址,使用户能够通过域名来访问所需的网站或应用程序。当用户在浏览器中输入一个域名时,浏览器会向DNS服务器发送查询请求,以获取相应的IP地址。DNS服务器会根据域名的层次结构进行查询,并返回与该域名对应的IP地址给用户的浏览器,然后浏览器就可以向该IP地址发送请求,获取所需的网页内容。

DNS域名服务器通常采用分层和分布式的架构,以提供高效和可靠的域名解析服务。互联网上有多个根域名服务器,它们负责管理顶级域名(如.com.org.net等)的解析。每个顶级域名又有自己的域名服务器,负责管理该顶级域名下的二级域名(如google.com、yahoo.com等)的解析。这种分层的结构使得域名解析可以高效地进行,并且具有冗余和容错能力,确保了互联网上的域名解析服务的稳定性和可用性。

当前企业内部通常是采用BIND来搭建部署时间同步服务器, 不过除此此外你还可以使用CoreDNSdnsmasq来搭建部署。


BIND、CoreDNS和dnsmasq DNS服务器软件区别

描述: BIND、CoreDNS和dnsmasq都是常见的DNS服务器软件,它们在功能和设计上有一些区别。

  1. BIND:

  • BIND(Berkeley Internet Name Domain)是最常见和广泛使用的DNS服务器软件。

  • 它是一个功能强大且可定制的DNS服务器,支持标准的DNS协议和功能,包括区域传输、反向解析、DNSSEC等。

  • BIND是一个较为复杂的软件,需要更多的配置和管理,适用于大型网络环境和企业网络。

CoreDNS:

  • CoreDNS是一个可扩展的、模块化的DNS服务器软件。

  • 它是为了替代BIND而开发的,旨在提供更现代、高性能和易扩展的DNS解析服务。

  • CoreDNS支持插件机制,可以根据需要加载不同的插件,提供更多功能,如DNSSEC、服务发现、反向代理等。

  • CoreDNS的设计目标是简化配置、易于扩展和高性能。

dnsmasq:

  • dnsmasq是一个轻量级的DNS服务器和DHCP服务器软件。

  • 它主要用于小型网络环境或家庭网络中。

  • dnsmasq的设计目标是简化和易用性,它提供了基本的DNS解析和缓存功能,以及DHCP服务器功能。

  • dnsmasq通常用于家庭路由器、无线接入点和小型办公网络中,因其易配置和占用资源较少而受到广泛使用。

总结:你可能需要按照你企业的转型需求网络规模功能需求技术要求来选择上述三款DNS服务器软件,此处作者选用的是CoreDNS来部署企业的主从DNS服务器。

  • BIND是功能强大的DNS服务器,适用于大型网络环境,提供广泛的功能和定制选项。

  • dnsmasq适用于小型网络环境,提供基本的DNS解析和DHCP服务器功能。

  • CoreDNS是一个可扩展的、模块化的DNS服务器,适用于现代网络环境,可以根据需要加载不同的插件。


知识扩展文章

描述: 在进行部署前,作者建议各位新手朋友简单了解一下关于国产银河麒麟操作系统DNS域名解析服务器以及NTP时间服务器的其他相关基础知识,此处作者已经为大家整理好了,若你大佬请略过此部分,跳到你感兴趣的地方即可。

「国产银河麒麟操作系统相关文章」

  • 企业实践 | 国产操作系统之光? 银河麒麟KylinOS-V10(SP3)高级服务器操作系统基础安装篇: https://mp.weixin.qq.com/s/yqd1Qtog9wy8L5sgvgcEOQ

  • 企业实践 | 如何在阿里云裸金属服务器上使用UEFI模式实践安装国产银河麒麟V10操作系统入门配置篇:https://mp.weixin.qq.com/s/489ALphpt1nx1pvFcGpD9g


「DNS域名解析服务器相关文章」

  • 基础扫盲 | 运维之DNS域名解析服务基础概念与Bind9安装 : https://mp.weixin.qq.com/s/rEiRkBKEqetYKALAdEq7EQ

  • 基础扫盲 | 运维之DNS服务器Bind9配置解析和基础示例及附带命令: https://mp.weixin.qq.com/s/1IqSHi9Oauhld3rZsKUnvA

  • 企业实践 | 使用bind9搭建企业内部DNS主从服务安全(精选) : https://mp.weixin.qq.com/s/0EOyR4uEVe7T_4HbSxqK9w


「ntp 时间服务器相关文章」

  • 企业实践 | 使用ntp搭建企业内部NTP时间同步服务器: https://mp.weixin.qq.com/s/EML9vQlJvx2iGrznm6JN_g

废话不多,下面开始实践在麒麟操作系统中安装时间服务器DNS域名解析服务器吧!


0x01 环境部署

1.环境说明

描述: 此处实践的银行麒麟国产操作系统都已经进行对应的安全加固,符合等保主机安全规范,若你还未进行KylinOS加固的朋友可以参考作者的此篇付费文章【网安等保|国产Linux操作系统银河麒麟KylinOS-V10SP3常规配置、系统优化与安全加固基线实践文档】https://mp.weixin.qq.com/s/eBF_Q-WkiZHKGdEG1MODNQ,里面包含脚本分类备注解释以及对应的Shell加固脚本

「KylinOS操作系统安全加固视频」

「实践主机及操作系统一览」

# 安装DNS服务器和时间服务器的主机名称及地址
10.20.176.120 dns1 主域名服务器
10.20.176.121 dns2 辅助域名服务器# KylinOS 发行版本
$ nkvers
############## Kylin Linux Version #################
Release:
Kylin Linux Advanced Server release V10 (Lance)Kernel:
4.19.90-52.19.v2207.ky10.x86_64Build:
Kylin Linux Advanced Server
release V10 (SP3) /(Lance)-x86_64-Build20/20221125

「防火墙配置&禁用默认解析服务」

# 默认安装的KylinOS V10操作系统中 systemd-resolved 服务会自行启用并占用53端口, 从而会导致`CoreDNS`服务无法正常启动, 所以要先禁用掉这个服务。
$ lsof -i:53# COMMAND       PID            USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME# systemd-r 3551539 systemd-resolve   12u  IPv4 1012561705      0t0  UDP 127.0.0.53:domain# systemd-r 3551539 systemd-resolve   13u  IPv4 1012561706      0t0  TCP 127.0.0.53:domain (LISTEN)
# 禁用各节点 systemd-resolved 服务
sudo systemctl disable systemd-resolved && sudo systemctl stop systemd-resolved
# 再次验证 53 端口是否被占用
lsof -i:53# 设置防火墙允许DNS服务53端口网络通行
firewall-cmd --permanent --add-service=dns
# 设置防火墙允许chronyd时间同步服务123端口网络通行
firewall-cmd --permanent --add-port=123/udp --add-port=123/tcp
# 重载主机防火墙配置
firewall-cmd --reload

温馨提示: systemd-resolved 服务主要用于解析域名、IPv4和IPv6地址、DNS记录和服务。


2.Time 时间服务器部署

描述: 此处作者推荐使用 Chrony工具 来部署用于同步计算机系统时间的时间服务器,当然你也可以使用NTP(Network Time Protocol)进行部署, 区别请参考【什么是时间同步服务器?】章节。

chrony官网: https://chrony.tuxfamily.org

1.部署流程

Step 1.在安装KylinOS操作系统时已经默认安装了Chrony工具,若没有此工具请执行如下命令进行安装。

# 查看是否安装 Chrony
$ rpm -qa | grep "chrony"
chrony-help-3.5-3.p01.ky10.noarch
chrony-3.5-3.p01.ky10.x86_64# 若没有安装请执行如下命令安装
dnf update
dnf -y install chrony
# 或者
yum -y install chrony

Step 2.安装好Chrony工具后,我们快速针对两台主机的chrony配置文件进行配置。

相关文章:

Ops实践 | 国产化KylinOS系统中快速部署企业内部高性能DNS服务器、时间同步服务器 (精选)...

各位看友,由于微信公众号推送机制改变,现在需要设置为星标才能收到的本公众号推送消息哟。关注回复【学习交流群】加入【安全开发运维】答疑交流群 请朋友们【多多点击文中的广告】,支持作者更新更多文章。 目录: 本文为作者原创文章&#xf…...

stm32之IIC协议

主要通过两个层面来讲:物理层、协议层。 IIC是一个同步半双工串行总线协议。 一、物理层(通信模型) 1、最早是飞利浦公司开发的这个协议,最早应用到其产品上去。 2、两线制(两根信号线) 其中SCL为时钟…...

范式 事务 多表查询

范式 概念:设计数据库时,需要遵循的一些规范。要遵循后边的范式要求,必须遵循前边的所有范式要求 第一范式: 数据库表的每一列都是不可分割的基本数据项 这样子就不满足第一范式 这样子就满足第一范式 存在问题: 数…...

基于白鲸算法优化的BP神经网络(预测应用) - 附代码

基于白鲸算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于白鲸算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.白鲸优化BP神经网络2.1 BP神经网络参数设置2.2 白鲸算法应用 4.测试结果:5.Matlab代码 摘要…...

java并发编程 ReentrantLock详解

文章目录 1 概要2 相关文章3 例子4 方法详解4.1 lock()4.2 unlock()4.3 tryLock()4.4 其他公平锁 总结 1 概要 ReentrantLock 通过实现Lock接口的行为,提供锁机制。但是实现委托给了内部的Sync,Sync extends AbstractQueuedSynchronizer,继承…...

Java获取文件内容IO流

文章目录 InputStream和ReaderScannerNIO外传 一般读取文件类的使用字符流即可 InputStream和Reader InputStream和Reader是Java IO中的两个重要的抽象基类,InputStream是二进制流,Reader是字符流。使用InputStream或者Reader读取文件内容可以帮助我们…...

Java后端开发面试题——集合篇

ArrayList底层的实现原理是什么 底层数据结构 ArrayList底层是用动态的数组实现的 初始容量 ArrayList初始容量为0,当第一次添加数据的时候才会初始化容量为10 扩容逻辑 ArrayList在进行扩容的时候是原来容量的1.5倍,每次扩容都需要拷贝数组 添加逻…...

如何允许远程访问MySQL

许多网站和应用程序一开始都将web服务器和数据库后端托管在同一台机器上。不过,随着时间的推移,这样的设置可能会变得繁琐和难以扩展。一种常见的解决方案是通过设置远程数据库来分离这些功能,允许服务器和数据库在各自的机器上按自己的速度增…...

001图机器学习与图神经网络简介

文章目录 一. 无处不在的图二. 如何对图数据做信息挖掘三. 图神经网络四. 图机器学习常用的编程工具五. 图的可视化工具六. 常见的图数据库七. 图机器学习的应用举例八. 结束语 一. 无处不在的图 一切具有关联关系的数据都可以用图来表示。比如:交通网、知识图谱、…...

万级数据优化EasyExcel+mybatis流式查询导出封装

文章目录 前言.万级数据优化一. 直接上流式查询封装工具代码二. 传统分页导出查询三. 流式查询概念游标查询 前言.万级数据优化 我们不妨先给大家讲一个概念,利用此概念我们正好给大家介绍一个数据库优化的小技巧: 需求如下:将一个地市表的数…...

Unity——脚本序列化

在介绍序列化之前,我们先来了解一下为什么要对数据进行序列化 数据序列化有以下几个主要的应用场景和目的: 1. 持久化存储:序列化可以将对象或数据结构转换为字节序列,使得其可以被存储在磁盘上或数据库中。通过序列化&#xff…...

es(Elasticsearch)介绍

学习es可以参考mysql(相比mysql而言,es所需的cpu、内存更多) 什么是Elasticsearch Elasticsearch简称es,是由Elastic和search组成。Elastic的意思是有弹性的,search的意思是搜索。 弹性:es是一个天生支持分…...

C++中使用 do…while 循环

C中使用 do…while 循环 在有些情况(如程序清单 6.8 所示的情况)下,您需要将代码放在循环中,并确保它们至少执行一次。此时 do…while 循环可派上用场。 do…while 循环的语法如下: do {StatementBlock; // executed…...

开源vue动态表单组件

一、项目简介 vueelement的动态表单组件,拖拽组件到面板即可实现一个表单 二、实现功能 支持拖拽 支持输入框 支持文本框 支持数字输入框 支持下拉选择器 支持多选框 支持日期控件 支持开关 支持动态表格 支持上传图片 支持上传文件 支持标签 支持ht…...

怎么从0到1创建一个PHP框架-1?

写在前面 本人开发的框架在2021年年初开发完成,后面没有再做过任何维护和修改。是仅供大家参考交流的学习项目,请勿使用在生产环境,也勿用作商业用途。 框架地址: https://github.com/yijiebaiyi/fast_framework 整体思路 开发…...

Qt无边框青绿色主题

收费产品,学生党、闹眼子党勿扰 收费金额:500元 1 概述 最近因项目需要,写了一个炫酷的青绿色、无边框界面,和3DSMax的界面有点类似。 2 截图 首先看看3DSMax的界面 不知道大家看出来没,这个ui其实很简单&#xff…...

200 套基于Java开发的Java毕业设计实战项目(含源码+说明文档)

文章目录 简介前言第一部分第二部分部分截图源码咨询 简介 博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 前言 对于java方向的毕业设计题目选题&#xf…...

Ansible学习笔记7

user模块: user模块用于管理用户账户和用户属性。 如果是windows要换一个win_user模块。 创建用户:present: [rootlocalhost ~]# ansible group1 -m user -a "nameaaa statepresent" 192.168.17.106 | CHANGED > {"ansi…...

Python3 对列表、字典以及二者的嵌套数据(JSON)格式排序

在 Python 中,列表和字典都是基础数据类型,这两种数据类型会通过相互嵌套和多个层级形成复杂的数据类型,类似 JSON 数据格式,对列表和字典排序其实可以类比是对 JSON 排序。 列表排序 列表可以使用 sorted() 函数排序&#xff1…...

如何在B站进行学习直播

诸神缄默不语-个人CSDN博文目录 会根据我使用的情况进行持续更新 文章目录 1. 电脑 - 哔哩哔哩直播姬1. 软件的基础使用2. 素材1. 摄像头2. 窗口捕捉3. 游戏进程图片文字浏览器多媒体 3. H5插件其他注意事项 2. 手机直播3. iPad直播 1. 电脑 - 哔哩哔哩直播姬 1. 软件的基础使…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子&#xff08…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...