Назад | Перейти на главную страницу

Может ли кто-нибудь, использующий тот же DNS-сервер, что и я, захватить мои домены?

Когда я регистрирую новый домен, я отправляю его своему хостинг-провайдеру, назначая ему серверы доменных имен в настройках регистратора. Например, в Digital Ocean я ввожу следующее:

ns1.digitalocean.com
ns2.digitalocean.com
ns3.digitalocean.com

Затем я добавляю настройки домена в A-запись моего сервера. Мне только что пришло в голову, что любой другой на том же хостинг-провайдере может добавить A-запись с моим доменом.

Есть ли что-нибудь, что предотвращает это? если два разных сервера, которые используют один и тот же сервер доменных имен, попытаются назначить себе домен через записи A, где домен фактически разрешится, когда вы введете его в браузере? что предотвращает конфликты доменных имен на одном DNS-сервере?

Не обращайте внимания на раздел комментариев ниже и не обращайте внимания на предыдущие ответы в истории редактирования. Примерно через час разговора с друзьями (спасибо @joeQwerty, @Iain и @JourneymanGeek) и некоторого веселого хакерства, мы разобрались как в вашем вопросе, так и в ситуации в целом. Прошу прощения за резкость и непонимание ситуации полностью.

Давайте пройдемся по процессу:

  1. Ты покупаешь wesleyisaderp.com на, скажем, NameCheap.com.
  2. Namecheap в качестве вашего регистратора будет там, где вы заполняете свои записи NS. Допустим, вы действительно хотите разместить зону DNS в Digital Ocean.
  3. Вы указываете NS-записи своего блестящего нового домена на ns1.digitalocean.com и ns2.digitalocean.com.
  4. Однако, допустим, я смог определить, что вы зарегистрировали этот домен, и, кроме того, вы изменили свои записи NS на записи Digital Ocean. Затем я опередил вас до учетной записи Digital Ocean и добавил зону wesleyisaderp.com к себе.
  5. Вы пытаетесь добавить зону в *ваш* но Digital Ocean сообщает, что зона уже существует в их системе! О нет!
  6. Я CNAME wesleyisaderp.com к wesleyisbetterthanyou.com.
  7. Веселье следует.

Мы с друзьями разыграли именно этот сценарий, и да, он работает. Если @JoeQwerty покупает домен и указывает его на серверы имен Digital Ocean, но эта зона уже добавлена ​​в мою учетную запись, то я являюсь хозяином зоны и могу делать с ней все, что хочу.

Однако учтите, что кому-то придется сначала добавить зону в свою учетную запись DNS, а затем вам нужно будет указать свои записи NS на серверы имен того же хоста, чтобы произошло что-то гнусное. Кроме того, как владелец домена, вы можете переключать NS-записи в любое время и перемещать разрешение подальше от хоста плохой зоны.

Вероятность этого, мягко говоря, невелика. Говорят, что, по статистике, вы можете перетасовать колоду из 52 игральных карт и получить приказ, который никогда не получал ни один человек, и ни один другой человек никогда не сможет. Думаю, здесь есть те же рассуждения. Вероятность того, что кто-то воспользуется этим, настолько мала, и существуют более короткие пути, что это, вероятно, не произойдет в дикой природе случайно.

Кроме того, если у вас есть домен у регистратора, и кто-то случайно создал зону на провайдере, таком как Digital Ocean, с которым вы столкнетесь, я уверен, что если вы предоставите доказательство права собственности, они спросят человека, который сделал zone в своей учетной записи, чтобы удалить его, поскольку для его существования нет причин, поскольку они не являются владельцем доменного имени.

Но как насчет записей A

Первый, у кого будет зона, например Digital Ocean, будет ее контролировать. Вы не можете иметь несколько идентичных зон в одной инфраструктуре DNS. Так, например, используя глупые имена выше, если у меня есть wesleyisaderp.com в качестве зоны в Digital Ocean, никто другой в инфраструктуре DNS Digital Ocean не может добавить его в свою учетную запись.

Вот что самое интересное: я действительно добавил wesleyisaderp.com в свою учетную запись Digital Ocean! Продолжайте и попробуйте добавить его в свой. Ничего не повредит.

В результате вы не можете добавить запись A на wesleyisaderp.com. Это все мое.

Но что насчет...

Как отметил @Iain ниже, мой пункт 4 выше на самом деле слишком многословен. Мне вообще не нужно ждать, строить планы или схемы. Я могу просто сделать тысячи зон в учетной записи, а затем расслабьтесь и ждите. Технически. Если я создам тысячи доменов, а затем подожду, пока они зарегистрируются, а затем надеюсь, что они будут использовать хосты DNS, на которых я установил свои зоны ... может быть, я смогу сделать что-нибудь плохое? Может быть? Но, наверное, нет?

Извинения перед Digital Ocean и NameCheap

Обратите внимание, что Digital Ocean и NameCheap не уникальны и не имеют ничего общего с этим сценарием. Это нормальное поведение. Они безупречны по всем направлениям. Я просто использовал их, потому что это был приведенный пример, а это очень известные бренды.

В дополнение к отличному ответу Уэсли я хотел бы добавить, что уже есть решение, чтобы предотвратить это. Это называется DNSSEC.

Основы таковы:

  • Вы регистрируете свой домен (я пойду с именитым именем wesleyisaderp.com здесь, просто потому.)
  • Вы регистрируете свои серверы имен у своего регистратора, обычно через веб-интерфейс, в котором вы аутентифицируетесь с помощью комбинации имени пользователя и пароля.
  • Вы также создаете пару открытого / закрытого ключей и загружаете свой открытый ключ в регистратор в виде записи DNSKEY. (Таким образом регистратор может настроить цепочку доверия к корневым серверам для домена верхнего уровня - в данном случае корневые серверы для .com.) Опять же, вы загружаете это, когда вы вошли в систему со своим собственным именем пользователя и паролем, так что он связан с вашим доменом (ами), а не с чужим.
  • Вы переходите на сервер имен, вводите свои записи и подписываете получившийся файл зоны своим закрытым ключом. Или, если у вас есть веб-интерфейс для службы хостинга DNS, вы загружаете им закрытый ключ, чтобы они могли подписать для них файл зоны.
  • Когда Уэсли так грубо пытается захватить ваш домен и записать его в 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).