Чи можливо створити власний кореневий DNS-сервер?


14

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

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

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

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

Чи є щось на зразок переказів зони BGP, але не для DNS?

Оновлення: Чи є якісь продукти / програмне забезпечення для OSS, які в основному можуть "зішкрібати" цю інформацію із зовнішнього ланцюжка DNS у локальний кеш у великих кількостях, щоб вони були готові, коли вам знадобляться, а не кешувати їх, коли ви явно вимагаєте записів домену?

Відповіді:


12

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

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

Ви не можете завантажити копію всіх зон. Однак ви можете запустити локальний сервер кешування імен. Сервер кешування імен надасть локальну копію всіх вирішених записів, термін дії яких закінчується, використовуючи час запису (TTL), вказаний для запису. Будь ласка, майте на увазі, що моє пояснення - це спрощений опис протоколу DNS, який можна детально вивчити, прочитавши визначення у запиті на запит коментарів .

Хоча викрадення NXDOMAIN можна уникнути, запустивши локальний кеш, пам’ятайте, що весь трафік роздільної здатності DNS все одно буде передаватися через Інтернет-з'єднання незашифрованим. Ваш Інтернет-провайдер може потенційно контролювати цей трафік і все ще бачити зв’язок. Договори, які ви маєте з провайдером послуг, а також місцеві закони стануть вашим остаточним засобом для встановлення способів поводження з вашими комунікаціями. Договори вашого провайдера включатимуть Умови надання послуг, Політику конфіденційності та будь-які додаткові договори, які у вас можуть бути з вашим Інтернет-провайдером.

Використання зашифрованих протоколів - один з найкращих методів страхування ваших даних від підслуховування під час транзиту. Однак навіть це не гарантує анонімності. Існують додаткові протоколи, такі як Tor та Freenet , які намагаються ввести анонімність в Інтернеті, оскільки він ніколи не був розроблений як справді анонімний.


1
Проста відповідь - ні, ви не можете. Технічна відповідь наведена вище у відповіді Warner. Немає жодного набору серверів, який містить всю інформацію про DNS. Кореневі сервери просто посилаються на один із серверів TLD, який подає запит далі вниз.
Рекс

1
Деякі провайдери пропонують спосіб вимкнення викрадення NXDOMAIN. Деякі провайдери пропонують (дурний і підроблений) механізм на основі файлів cookie, щоб "вимкнути" викрадення NXDOMAIN. Існують також альтернативні сервери імен, які можна використовувати замість сервера імен вашого провайдера.
Брайан

3

Кілька речей:

Якщо ви налаштовуєте свій сервер на використання кореневих підказок замість використання форвардерів, вам не доведеться турбуватися про проблеми з MITM (принаймні, через викрадачів провайдерів і DNS). Для всіх зовнішніх дозволів DNS ваш сервер запитає кореневі підказки, які б посилали вас на сервери gTLD для домену верхнього рівня, про який йдеться (.com тощо), який би потім пересилав вас до серверів NS для відповідного домену. .

Якщо ви дійсно хочете створити свій власний кореневий сервер, ви, звичайно, можете, хоча я не бачу, як це зробило б вам багато користі. Ось як це зробити на сервері DNS Windows:

Завантажте файл кореневої зони DNS та збережіть його як root.dns у каталозі% systemroot% \ system32 \ dns на вашому сервері DNS Windows, використовуйте майстра створення зони DNS для створення нової первинної зони пошуку вперед з назвою "." (без лапок) зніміть позначку з опції створення інтегрованої зони AD, введіть ". для назви зони (без лапок) виберіть опцію використовувати наявний файл, і поле імені файлу зони автоматично заповниться ім'ям root.dns (якщо воно не введене), залиште опцію не дозволити динамічне оновлення таким, яким воно є, натисніть кнопку фінішу після перемикання кожного кроку майстра. Тепер у вас є кореневий сервер із зонами та записами зон для всіх серверів gTLD.

Зауважте, що це дозволить вимкнути параметри переадресації та кореневих підказок на сервері (оскільки ваш сервер тепер є кореневим сервером), а також зауважте, що якщо інформація gTLD зміниться, то ваш сервер не зможе отримати повідомлення про ці зміни.


Ніщо не заважає провайдеру захоплювати IP кореневих серверів (крім DNSsec) ... Крім цього, виправте.
Chris S

1

Для тісно пов'язаних серверів є зональні передачі. Вони дуже схожі на оголошення BGP. З міркувань безпеки вони зазвичай блокуються для інших серверів.

Якщо ви запустите сервер імен кешування, він скопіює список кореневих серверів і дуже скоро матиме корені для .com, .net тощо. Існує дуже вагома причина, що DNS поширюється. Інакше всі працювали б із застарілими даними. Розмір бази даних був би досить великий, і більшість даних вас не цікавлять.

Є варіанти зменшити ризик отруєння DNS, і гарне програмне забезпечення вирішує проблеми, коли вони стають відомими. Є організації, які працюють над наданням санітарних даних, які можуть бути використані в якості постачальників вище. Вони відфільтрують деякі спроби отруєння. Подивіться на використання OpenDNS або google в якості постачальників вище.

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


1

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

Змініть root.hints на інших своїх серверах імен, щоб вказати їх на ваш приватний кореневий сервер, і нехай розпочнеться тестування.

Але майте на увазі, що кореневі сервери знають лише, які сервери є авторитетними для TLD, нічого іншого. По суті, вам потрібно буде відтворити всю ієрархію серверів, що здається неможливим завданням.


0

Так, однією з особливостей серверів DNS є локальне кешування часто запитуваних запитів, занадто часто минаючи вказаний ttl.

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

Реєстрація всіх запитів dns можлива, але це було б шалено.


Але, покладаючись на кеш, означає, що вам вже довелося надсилати запит DNS для відповідного домену, що перемагає всю мету спроби мати повністю (або в основному) локальні запити DNS.
pythonnewbie

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.