새 도메인을 등록 할 때 registar 설정에서 도메인 이름 서버를 할당하여 호스팅 공급자에게 보냅니다. 예를 들어, Digital Ocean을 사용하여 다음을 입력했습니다.
ns1.digitalocean.com
ns2.digitalocean.com
ns3.digitalocean.com
그런 다음 서버의 A 레코드에 도메인 설정을 추가합니다. 동일한 호스팅 제공 업체의 다른 사람이 내가 소유 한 도메인으로 A 레코드를 추가 할 수 있다는 것이 저에게 일어났습니다.
이것이 발생하는 것을 막는 것이 있습니까? 동일한 도메인 이름 서버를 사용하는 두 개의 다른 서버가 A 레코드를 통해 도메인을 자신에게 할당하려고하면 브라우저에서 도메인을 입력 할 때 도메인이 실제로 해결되는 위치는 무엇입니까? 동일한 DNS 서버에서 도메인 이름 충돌을 방지하는 것은 무엇입니까?
답변
아래 주석 섹션을 신경 쓰지 말고 편집 기록의 이전 답변을 신경 쓰지 마십시오. 약 1 시간 동안 친구들과 대화를하고 (@joeQwerty, @Iain, @JourneymanGeek에게 감사함), 약간의 해킹으로 인해 귀하의 질문과 상황이 모두 바닥에 도달했습니다. 처음에는 멍청하고 상황을 완전히 이해하지 못해서 죄송합니다.
프로세스를 단계별로 살펴 보겠습니다.
wesleyisaderp.com
NameCheap.com에서 구매 한다고 가정하겠습니다.- 등록 기관인 Namecheap은 NS 레코드를 채우는 곳입니다. 실제로 Digital Ocean에서 DNS 영역을 호스팅한다고 가정 해 봅시다.
- 반짝이는 새 도메인의 NS 레코드를
ns1.digitalocean.com
및을 가리 킵니다ns2.digitalocean.com
. - 그러나 도메인을 등록했음을 확인하고 NS 레코드를 Digital Ocean ‘s (으)로 변경했다고 가정 해 보겠습니다 . 그런 다음 Digital Ocean 계정으로 이겼고 wesleyisaderp.com 영역을 내 계정에 추가했습니다.
- * your * 계정에 영역을 추가하려고하는데 Digital Ocean은 해당 영역이 시스템에 이미 존재한다고 말합니다. 아뇨!
- 에 CNAME
wesleyisaderp.com
합니다wesleyisbetterthanyou.com
. - 성대가 계속됩니다.
일부 친구와 나는 방금이 정확한 시나리오를 연주했으며, 그렇습니다. @JoeQwerty가 도메인을 구매하여 Digital Ocean 네임 서버를 가리 키지 만 해당 영역이 이미 내 계정에 추가 된 경우 영역 마스터가되어 원하는대로 할 수 있습니다.
그러나 누군가 먼저 영역을 자신의 DNS 계정에 추가해야하고, 악의적 인 일이 발생하기 위해서는 NS 레코드를 동일한 호스트의 이름 서버로 지정해야합니다. 또한 도메인 소유자는 언제든지 NS 레코드를 전환하고 해상도를 불량 영역 호스트에서 멀리 이동할 수 있습니다.
이런 일이 일어날 가능성은 가장 적습니다. 통계적으로, 당신은 52 장의 덱을 섞어서 다른 사람은 얻지 못했고 다른 사람은하지 않을 것을 주문할 수 있다고합니다. 나는 같은 추론이 여기에 있다고 생각합니다. 누군가이 취약점을 악용 할 가능성은 매우 낮으며 더 빠른 지름길이있어 우연히 일어날 수는 없습니다.
또한 레지스트라에서 도메인을 소유하고 있고 누군가가 Digital Ocean과 같은 공급 업체에서 충돌하는 영역을 만든 경우 소유권 증명을 제공하는지 확실하게 알 수 있습니다. 도메인 이름 소유자가 아니기 때문에 계정에서 존을 제거 할 이유가 없으므로 계정에서 존을 삭제하십시오.
그러나 A 레코드는 어떻습니까
예를 들어 Digital Ocean과 같이 영역을 설정 한 첫 번째 사람이 해당 영역을 제어하는 사람이됩니다. 동일한 DNS 인프라에 동일한 영역을 여러 개 가질 수 없습니다. 예를 들어, 위의 어리석은 이름을 사용하여 wesleyisaderp.com을 Digital Ocean의 영역으로 사용하는 경우 Digital Ocean의 DNS 인프라에있는 다른 누구도 자신의 계정에 추가 할 수 없습니다.
재미있는 부분은 다음과 같습니다. 실제로 wesleyisaderp.com을 Digital Ocean 계정에 추가했습니다! 계속해서 당신의 것으로 추가하십시오. 아무것도 아프지 않을 것입니다.
결과적으로 wesleyisaderp.com에 A 레코드를 추가 할 수 없습니다. 다 내 꺼야
하지만 …
@Iain이 아래에서 지적했듯이 위의 4 번 지점은 실제로 너무 장황합니다. 기다릴 필요가 없습니다. 난 그냥 할 수 수천 계정의 영역을 다음 앉아서 기다립니다. 엄밀히 말하면 수천 개의 도메인을 만든 다음 등록 될 때까지 기다렸다가 영역을 설정 한 DNS 호스트를 사용하기를 원한다면 … 아마도? 그러나 아마 아닐까요?
Digital Ocean 및 NameCheap에 대한 사과
Digital Ocean과 NameCheap은 고유하지 않으며이 시나리오와 관련이 없습니다. 이것은 정상적인 동작입니다. 그들은 모든면에서 흠이 없습니다. 나는 그것이 주어진 예이기 때문에 방금 그것들을 사용했으며 그들은 매우 잘 알려진 브랜드입니다.
답변
웨슬리의 훌륭한 답변 외에도 이미 이것을 예방할 수있는 해결책이 있다고 덧붙이고 싶습니다. 이것을 DNSSEC라고합니다.
기본 사항은 다음과 같습니다.
- 도메인을 등록하셨습니다 (
wesleyisaderp.com
여기서 저명한 이름으로 하겠습니다). - 일반적으로 사용자 이름 / 암호 콤보로 인증하는 웹 인터페이스를 통해 등록자에 이름 서버를 등록합니다.
- 또한 공개 / 개인 키 쌍을 생성하고 공개 키를 DNSKEY 레코드 형식으로 등록자에 업로드합니다. (레지스트라가 최상위 도메인의 루트 서버 (이 경우 루트 서버)에 대한 신뢰 체인을 설정하는 방법입니다
.com
.) 다시, 자신의 사용자 이름 / 암호로 로그인 할 때이를 업로드합니다. 콤보로 다른 사람이 아닌 도메인에 연결되어 있습니다. - 네임 서버로 가서 레코드를 입력하고 개인 영역 키로 결과 영역 파일에 서명합니다. 또는 DNS 호스팅 서비스에 대한 웹 인터페이스가있는 경우 개인 키를 업로드하여 영역 파일에 서명 할 수 있습니다.
- Wesley가 무례하게 도메인과 CNAME을 도용하려고 시도 할 때
wesleyisbetterthanyou.com
올바른 레코드로 서명되지 않았기 때문에 .com 루트 도메인 서버는 자신의 레코드를 수락하지 않습니다. DNS 호스팅 제공 업체가 영리한 경우, 바로 확인하여 올바른 개인 키를 얻지 않는 한 해당 도메인에 레코드를 추가 할 수 없습니다. - 자신의 기록을 입력하면 올바른 키로 서명되어 작동합니다.
- 이제 앉아서 웨슬리를 비웃을 수 있습니다.
(원래의 경우 웨슬리가 묘사 한 주요 오류는 Digital Ocean이 누군가가 도메인에 대한 DNS 레코드를 설정하기 전에 도메인 소유권을 확인하지 않았다는 것입니다. 같은 문제를 가진 스웨덴 등록 기관 중 최소 하나 이상)
답변
등록 기관에 이름 서버를 사용하도록 지시하기 전에 DigitalOcean에서 도메인 소유권을 주장하는 한 (즉, 계정과 도메인을 연결하는 한) 괜찮습니다.
누군가 귀하의 도메인을 자신의 계정과 이미 연결했다면 DigitalOcean 네임 서버가 권한을 갖기 전에 알게 될 것입니다. 그런 경우, DigitalOcean에 연락하여 해당 사람이 자신의 계정에서 부팅되도록하십시오.
모범 사례에 따라 {ns1, ns2, ns3} .DigitalOcean.com은 다른 곳에서 호스팅되는 도메인에 대한 재귀 해결 자로 작동하지 않습니다. 그렇게하고 DigitalOcean이 호스팅하는 서버가 해당 서버를 범용 리졸버로 사용하면 훨씬 더 큰 문제가 발생합니다. 이것이 나쁜 습관으로 잘 알려져 있기 때문에, 잘못 이해 한 호스팅 제공 업체를 찾는 것은 그리 어렵지 않으며, 이는 학대 가능성을 열어줍니다.
답변
이 문제는 누구나 기존 도메인의 이름 서버를 만들 수 있기 때문에 아무도 그러한 이름 서버 (예 : Digital Ocean 등)를 확인 자로 사용해서는 안된다고 생각합니다. 도메인 소유권을 쉽게 입증 할 수 있기 때문에 도메인 제어를위한 전투는 무의미하지만, 누군가가 이미 Digital Ocean에 호스팅되지 않은 기존 도메인을 원하는 곳으로 보낼 수 있다는 사실과 관련이 있습니다.
결론 : 도메인 소유권 증명이 필요하지 않은 호스팅 서비스의 DNS 서버를 신뢰하지 마십시오 (예를 들어 위에서 제안한 방법으로 쉽고 빠르게 수행 됨 : 먼저 도메인에 특정 값을 가진 TXT 레코드 추가) 예를 들어 Microsoft O365와 Google이하는 일입니다.