Является ли DNS-запись с подстановочными символами плохой практикой?

18

Я попросил своего хостера добавить три субдомена, все из которых указывают на IP записи A. Кажется, он просто добавил запись DNS с подстановочными знаками, потому что любой произвольный поддомен теперь разрешается в мой IP. Это нормально для меня с технической точки зрения, так как нет поддоменов, указывающих куда-либо еще. С другой стороны, мне не нравится, что он не делает то, что я просил. И поэтому мне интересно, есть ли другие причины, чтобы сказать ему, чтобы изменить это. Есть ли?

Единственный минус я нашел то , что кто - то может связать с помощью моего сайта http://i.dont.like.your.website.mywebsite.tld.

problemofficer
источник
8
Кто-то может подключиться к вашему серверу, используя « i.dont.like.your.website.mywebsite.tld », но ваш сервер не должен отвечать, если он не настроен на него (через заголовки хоста или виртуальные хосты).
Joeqwerty
6
В некоторых случаях подстановочные знаки могут потребоваться. Например, многопользовательский WebApps как Wordpress может быть настроен на автоматический нерест новых экземпляры с помощью поддоменов - например site1.blog.example.com, site2.blog.example.com - с групповым символом в месте для *.blog.example.com, вы не Не нужно настраивать каждый из них в отдельности.
Jscott

Ответы:

16

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

Подумайте: у вас есть домен example.com. Вы настраиваете свою рабочую станцию ​​и называете это. ... скажем , давайте, yukon.example.com. Теперь вы заметите, что в /etc/resolv.confнем есть строка:

search example.com

Это удобно, потому что это означает, что вы можете выполнять поиск по имени хоста, например, wwwкоторый будет www.example.comавтоматически искать вас. Но у него есть и темная сторона: если вы посещаете, скажем, Google, то он будет искать www.google.com.example.com, а если у вас будет подстановочный DNS, то он будет переходить на ваш сайт, и вместо того, чтобы обращаться к Google, вы попадете на свой собственный сайт.

Это в равной степени относится и к серверу, на котором вы используете свой веб-сайт! Если ему когда-либо придется вызывать внешние сервисы, то поиск имени хоста может завершиться таким же образом. Так, api.twitter.comнапример, вдруг становится api.twitter.com.example.com, маршруты прямо обратно на ваш сайт, и, конечно, не удается.

Вот почему я никогда не использую подстановочный DNS.

Майкл Хэмптон
источник
3
@ChrisLively Обвините современные системы Linux в том, что они «полезны» и добавили их. Кстати, использование «.local» действительно плохая практика, и не только в среде Windows.
Майкл Хэмптон
6
Я на самом деле писал об этом в отношении среды Windows . Не говоря уже о том, что по крайней мере три группы подали заявку на домен .local теперь, когда ICANN продает их кому-либо с достаточно солидным кошельком. .localне зарезервирован и не должен использоваться Это нарушает RFC и не является обязательным. Рекомендуется использовать делегированный поддомен третьего уровня для внутренних ресурсов, таких как internal.company.com. То, что вы часто видите что-то, не делает этого правильным.
MDMarra
2
Не могли бы вы указать мне на раздел RFC 2606, который резервирует .local? Я читал этот RFC как минимум дюжину раз с людьми, которые используют его в этом аргументе, и я могу с уверенностью сказать вам, что его там нет.
MDMarra
2
@Zypher На самом деле это никогда не было рекомендовано Microsoft (это тоже опровергнуто в моем блоге. Иди, прочти его, это хорошо), но тот факт, что SBS поставляется с использованием .localпо умолчанию, на самом деле делает MS похожей на беспорядок. SBS поставляется с этой конфигурацией, потому что она предназначена для нетехнических клиентов с низким уровнем технических знаний. Это был путь наименьшего сопротивления, но действительные доктора AD рекомендуют субдомен третьего уровня еще в эпоху W2K.
MDMarra
3
О, и через несколько лет будет очень трудно получить сертификаты для .local, что означает, что сертификаты UCC / SAN для Lync / Exchange должны будут подписываться внутренним центром сертификации, что усложняет работу при подключении к внешнему домену. пользователи.
MDMarra
14

