AWS:Route53 Private Hosted Zones — 对 Internet 隐藏域

525 阅读3分钟

AWS Route53中的私有托管区允许限制对域名的DNS记录的访问,从而使DNS枚举(或DNS暴力)无法访问,当攻击者检查域名中的可用记录,以了解端点列表,检查它们的漏洞。

对于这种攻击,有很多实用工具,如DNSEnumDNSReconFierce,甚至是著名的Nmap与 dns-brute脚本。

使用私有域区背后的想法是,它们可以从AWS账户中有限的一组VPC内部到达,但它们不能从互联网上访问。

AWS VPC DNS

首先,让我们检查一下DNS在AWS VPC中是如何工作的:在每个VPC中,我们有一个地址*.0_.1 -它是其网关,另一个地址是*.0.2- 它_是一个VPC的默认DNS。

例如,我们有一个VPC,其CIDR为10.0.6.0/24。因此,对于这个VPC,我们可以通过10.0.6.2来获取一个域的信息。

admin@bttrm-stage-console:~$ dig @10.0.6.2 ya.ru +short

87.250.250.242

这是AWS VPC中服务的默认DNS,尽管它可以为你自己配置。

在我们的案例中,我们有dnsmasq ,运行在我们的一些旧服务器上,应用程序首先会尝试从它那里获得信息,然后才会去找VPC的DNS。

admin@bttrm-stage-console:~$ cat /etc/resolv.conf

域 us-east-2.compute.internal

搜索 us-east-2.compute.internal

命名服务器127.0.0.1

命名服务器 10.0.6.2

命名服务器1.1.1.1

DNS:установка BIND,DNS负载平衡和基于网络的路由через视图,以及DNS:dnsmasq и порядок разрешения домён из resolv.conf帖子(都在Rus),或在文档--在VPC和你的网络之间解决DNS查询中看到更多。

请记住,要使VPC中的DNS工作,这个VPC必须启用选项enableDnsHostnamesenableDnsSupport 。另外,对于Route 53健康检查和路由策略也有一些限制。更多信息请见使用私有托管区时的注意事项。

AWS Route53私有托管区

现在,当我们知道AWS VPC中的DNS是如何工作的,让我们来创建一个私有DNS区域。

转到Route53,创建一个新的区域,将其类型设置为_私有托管区_。

下面,你会看到新的选项,可以选择AWS区域和其中的VPC,从那里可以访问这个DNS区域。

现在,当该区域被创建后,在其中添加一些记录。

例如,让我们添加一条记录,它将指向我们的一个暂存服务器 - app1.stage.mobilebackend.bm.local。

并检查它是否对位于这个VPC中的另一个Staging服务器可用。

admin@bttrm-stage-console:~$ dig app1.stage.mobilebackend.bm.local +short

10.0.6.68

或者通过使用 dnstracer实用程序。

admin@bttrm-stage-console:~$ dnstracer app1.stage.mobilebackend.bm.local

通过10.0.6.2追踪到app1.stage.mobilebackend.bm.local[a],最多重试3次

10.0.6.2 (10.0.6.2) 得到答复

我们从10.0.6.2--VPC的DNS服务器得到了响应,正如预期的那样。

现在,尝试从办公室到达该区域。

15:06:02 [setevoy@setevoy-arch-work ~] $ dig app1.stage.mobilebackend.bm.local

; <<>> DiG 9.16.18 <<>> app1.stage.mobilebackend.bm.local

;; 全局选项: +cmd

;; 得到答案。

;; 警告:.local是为多播DNS保留的。

;; 你目前正在测试当mDNS查询被泄露给DNS时会发生什么

;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 27027

;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; opt pseudosection:

EDNS:版本:0,标志:;udp:512

;;问题部分。

;app1.stage.mobilebackend.bm.local. IN A

而世界对这个DNS区域一无所知。

顺便说一下,有可能将同一个DNS区域创建为公共和私人的,即所谓的 "分割视图DNS"。请看我如何使用Route 53来访问我的网站的内部版本,使用与我的公共网站相同的域名?分视点DNS

完成了。

类似的帖子

The postAWS:Route53 Private Hosted Zones - hiding domains from Internetfirst appeared onRTFM: Linux, DevOps, and system administration.