Ops实践 | 国产化KylinOS系统中快速部署企业内部高性能DNS服务器、时间同步服务器 (精选)...
各位看友,由于微信公众号推送机制改变,现在需要设置为星标才能收到的本公众号推送消息哟。关注回复【学习交流群】加入【安全开发运维】答疑交流群
请朋友们【多多点击文中的广告】,支持作者更新更多文章。
目录:
本文为作者原创文章,为尊重作者劳动成果禁止非授权转载,若需转载请在【全栈工程师修炼指南】公众号留言,或者发送邮件到 [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服务器解析情况」
「在Windows/Linux中让内部无法连接外网的机器,使用内部部署时间同步服务器进行时间同步」
什么是时间同步服务器?
描述: 时间同步服务器(Time Synchronization Server
)是一台计算机或设备,它通过网络提供精确的时间信号,用于同步其他计算机或设备的系统时间。时间同步服务器通常连接到具有高精度时钟的时间源,如原子钟或GPS卫星,以确保提供准确的时间。
它使用各种协议和技术,如NTP(Network Time Protocol)
、SNTP(Simple Network Time Protocol
)和PTP(Precision Time Protocol)
来与其他设备进行通信和时间同步。这些协议允许计算机和设备通过网络与时间同步服务器进行通信,并根据服务器提供的时间信号来调整自己的系统时间。
它在许多领域中都非常重要,特别是在网络和通信领域,以及需要精确时间戳和时间同步的应用程序中,一些常见的应用场景即金融交易、科学实验、电信网络、物联网设备、计算机集群等都有其身影,通过使用时间同步服务器,可以确保这些设备和应用程序之间的时间一致性,从而提高数据的准确性和可靠性。
当前企业内部通常是采用 Chrony
和 NTP(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
来搭建部署时间同步服务器, 不过除此此外你还可以使用CoreDNS
和dnsmasq
来搭建部署。
BIND、CoreDNS和dnsmasq DNS服务器软件区别
描述: BIND、CoreDNS和dnsmasq都是常见的DNS服务器软件,它们在功能和设计上有一些区别。
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服务器、时间同步服务器 (精选)...
各位看友,由于微信公众号推送机制改变,现在需要设置为星标才能收到的本公众号推送消息哟。关注回复【学习交流群】加入【安全开发运维】答疑交流群 请朋友们【多多点击文中的广告】,支持作者更新更多文章。 目录: 本文为作者原创文章…...

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. 持久化存储:序列化可以将对象或数据结构转换为字节序列,使得其可以被存储在磁盘上或数据库中。通过序列化ÿ…...

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其实很简单ÿ…...

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

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() 函数排序࿱…...

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

老卫带你学---windows上安装minikube
老卫带你学—windows上安装minikube 1. 下载minikube https://storage.googleapis.com/minikube/releases/latest/minikube-installer.exe2.安装好后,将对应的目录添加env path 3. minikube start --kubernetes-versionv1.23.8 --image-mirror-countrycn...

Neo-reGeorg隧道搭建
目录 Neo-regeorg前言 环境搭建 具体使用 kail安装Neo-reGeorg kail内生成webshell并设置密码 kail与win10连接 windows server内打开服务 kail虚拟机访问windows server以及所在的内网 Neo-regeorg前言 regeorg为reDuh的升级版,主要功能就是把内网服务器的…...

Elasticsearch 7.6 - API高阶操作篇
ES 7.6 - API高阶操作篇 分片和副本索引别名添加别名查询所有别名删除别名使用别名代替索引操作代替插入代替查询 场景实操 滚动索引索引模板创建索引模板查看模板删除模板 场景实操一把索引的生命周期数据迁移APIGEO(地理)API索引准备矩形查询圆形查询多边形查询 自定义分词器…...

软件第三方验收测评介绍
软件第三方验收测试 软件项目验收测试介绍: 软件项目验收测试是部署软件之前的最后一个测试操作,是对系统进行全面的测试,以验证其是否符合合同要求,出具第三方测试报告,为系统验收提供依据。 验收测试的目的是&…...

HarmonyOS—使用Web组件加载页面
页面加载是 Web 组件的基本功能。根据页面加载数据来源可以分为三种常用场景,包括加载网络页面、加载本地页面、加载 HTML 格式的富文本数据。 页面加载过程中,若涉及网络资源获取,需要配置ohos.permission.INTERNET网络访问权限。 加载网络…...

Redis 缓存穿透、击穿、雪崩
一、缓存穿透 1、含义 缓存穿透是指查询一个缓存中和数据库中都不存在的数据,导致每次查询这条数据都会透过缓存,直接查库,最后返回空。 2、解决方案 1)缓存空对象 就是当数据库中查不到数据的时候,我缓存一个空对象…...

设计模式-原型模式详解
文章目录 前言理论基础1. 原型模式定义2. 原型模式角色3. 原型模式工作过程4. 原型模式的优缺点 实战应用1. 原型模式适用场景2. 原型模式实现步骤3. 原型模式与单例模式的区别 原型模式的变体1. 带有原型管理器的原型模式2. 懒汉式单例模式的原型模式实现3. 细粒度原型模式 总…...

大语言模型之七- Llama-2单GPU微调SFT
(T4 16G)模型预训练colab脚本在github主页面。详见Finetuning_LLama_2_0_on_Colab_with_1_GPU.ipynb 在上一篇博客提到两种改进预训练模型性能的方法Retrieval-Augmented Generation (RAG) 或者 finetuning。本篇博客过一下模型微调。 微调:…...

房地产行业专题报告:日本房地产市场借鉴
目录 1. 日本房地产泡沫的形成与崩溃 1.1 背景:实际需求减弱、宽松货币和弱金融监管推动泡沫形成 1.1.1 宏观环境:日本 80 年代起生育率降低,房地产基本面支撑力不足 1.1.2 货币政策:宽松货币政策叠加金融自由化促进泡沫生成 1.1.3 助推因素:企业积极参与土地投机、股…...

Educational Codeforces Round 154 (Rated for Div. 2)
Educational Codeforces Round 154 (Rated for Div. 2) A. Prime Deletion 思路: 因为1到9每个数字都有,所以随便判断也质素即可 代码 #include<bits/stdc.h> using namespace std; #define int long long #define rep(i,a,n) for(int ia;i<…...