Является ли DNS-запись с подстановочными символами плохой практикой?

Лично мне это не нравится. Особенно, когда в этом домене есть машины. Опечатки не проверяются, ошибки менее очевидны ... но в этом нет ничего принципиального.

Единственный минус, который я обнаружил, заключается в том, что кто-то может ссылаться на мой сайт, используя http: //i.dont.like.your.website.mywebsite.tld .

Пусть ваш http-сервер перенаправит все такие запросы на правильные, канонические адреса или вообще не отвечает. Для nginx это будет что-то вроде :

server {
    listen 80;
    server_name *.mywebsite.tld;
    return 301 $scheme://mywebsite.tld$request_uri;
    }

а затем регулярный

server {
    listen  80;
    server_name mywebsite.tld;
    [...]
    }
Чертов терминал
источник
7

Это все вопрос мнения. Для меня это не плохая практика.

Я создаю мультитенантное приложение, которое использует базу данных на каждого арендатора. Затем он выбирает базу данных, которая будет использоваться на основе субдомена.

Например milkman.example.comбудет использовать tenant_milkmanбазу данных.

Как это я отделил таблицы для каждого арендатора, как, tenant_milkman.users, tenant_fisherman.users, tenant_bobs_garage.users, на мой взгляд , является огромным намного легче поддерживать для этого конкретного приложения, вместо того , чтобы все пользователи из всех компаний в той же таблице.

[edit - Michael Hampton has a good point]

При этом, если у вас нет конкретной причины принять какой-либо (переменный) поддомен, как я, то вы не должны принимать их.

Педро Морейра
источник
4
У вас есть хорошая техническая причина для использования подстановочного DNS. Большинство людей этого не делают.
Майкл Хэмптон
1
На самом деле, это кажется мне очень опасным - он позволяет вам получить доступ к произвольной базе данных, изменив доменное имя. Я бы сказал, что это уязвимость типа инъекций. По общему признанию это не обязательно эксплуатируется - но зачем рисковать?
слеске
1
@sleske Это не так, потому что пользователь должен аутентифицироваться на этом поддомене (для этой базы данных). Если он переключится, ему нужно будет снова пройти аутентификацию, так как это рассматривается как совершенно другой «сайт».
Педро Морейра
@PedroMoreira: Да, это уменьшает поверхность атаки. Тем не менее предоставление доступа к произвольным базам данных кажется опасным. Например, что, если существует резервная база данных с идентичными учетными данными, но данные, которые были удалены из основной базы данных - это позволит любому, кто знает имя. Тем не менее, я понимаю, что безопасность - это всегда компромисс - просто хотел указать на неизбежную опасность.
слеске
1
@sleske Вот почему все доступные базы данных имеют префикс tenant_. Я убедился, что приложение не может даже подключиться к ним.
Педро Морейра
2

