Bind DNS服务——带KEY的区域传送与子域授权
Linux基础服务——Bind DNS服务 Part3
带KEY的区域传送与子域授权
带KEY的区域传送
上文提到了区域传送,但实际上在区域传送的时,传送的区域文件并不会被加密。因此一般的区域传送并不安全,黑客可以捕获数据包并篡改区域传送的内容,使得dns解析异常。
我们可以使用KEY来加密区域数据进行传送,防止数据被篡改。(如下图,WireShark抓包,在主DNS响应从DNS的IXFR的数据包中得到了区域信息)
那么Bind9使用TSIG(Transaction SIGnatures)来实现对DNS事务的加密签名。Bind9提供了tsig-keygen命令行工具生成密钥。
[root@dns1 ~]# tsig-keygen test.com-key //该命令输出的内容应添加到named.conf文件中,此处仅是单纯输出到屏幕
key "test.com-key" { //key后接密钥名定义了tsig的密钥,algorithm定义算法,secret为密文
algorithm hmac-sha256;
secret "sQjKG2BJZuQrKHghrKyCZrtjkTIaJ5tEygkxDIs7a0g=";
};
将重新生成密钥并保存至文件,然后在named.conf文件中包含该文件来将密钥引入主配置文件中。
[root@dns1 ~]# cd /var/named/
[root@dns1 named]# mkdir zone-key
[root@dns1 named]# tsig-keygen test.com-key >> zone-key/test.com.key
include "/var/named/zone-key/test.com.key"; //将该行添加至named.conf文末
修改test.com区域定义为如下内容:
zone "test.com" IN {
type master;
file "test.com.zones";
allow-transfer { key test.com.key; }; //只有拥有该把密钥的服务器才能进行传送。
};
接下来修改test.com区域文件,增加Serial触发区域传输并查看日志结果。(添加条目并将Serial变大即可,略)
Jun 08 08:26:42 dns2 named[2044]: client @0x7fb83c0bf880 192.168.100.50#48500: received notify for zone 'test.com'
Jun 08 08:26:42 dns2 named[2044]: zone test.com/IN: notify from 192.168.100.50#48500: serial 4
Jun 08 08:26:42 dns2 named[2044]: zone test.com/IN: Transfer started.
Jun 08 08:26:42 dns2 named[2044]: transfer of 'test.com/IN' from 192.168.100.50#53: connected using 192.168.100.60#52515
Jun 08 08:26:42 dns2 named[2044]: transfer of 'test.com/IN' from 192.168.100.50#53: resetting
Jun 08 08:26:42 dns2 named[2044]: transfer of 'test.com/IN' from 192.168.100.50#53: connected using 192.168.100.60#57649
Jun 08 08:26:42 dns2 named[2044]: transfer of 'test.com/IN' from 192.168.100.50#53: failed while receiving responses: REFUSED //可见区域传送被拒绝了
Jun 08 08:26:42 dns2 named[2044]: transfer of 'test.com/IN' from 192.168.100.50#53: Transfer status: REFUSED
Jun 08 08:26:42 dns2 named[2044]: transfer of 'test.com/IN' from 192.168.100.50#53: Transfer completed: 0 messages, 0 records, 0 bytes, 0.001 secs (0 bytes/sec)
那么接下来我们在从DNS服务器上创建相应目录,并传输密钥到从服务器上引入再次进行尝试。
[root@dns2 ~]# cd /var/named/
[root@dns2 named]# mkdir zone-key
[root@dns2 named]# scp dns.test.com:/var/named/zone-key/* zone-key/
root@dns.test.com's password:
test.com.key 100% 104 111.3KB/s 00:00
[root@dns2 named]# vim /etc/named.conf
zone "test.com" IN { //修改区域定义配置
type slave;
file "slaves/test.com.zone";
masters { 192.168.100.50 key test.com-key; }; //使用test.com-key密钥进行传输
};
include "/var/named/zone-key/test.com.key"; //将该行添加至named.conf文末
配置完成后再次进行尝试。
Jun 08 08:40:25 dns2 named[2128]: client @0x7fc4b00bf880 192.168.100.50#43731: received notify for zone 'test.com'
Jun 08 08:40:25 dns2 named[2128]: zone test.com/IN: notify from 192.168.100.50#43731: serial 4
Jun 08 08:40:25 dns2 named[2128]: zone test.com/IN: Transfer started.
Jun 08 08:40:25 dns2 named[2128]: transfer of 'test.com/IN' from 192.168.100.50#53: connected using 192.168.100.60#53415 TSIG test.com-key
Jun 08 08:40:25 dns2 named[2128]: zone test.com/IN: transferred serial 4: TSIG 'test.com-key'
Jun 08 08:40:25 dns2 named[2128]: transfer of 'test.com/IN' from 192.168.100.50#53: Transfer status: success
Jun 08 08:40:25 dns2 named[2128]: transfer of 'test.com/IN' from 192.168.100.50#53: Transfer completed: 1 messages, 11 records, 360 bytes, 0.001 secs (360000 bytes/sec)
Jun 08 08:40:25 dns2 named[2128]: zone test.com/IN: sending notifies (serial 4)
可见成功使用TSIG密钥对区域传送进行签名。
子域授权
对于test.com 我们可以有一个子域为ms.test.com,我们可以将子域授权给另一个服务器进行解析。具体的DNS查询流程如下图。
下面开始配置,首先在test.com区域文件中指定ms.test.com域交由哪个服务器进行解析。(使用NS记录进行指定)
@ IN SOA dns.test.com. admin.test.com. (
4 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns
NS dns2
ms NS dns2 //添加这一行,ms后会自动添加$ORIGIN,那么完整记录也就是ms.test.com. NS dns2.test.com.
Linux A 192.168.200.30
tomcat A 192.168.100.90
dns2 A 192.168.100.60 //需要对子域服务器进行解析。
dns A 192.168.100.50
www A 192.168.100.20
web.test.com. A 192.168.100.10
以上内容配置完毕后重启服务,然后对DNS2服务器进行配置。添加ms.test.com的区域定义并编写区域配置文件
//添加如下内容到named.conf
zone "ms.test.com" IN {
type master;
file "ms.test.com.zones";
};
//编写区域文件
$TTL 1D
@ IN SOA dns2.test.com. admin.test.com. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns2.test.com.
dns2 A 192.168.100.60
www A 192.168.200.10
web A 192.168.200.20
配置完毕后重新启动服务。进行测试。
PS C:\Users\77653> nslookup - 192.168.100.50
默认服务器: dns.test.com
Address: 192.168.100.50
> www.ms.test.com
服务器: dns.test.com
Address: 192.168.100.50
非权威应答:
名称: www.ms.test.com
Address: 192.168.200.10
可以看到,主DNS服务器并不负责ms.test.com这个区域的解析,但我们还是得到了结果。
通过抓包可以看到具体的DNS的查询过程。
Bind DNS服务——带KEY的区域传送与子域授权的更多相关文章
- DNS区域传送、子域授权
前言 DNS服务器搭建参考上一篇: DNS主从复制,就是将主DNS服务器的解析库复制传送至从DNS服务器,进而从服务器就可以进行正向.反向解析了.从服务器向主服务器更新查询数据,保证数据一致性,此为区 ...
- Bind DNS服务——转发与区域记录更新
Linux基础服务--Bind DNS服务 Part4 转发与区域记录更新 一个DNS服务器不可能保存所有的区域记录,所以我们一般都会将其他的区域纪录转发到其他的服务器上进行解析. Bind9提供了全 ...
- Linux基础服务——Bind DNS服务 Part2
Linux基础服务--Bind DNS服务 Part2 DNS反向解析与区域传送 实验环境延续Part1的实验环境. 反向区域配置 正向解析是域名到IP地址的映射,反向解析则是IP地址到域名的解析,在 ...
- Bind DNS服务——基础知识
Linux基础--Bind DNS服务 Part0 DNS简介 域名系统(英语:Domain Name System,缩写:DNS)是互联网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库 ...
- Linux基础服务——Bind DNS服务 Part1
Linux基础服务--Bind DNS服务 Part1 DNS正向解析 实验环境: CentOS8.3.2011 IP地址:192.168.100.50 VMware虚拟环境 NAT网段 需要解析的区 ...
- linux服务基础之DNS正反向解析、主从同步、子域授权及视图
关键词: 正向解析 反向解析 主从复制 自域授权 视图 一.DNS基本原理 1.1 什么是DNS?BIND又是什么? DNS:Domain Name Service,它是一个基于应用层的协议,是C/S ...
- <转>DNS服务系列之二:DNS区域传送漏洞的安全案例
DNS区域传送(DNS zone transfer)指的是一台备用服务器使用来自主服务器的数据刷新自己的域(zone)数据库.这为运行中的DNS服务提供了一定的冗余度,其目的是为了防止主的域名服务器因 ...
- DNS区域传送漏洞的安全案例
DNS区域传送(DNS zone transfer)指的是一台备用服务器使用来自主服务器的数据刷新自己的域(zone)数据库.这为运行中的DNS服务提供了一定的冗余度,其目的是为了防止主的域名服务 ...
- DNS区域传送漏洞实验以及二级域名爆破
DNS区域传送漏洞实验以及二级域名爆破 目录: 1.DNS服务器的域传送漏洞(nslookup交互式.非交互式.批处理三种方式) 2.写个二级域名爆破脚本 一.DNS服务器的域传送漏洞 实验环境: 服 ...
- DNS服务初步搭建
一.准备DNS服务环境 选择 bind dns服务软件包 直接yum安装 bind 和 bind-utils 工具包,测试机器安装bind-utils测试工具包. 服务程序名为 named 二.配置D ...
随机推荐
- k8s安全---安全机制之RBAC授权(14)
一.k8s 安全管理:认证.授权.准入控制概述 k8s 对我们整个系统的认证,授权,访问控制做了精密的设置:对于 k8s 集群来说,apiserver 是整 个集群访问控制的唯一入口,我们在 k8s ...
- spring-boot集成Quartz-job存储方式二RAM
简单区分: RAM:程序启动从数据库中读取原始job配置(也可以从配置文件中读取),job中间运行过程在RAM内存中,程序停止或重启后,RAM中数据丢失,再次启动的时候会重新读取job配置.适合于单机 ...
- 2D空间中比较两三角形相交与包含
在处理UV重叠.CPU的ZFighting检测时会遇到2D空间中的三角形相交问题, 网上普遍是3D空间的相交解法,因此写本文研究下,不过虽然实现了需求, 但用的方法比较暴力. 效果如图: (鼠标拖动区 ...
- 【译】使用 GitHub Copilot 作为你的编码 GPS
GitHub Copilot 是一个改变游戏规则的人工智能助手,可以彻底改变您在 Visual Studio 中的编码流程.在我们的视频系列中,Bruno Capuano 探讨了这个智能编码伙伴如何 ...
- hashMap添加key重复时返回值的形式
hashMap添加key重复 System.out.println(map.put(1, 0)); // null System.out.println(map.put(1, 1)); // 0 Sy ...
- CSS动画-数字轮盘滚动效果实现(组件封装,快速使用)
效果图: 原理分析:这玩意就和垂直方向的轮播图差不多,只是把轮播的图换成数字 主要实现:父组件:父组件接收一个curNum属性,这个属性代表当前需要显示的数字.它将这个数字传递给子组件AnimateN ...
- kubernetes 之网络(canal)
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/ 所有节点重设 ...
- linux 文件扩展权限ACL(访问控制列表)
目录 一.关于文件扩展权限ACL 二.给文件加扩展权限 三.给目录加扩展权限 四.给目录下所有文件都加扩展权限 五.去掉单个acl权限 六.去掉所有acl权限 一.关于文件扩展权限ACL 在linux ...
- vue4 项目的创建
1,安装vue cli 脚手架,是全局安装npm install -g @vue/cli 可以在输出信息中看到安装位置,例如:C:\Users\xiaochangjian\AppData\Roamin ...
- SuperSocket AppServer.NewRequestReceived 不触发 接受不到字节
SuperSocket AppServer.NewRequestReceived 不触发 接受不到字节 针对.netframework版本 1.6.* 使用 FixedHeaderReceiveFil ...