AWS: Route53 프라이빗 호스팅 영역 — 인터넷에서 도메인 숨기기

6275 단어 securitydnsaws

AWS: Route53 프라이빗 호스팅 영역 — 인터넷에서 도메인 숨기기





AWS Route53의 Private Hosted Zone은 도메인의 DNS 레코드에 대한 액세스를 제한할 수 있으므로 공격자가 확인할 엔드포인트 목록을 알기 위해 도메인에서 사용 가능한 레코드를 확인할 때 DNS Enumeration(또는 DNS 무차별 공격)이 액세스할 수 없도록 합니다. 취약점에 대해.

이러한 공격에는 DNSEnum , DNSRecon , Fierce 또는 dns-brute 스크립트가 있는 잘 알려진 Nmap과 같은 많은 유틸리티가 있습니다.

프라이빗 도메인 영역을 사용하는 기본 개념은 AWS 계정의 제한된 VPC 세트 내부에서만 접근할 수 있지만 인터넷에서는 접근할 수 없다는 것입니다.

AWS VPC DNS



먼저 DNS가 AWS VPC에서 어떻게 작동하는지 확인하겠습니다. 각 VPC에는 주소 *.0.1 — 이 게이트웨이이고 다른 주소는 *.0.2 — VPC의 기본 DNS입니다.

예를 들어 CIDR이 10.0.6.0/24인 VPC가 있습니다. 따라서 이 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
domain us-east-2.compute.internal
search us-east-2.compute.internal
nameserver 127.0.0.1
nameserver 10.0.6.2
nameserver 1.1.1.1


자세한 내용은 DNS: установка BIND, DNS Load Balancing и network-based routing через viewDNS: dnsmasq и порядок разрешения домён из resolv.conf 게시물(둘 다 Rus에 있음) 또는 — Resolving DNS queries between VPCs and your network 문서를 참조하십시오.

VPC에서 DNS가 작동하도록 하려면 이 VPC에 enableDnsHostnamesenableDnsSupport 옵션이 활성화되어 있어야 합니다. 또한 Route 53 상태 확인 및 라우팅 정책에 대한 몇 가지 제한 사항이 있습니다. 자세한 내용은 Considerations when working with a private hosted zone을 참조하십시오.

AWS Route53 프라이빗 호스팅 영역



이제 AWS VPC의 DNS가 어떻게 작동하는지 알았으면 프라이빗 DNS 영역을 생성해 보겠습니다.

Route53으로 이동하여 새 영역을 생성하고 해당 유형을 프라이빗 호스팅 영역으로 설정합니다.



아래에는 이 DNS 영역에 액세스할 수 있는 AWS 리전 및 VPC를 선택하는 데 사용할 수 있는 새로운 옵션이 표시됩니다.



이제 영역이 생성되면 거기에 몇 가지 레코드를 추가합니다.



예를 들어 준비 서버 중 하나인 app1.stage.mobilebackend.bm.local을 가리키는 레코드를 추가해 보겠습니다.



그리고 이 VPC에 있는 다른 스테이징 서버에서 사용할 수 있는지 확인합니다.

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.localTracing to app1.stage.mobilebackend.bm.local[a] via 10.0.6.2, maximum of 3 retries
10.0.6.2 (10.0.6.2) Got answer


그리고 예상대로 VPC DNS 서버인 10.0.6.2 에서 응답을 받았습니다.

이제 사무실에서 구역에 도달해 보십시오.

15:06:02 [setevoy@setevoy-arch-work ~] $ dig app1.stage.mobilebackend.bm.local
; <<>> DiG 9.16.18 <<>> app1.stage.mobilebackend.bm.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 27027
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;app1.stage.mobilebackend.bm.local. IN A


그리고 세상은 이 DNS 영역에 대해 아무것도 모르고 있습니다.

그건 그렇고, 소위 "분할 보기 DNS"라고 하는 공개 및 비공개로 생성된 동일한 DNS 영역을 가질 수 있습니다. How can I use Route 53 to access an internal version of my website using the same domain name as my public website? è Split-view DNS 참조.

완료.

RTFM: Linux, DevOps, and system administration에 원래 게시되었습니다.

좋은 웹페이지 즐겨찾기