×

赵安 发表于 2024-8-21 09:36
  
打卡学习,感谢大佬分享!
#2022争霸赛*干货满满#利用centos+bind-chroot测试主辅DNS部署
  

无赖叫兽 164005人觉得有帮助

{{ttag.title}}
本帖最后由 无赖叫兽 于 2022-9-16 16:52 编辑

一、前言

  DNS(Domain Name System)是因特网的一项服务,它作为域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,如果一个企业内网有自己的DNS的话,在安全和管理方面都能很方便,比如安全溯源或是部署LDAP都需要DNS。我发现大多数企业用的都是微软windows部署的DNS和AD域,我个人感觉windows系统不大稳定,安全漏洞也过多,往往过段时间就需要重起系统,而且里面的有些逻辑我感觉不是很能理解,自己以前看教程觉得linux打造DNS服务器就非常稳定,而且软件都是开源的,如果要部署域,为何不考虑centos+DNS+openldap的模式呢?
  下面就分享一下我2018年在自己电脑的虚拟机上模拟主辅DNS部署的情况,并且经测试,内网用这个DNS均能上网。

二、模拟环境

  台式机一台,当时配置为酷睿i5,16G内存,硬盘1T,并且已连网;
  Vmware workstation 11已安装,两台虚拟机网卡模式为桥接;
  台式机操作系统为win7,两台虚拟机操作系统为centos6.8

三、单主DNS部署

3.1 正向解析

在虚拟机主上安装所需软件
yum安装bind和bind-chroot和bind-util
bind-chroot软件可以使bind在一个chroot的模式下运行.也就是说,bind运行时的/(根)目录,并不是系统真正的/(根)目录,只是系统中的一个子目录而已.这样做的目的是为了提高安全性。
进入/etc目录下
查看
#ls named*

bind运行时会把/var/named/chroot当作根/,由上图我们可以看出现在的配置文件全部在真实的根下面,所以我们应该将这些以named打头的文件拷贝到/var/named/chroot底下。
#cp -a named* /var/named/chroot/etc
另外,dns会认为它的工作目录是/var/named,但是做了 chroot,所以它的实际工作目录应当是
/var/named/chroot/var/named;同理,我们也将/var/named的所有文件拷贝到/var/named/chroot/var/named底下去。
#cd /var/named
#ls
#cp -a data/ dynamic/ named* slaves/ chroot/var/named/
接下来
#cd etc
#vim named.conf
编辑配置文件:


保存。
再在/var/named底下新建这个叫hems.com.zone的文件,实际路径为/var/named/chroot/var/named,


编辑它:

修改hems.com.zone所属组为named,权限为640。

在防火墙里开放tcp53和udp53端口,启动named服务,提示要一个key,centos6上要运行个命令:
#rndc-confgen -r /dev/urandom -a
提示生成后,重启域名服务。
修改自己域名为127.0.0.1
#vim /etc/resolve.conf上面增加一行
namesevet    127.0.0.1
保存退出。
运行host -l  hems.com检查一下,好了。


3.2 反向解析

修改配置文件/var/named/chroot/etc/named.conf



就是加上一个zone,网段的倒写,41.168.192.in-addr.arpa
保存,在新建修改上面指定的hems.com.arpa

先删除里面所有的A记录;


保存,重启服务;
验证一下:
#host -l 41.168.192.in-addr.arpa
测试可以。

也可在最上面以加入变量批量生成
正向里:
$GENERATE  1-100 station$      A         192.168.41.$
反向里:
$GENERATE  1-100  $       PTR         station$.hems.com.
抓一下包:
#tcpdump -i eth0 port 53


四、主辅DNS
打开另一台虚拟机,装上bind,bind-util,bind-chroot,步骤同前面,配置name.conf


DNS的配置文件也要设置一下,不然会向所有的电脑发送辅dns认证


加上allow-transfer的一行,如上图所示。

注意:  要加上自己,不然自己就解析不到自己了!

重启两边域名服务。
slave这边也要生成一下key:
#rndc-confgen -r /dev/urandom -a
重启服务就学到主DNS的配置了。
可以把其他PC再加一个这个辅DNS,这样即使主dns宕机,其他所有电脑网络解析也不会有影响。
五、主辅DNS验证
如果有人再拿一台电脑配置和这台辅DNS一样的ip,那不是也能学习到这里面的数据了吗?

下面引入密钥加密:

DNS上使用命令生成密钥:
#dnssec-keygen -a HMAC-MD5 -b 128 -n HOST xx
生成密钥


DNS端named.conf加入配置:



密码从上面复制得来,allow-transfer后面加上key就更安全了,保存,重启域名服务。

注意:在这里也要加上自己的,allow transfer后面加上自己的ip,dns的三行也不用注释,密钥用双引号引用好一点。

再到辅DNS这边,先删除slaves底下的ss.zone和ss.arpa,再编辑它的named.conf的配置文件,加上key和密钥:

dns的三行也不用注释,secret的最好密钥用双引号引起来,不然有时候碰到怪异密码时会报错。
保存,重启域名服务。

注意:主辅服务器都要在网卡设置里加上这两个dns;主服务器里zone和反向zone里的序列号一定要大于从服务器的,可以回头手工修改一下。
如果想主服务器重启服务,辅服务器立马更新的话可以加入notify通知


还有,就是如果公司用这个自己设置的域名怎么能上外网呢?

在这里可以加入域转发功能,凡是不认识的都丢给电信的或网通的主dns来解析,这样就可以用我们私有的dns上外网了。
我们在主从服务器的named.conf全局设置里都加上这样的代码:


218.2.135.1是江苏电信的DNS。
六、总结
  DNS在linux下的部署大致是这样的,网上的教程可能有引起关键点没加进去,导致配置时候经常报错,记得我当时有试了几多次最后查了很多资料才弄好的。这是2018年弄的,一直保存在我的手机备忘录里,里面的不少图都是用手机拍的照片,可能有些不太清楚,大家可以在部署linux版DNS的时候做个借鉴吧。

打赏鼓励作者,期待更多好文!

打赏
47人已打赏

发表新帖
热门标签
全部标签>
西北区每日一问
技术盲盒
安全效果
每日一问
干货满满
【 社区to talk】
技术笔记
新版本体验
产品连连看
功能体验
技术咨询
GIF动图学习
2023技术争霸赛专题
每周精选
标准化排查
通用技术
信服课堂视频
秒懂零信任
自助服务平台操作指引
安装部署配置
排障笔记本
答题自测
原创分享
技术晨报
社区新周刊
POC测试案例
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
高手请过招
升级&主动服务
高频问题集锦
全能先锋系列
云化安全能力

本版达人

新手68983...

本周分享达人

零和一网络

本周提问达人