Другой проблемой здесь является SEO: если все они *.example.comпоказывают одинаковое содержание, на ваш сайт будут ссылаться плохо, по крайней мере, Google ( https://support.google.com/webmasters/answer/66359 ).

Клемент Мулен - SimpleRezo
источник
Обе точки ортогональны. Даже если все имена указывают на один и тот же IP-адрес, веб-сервер получает запрошенное имя и может доставлять совершенно другой контент.
Патрик Мевзек
Вот почему я уточнил, «если все * .example.com показывают одинаковый контент» ... Риск SEO звучит для меня чем-то интересным, чтобы упомянуть.
Клемент Мулен - SimpleRezo
«Риск SEO звучит для меня чем-то интересным, чтобы упомянуть». Возможно, но они совершенно не связаны с использованием подстановочных знаков или нет. У вас может быть много разных имен, все они разрешаются на один IP-адрес без каких-либо подстановочных знаков и, следовательно, имеют (или нет) риски SEO, о которых вы говорите. Использование подстановочного знака здесь ничего не меняет.
Патрик Мевзек
0

Это действительно плохая идея. Предположим, если вы хотите разместить один поддомен a.company.com на одном веб-сервере, а b.company.com на другом веб-сервере, возможно, другой поставщик услуг Интернета. Что ты будешь делать ?. Таким образом, DNS-символ подстановки не является вариантом, он должен быть точным, создать запись A для каждого поддомена и указать соответствующий IP-адрес. Есть шансы перенести ваш веб-сервер с одного провайдера на другого провайдера, в этом случае что вы будете делать?

vembutech
источник
0

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

Я помогал кому-то, у кого были проблемы с DMARC, в рамках проверок я всегда просматривал запись DMARC с помощью DIG

;; ANSWER SECTION:
_dmarc.somedomain.com. 21599 IN      CNAME   somedomain.com.
somedomain.com.      21599   IN      TXT     "v=spf1 <rest of spf record> -all"

Я также получил тот же результат, когда искал их запись DKIM.

Следовательно, электронные письма, отправленные с этого домена, получат сбой DKIM, так как модуль DKIM попытается выполнить синтаксический анализ записи SPF для ключа DKIM и произойдет сбой, а также получит Permerror для DMARC по той же причине.

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

Ravenstar68
источник
-2

Является ли DNS-запись с подстановочными символами плохой практикой?

Нет, и в отличие от других, я считаю, что это хорошая практика.

Большинство интернет-пользователей в какой-то момент тянут имя DNS. Они напишут ww.mycompany.comили wwe.mycompany.com Что бы вы предпочли «ооп, мы не смогли найти этот сайт» или чтобы они подняли вашу главную домашнюю страницу? Чаще всего предпочтительнее сделать так, чтобы они не открывали вашу главную домашнюю страницу. Это то, что делают много людей.

Даже если кто-то разместит ссылку на i.dont.like.your.website.whatever.comнее, она все равно откроет вашу домашнюю страницу, а это именно то, что вам нужно. В конце концов, они не могут заставить этот i.dont....сайт перейти на свой сервер, вы все еще контролируете маршрутизацию DNS, поэтому она переходит к вашему.

Не я
источник
5
Проблема, с которой я столкнулся, заключается в том, что: 1. это нарушает обработку ошибок, 2. оно полностью ориентировано на www, в то время как записи с подстановочными знаками влияют и на другие протоколы. В результате вы нарушили обработку ошибок для других вещей, где вы не приложили усилий, чтобы исправить ситуацию.
Хокан Линдквист
-2

Я думаю, что лучшая причина не иметь записи DNS с подстановочными символами, во-первых, состоит в том, чтобы избегать передачи IP-адреса вашего сервера потенциальному злоумышленнику и снизить вероятность DDOS-атак. Это также рекомендуется для настройки Cloudflare: https://blog.cloudflare.com/ddos-prevention-protecting-the-origin/

Майкл Роджерс
источник
2
Использование подстановочных доменов не меняет подверженность таким атакам. И ссылка не поддерживает ваши неправильные претензии. Все, что говорит эта ссылка, - это то, что Cloudflare взимается более высокая цена за домены с подстановочными знаками. Это говорит только о бизнес-моделях Cloudflare и ничего о практике использования доменных имен.
Касперд
Если вы используете подстановочный символ dns с cloudflare, так как он не проходит cloudflare (если вы не платите предприятию, большинство этого не делают), любой может пропинговать любой поддельный поддомен и найти ваш реальный IP. Без подстановочного знака они не могут. это все, что нужно сделать.
Майкл Роджерс
Да, в случае такой услуги они могут взимать с вас дополнительную плату за защиту с использованием подстановочных знаков. Хотя этот вопрос не об этих типах услуг, а о подстановочных знаках DNS и о том, следует ли это делать в обычных ситуациях.
Крис