Можно ли создать собственный корневой DNS-сервер?

14

Мне любопытно. Я продолжаю читать о том, как наши интернет-провайдеры и интернет-посредники записывают и отслеживают все DNS-запросы, оставляя следы хлебных крошек во многих журналах, а также разрешают перехват DNS в рекламных целях (я смотрю на вас, Cox Communications!).

Независимо от других методов обеспечения конфиденциальности / безопасности, я бы особенно хотел узнать, возможно ли запустить DNS-сервер в вашей локальной сети, _ который на самом деле содержит информацию о зоне корневых DNS-серверов (для .com, .net ,. org) домены.

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

Я надеюсь, что я в порядке. Я не хочу, чтобы на моем DNS-сервере была только информация о моей внутренней сети - я хочу, чтобы он имел дублирующую информацию, которую имеют большие интернет-DNS-серверы, но я хотел бы, чтобы эта информация была локально на моем DNS-сервере.

Есть ли что-то вроде переноса зоны BGP, но для DNS?

Обновление: Существуют ли какие-либо продукты / программное обеспечение OSS, которые могли бы в основном «втирать» эту информацию из внешней цепочки DNS в локальный кеш в больших количествах, чтобы они были готовы, когда они вам нужны, вместо кэширования, когда вы явно запрашиваете записи домена?

pythonnewbie
источник

Ответы:

12

DNS по своей структуре не позволяет иметь авторитетную копию всех зон, так как использует иерархическую систему имен.

Корневые серверы являются полномочными для идентификации сервера, ответственного за рассматриваемый домен верхнего уровня (TLD). Например, разрешение www.example.netбудет сначала запросить корневой сервер, чтобы определить, для какого доверенного сервера имен .net. Сервер .netимен идентифицирует полномочный сервер имен example.net, который затем возвращает запись для www.example.net.

Вы не можете скачать копию всех зон. Однако вы можете запустить локальный кеширующий сервер имен. Кэширующий сервер имен предоставит локальную копию всех разрешенных записей, срок действия которых истекает с использованием времени жизни (TTL), указанного для записи. Пожалуйста, имейте в виду, что мое объяснение - это упрощенное описание протокола DNS, которое можно подробно изучить, прочитав определения в Запросе на комментарии .

Несмотря на то, что NXDOMAIN можно избежать, запустив локальный кеш, имейте в виду, что весь трафик с разрешением DNS будет по-прежнему передаваться через ваше интернет-соединение в незашифрованном виде. Ваш Интернет-провайдер может потенциально отслеживать этот трафик и по-прежнему видеть связь. Контракты, которые вы заключили с вашим Интернет-провайдером, а также ваши местные законы, станут вашим основным средством определения того, как к вашим сообщениям относятся. Контракты вашего Интернет-провайдера будут включать Условия обслуживания, Политики конфиденциальности и любые дополнительные контракты, которые вы можете заключить с вашим Интернет-провайдером.

Использование зашифрованных протоколов является одним из лучших способов защиты ваших данных от прослушивания во время транзита. Однако даже это не гарантирует анонимности. Существуют дополнительные протоколы, такие как Tor и Freenet , которые пытаются ввести анонимность в Интернет, так как он никогда не создавался по-настоящему анонимным.

сигнализатор
источник
1
Простой ответ - нет, вы не можете. Технический ответ выше в ответе Уорнера. Не существует одного набора серверов, которые содержат всю информацию DNS. Корневые серверы просто ссылаются на один из серверов TLD, который направляет запрос дальше по линии.
Рекс
1
Некоторые интернет-провайдеры предоставляют возможность отключить захват NXDOMAIN. Некоторые интернет-провайдеры предоставляют (глупый и фальшивый) механизм, основанный на файлах cookie, для «отключения» захвата NXDOMAIN. Есть также альтернативные серверы имен, которые можно использовать вместо сервера имен вашего провайдера.
Брайан
3

Несколько вещей:

