localhost у зоні DNS


15

Наш Інтернет-провайдер також розміщує зовнішній DNS. За замовчуванням вони включають запис для localhost.

Наприклад: localhost.example.com. 86400 В А 127.0.0.1

Коли я попросив їх зняти це, мені важко сказати і сказати, що Bind працює саме так.

Я намагався провести кілька досліджень, чому я, можливо, хочу, щоб це було включено, але я не міг знайти багато. Я знайшов принаймні одне місце, яке вважав можливим вектором нападу XSS. Це здається досить поширеним, тому я робив пошук у топ-20 доменів веб-сайтів від alexa, і у більшості немає такого запису, але пара. Кілька інших мають запис, але замість того, щоб вказати на 127.0.0.1, вони вказують на іншу світову IP-адресу з можливістю маршруту.

Так чи інакше, навіщо мені хотіти, щоб у зоні для мого домену був локахост? Чи є у них якісь проблеми, якщо їх немає? Чи існує якась найкраща практика щодо цього? Це справді Bind речі, про які я не знаю?

Спасибі


Гарне питання. Я ніколи про це не чув.
TomTom

У моєму файлі зони провайдерів є навіть "петля". WTF?
Девід Тонхофер

Відповіді:


13

localhost.example.comіноді включається на внутрішні сервери DNS для запобігання проникненню запитів "localhost" до Інтернету (для випадку, коли Джон Сміт вводить http://localhost/у своєму браузері і з будь-якої причини його резолютор не шукає у файлі хостів, додає свій шлях пошуку ( example.com) & починає запитувати сервери імен, для чого це вирішено).

Вам не потрібно мати запис localhost (і якщо ваш Інтернет-провайдер вважає, що це "спосіб BIND", вони або помилково, або ідіоти: BIND обслуговує те, що знаходиться в файлі зони, і якщо вони видалять localhostрядок, він перестане обслуговувати це запис). Як безкоштовний приклад, localhost.google.comце не вирішує, і я ставлю на облік NS для цього домену, який працює BIND.

Вектор XSS - це те, про що я ніколи не думав, але це викликає занепокоєння: наявність localhostзапису у вашому загальнодоступному DNS означає, що будь-яка зламана машина може бути "у вашому домені" (запустивши веб-сервер на 127.0.0.1) і потенційно це зробити всілякі неприємні речі. Напевно, досить вагомий привід позбутися вступу.


1
Особисто я б подумав, що localhost.some.testце лише ще одна жертва не отримати належного крапкового завершення. Міркування про наявність localhost.(зверніть увагу на крапку!) Зрозуміле, але про крапки часто забувають у зонах DNS. Тоді воно зародилося, щоб мати своє таємниче життя.
poige

Див. Tools.ietf.org/html/rfc1537 Поширені помилки конфігурації файлів даних DNS, які підказують, що запис localhost правильний.
BillThor

1
Ні, rfc1537 цього не вказує. Він вказує, що рекурсорам потрібно мати локальний хост. зона та реверс. Ніде не сказано, що ваші зони потребують входу в локальний хост.
Habbie

@BillThor Коментар до цієї іншої відповіді стосується RFC 1537 та його спадкоємця (RFC 1912) - Оскільки Хаббі згадував, про зону localhost. - це те, що ми маємо мати, але практика localhost записів у кожній зоні, яку ми обслуговуємо, випала. прихильності. (Це питання насправді приводить мене до того, що RFC кроляча яма 5 років тому, можливо, я
оновлю

3

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

Однією з причин того, що хтось зробив би це, що я можу придумати голову, - це те, якщо хтось колись використовував інструмент веб-авторів, який вивернувся з великою кількістю абсолютних посилань на http: // localhost , але це передбачає, що ваш Інтернет-провайдер також розміщував свої DNS-скриньки, і це дуже довго.

Однак, RFC 1537 робить вказати:

Проводилась широка дискусія щодо того, додавати до нього локальний домен чи ні. Висновок був такий, що "localhost". було б найкращим рішенням; Наведені причини:

  • Сам "localhost" використовується і, як очікується, працює в деяких системах.

  • переклад 127.0.0.1 на "localhost.my_domain" може призвести до того, що деяке програмне забезпечення підключиться до себе за допомогою інтерфейсу зворотного зв'язку, коли цього не захочеться.

Зауважте, що всі домени, що містять хости, повинні мати запис "localhost".

Тож суворо кажучи, схоже, що ваш Інтернет-провайдер правильно вказати localhost, але неправильно використовувати повноцінне ім'я.


5
Схоже, RFC-1537 був застарілий RFC-1912, який видаляє Note that ...мову (я б здогадувався у відповідь на потенційні проблеми XSS, про які ми б почали усвідомлювати в 1996 році.) 1537 Пояснює, чому це в шаблонах BIND.
voretaq7

ви маєте на увазі, що в зоні для example.com: localhost має бути такий запис. 86400 В А 127.0.0.1; відзначте період
матвій

3
4.1 з 1912 року насправді досить чітко про це: ietf.org/rfc/rfc1912.txt
Максим Мінімус

5 років, але варто уточнити: 4.1 RFC 1912 явно означає, що localhost зона повинна існувати на сервері (тому, якщо він отримує запит просто "localhost", він не передає його по ланцюгу на наступний сервер), це далеко від в тому числі localhost, скажімо , example.comзону «s (створення localhost.example.com), що він однаково чітко сказано , ви повинні НЕ робити з - за можливих ненавмисних побічних ефектів. Очікуємо, що "localhost" сам по собі є особливим, магічним, повністю кваліфікованим доменом.
voretaq7

0

Я не впевнений, у чому суть ... За замовчуванням зовнішня адреса буде перекрито файлом хостів, який майже завжди відображає localhost до 127.0.0.1.

Файл зони BIND за замовчуванням не містить зони localhost. Ніколи по-справжньому не думав про це.


Це не зона локального розміщення (за винятком випадків, коли це неправильна конфігурація цієї зони). Це також не fqdn "localhost". і, як правило, не буде перекрито локальним файлом хостів.
matthew
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.