Если вы сконфигурируете свой сервер для использования корневых ссылок вместо использования серверов пересылки, вам не придется беспокоиться о проблемах MITM (по крайней мере, от угонщиков ISP и DNS). Для всех внешних разрешений DNS ваш сервер будет запрашивать корневые подсказки, которые будут направлять вас на серверы рДВУ для рассматриваемого домена верхнего уровня (.com и т. Д.), Который затем будет направлять вас на серверы NS для рассматриваемого домена. ,

Если вы действительно хотите создать свой собственный корневой сервер, вы, конечно же, можете, хотя я не понимаю, как это будет вам полезно. Вот как вы делаете это на DNS-сервере Windows:

Загрузите файл корневой зоны DNS и сохраните его как root.dns в каталоге% systemroot% \ system32 \ dns на DNS-сервере Windows, используйте мастер создания зоны DNS, чтобы создать новую первичную зону прямого просмотра с именем "." (без кавычек), отмените выбор опции для создания интегрированной зоны AD, введите «.» для имени зоны (без кавычек) выберите опцию использования существующего файла, и поле имени файла зоны будет автоматически заполнено именем root.dns (если оно не введено), оставьте опцию не чтобы разрешить динамическое обновление как есть, нажмите кнопку «Готово» после того, как вы пройдете каждый шаг мастера. Теперь у вас есть корневой сервер с зонами и записями зон для всех серверов рДВУ.

Обратите внимание, что это отключит параметры переадресации и корневых ссылок на сервере (поскольку ваш сервер теперь является корневым сервером), а также заметит, что если информация о gTLD изменится, ваш сервер не сможет получить уведомление об этих изменениях.

joeqwerty
источник
Ничто не мешает Интернет-провайдеру захватить IP-адрес корневых серверов (кроме DNSsec) ... Кроме этого, исправьте.
Крис С
1

Для тесно связанных серверов существуют зонные передачи. Эти функции очень похожи на объявления BGP. По соображениям безопасности они обычно блокируются для других серверов.

Если вы запустите кеширующий сервер имен, он скопирует список корневых серверов и очень скоро получит корни для .com, .net и т. Д. Существует очень веская причина для распространения DNS. В противном случае все будут работать с устаревшими данными. Размер базы данных будет достаточно большим, и большинство данных вас не интересует.

Существуют варианты снижения риска отравления DNS, и хорошее программное обеспечение решает проблемы по мере их появления. Есть организации, которые занимаются предоставлением очищенных данных, которые могут быть использованы в качестве вышестоящих поставщиков. Это отфильтрует некоторые попытки отравления. Посмотрите на использование OpenDNS или Google в качестве вышестоящих провайдеров.

Корневые зоны DNS теперь подписаны, и я все чаще вижу, как мой почтовый сервер сообщает, что данные DNS были подписаны. Подписание DNS было сообщено как требование для IPV6. Подписанный DNS делает отравление кэша очень трудным, но увеличивает сложность управления DNS.

BillThor
источник
1

Вы, конечно, можете настроить свой собственный сервер и сделать его авторизованным для root, но я не знаю, как вы можете предварительно заполнить его зонными файлами корневых серверов. Вы не можете просто запросить zonetransfer, поэтому я думаю, вам придется заполнить его, сохранив свои кеши.

Измените root.hints на других ваших серверах имен, чтобы они указывали на ваш частный корневой сервер, и дайте возможность начать тестирование.

Но имейте в виду, что корневые серверы знают только то, какие серверы являются полномочными для ДВУ, и ничего больше. По сути, вам нужно будет воссоздать всю иерархию серверов, что кажется невыполнимой задачей.

Мартейн Хеемельс
источник
0

Да, одной из особенностей DNS-серверов является локальное кэширование часто запрашиваемых запросов, слишком часто в обход указанного ttl.

Вы, конечно, можете запустить свой собственный DNS, нет проблем. Но о корневых серверах и доменных серверах верхнего уровня вам придется спросить у дяди Сэма.

Регистрация всех DNS-запросов возможна, но была бы безумной.


источник
Но использование кеша подразумевает, что вам уже пришлось отправлять DNS-запрос для рассматриваемого домена, что сводит на нет всю цель попытки полностью (или в основном) только локальных DNS-запросов.
pythonnewbie