Czy rekord DNS z użyciem symboli wieloznacznych jest złą praktyką?

18

Poprosiłem hostera o dodanie trzech subdomen, z których wszystkie wskazują adres IP rekordu A. Wygląda na to, że po prostu dodał rekord DNS z symbolami wieloznacznymi, ponieważ każda losowa subdomena rozwiązuje się teraz z moim adresem IP. Jest to dla mnie OK z technicznego punktu widzenia, ponieważ nie ma żadnych poddomen wskazujących nigdzie indziej. Z drugiej strony nie lubię, żeby nie robił tego, o co prosiłem. Zastanawiam się więc, czy istnieją inne powody, aby mu to zmienić. Czy są jakieś?

Jedynym minusem, który znalazłem, jest to, że ktoś może link do mojej witryny przy użyciu http://i.dont.like.your.website.mywebsite.tld.

problemator
źródło
8
Ktoś może połączyć się z twoim serwerem za pomocą „ i.dont.like.your.website.mywebsite.tld ”, ale twój serwer nie powinien odpowiadać, chyba że jest skonfigurowany do odpowiadania na niego (przez nagłówki hostów lub wirtualne hosty).
joeqwerty
6
W niektórych przypadkach mogą być wymagane symbole wieloznaczne. Na przykład, webapps multi-tenant jak Wordpress mogą być skonfigurowane do automatycznego tarło nowych instancji używając subdomen - np site1.blog.example.com, site2.blog.example.com - z zamiennika w miejsce *.blog.example.com, don musisz skonfigurować każdy z nich osobno.
jscott

Odpowiedzi:

16

Jeśli kiedykolwiek umieścisz komputer w tej domenie, dostaniesz dziwne awarie DNS, w których gdy spróbujesz odwiedzić jakąś losową stronę w Internecie, zamiast tego dotrzesz do swojej.

Zastanów się: jesteś właścicielem domeny example.com. Skonfigurujesz stację roboczą i nadasz jej nazwę. ... powiedzmy Powiedzmy, yukon.example.com. Teraz zauważysz, /etc/resolv.confże ma linię:

search example.com

Jest to wygodne, ponieważ oznacza, że ​​możesz wyszukiwać nazwy hostów, np. wwwKtóre będą wyszukiwać www.example.comautomatycznie. Ma to jednak ciemną stronę: jeśli odwiedzisz, powiedzmy, Google, będzie szukał www.google.com.example.com, a jeśli masz wieloznaczny DNS, rozwiąże to twoją witrynę i zamiast dotrzeć do Google, skończysz na własnej stronie.

Dotyczy to w równym stopniu serwera, na którym prowadzisz swoją stronę internetową! Jeśli kiedykolwiek będzie musiał wywoływać usługi zewnętrzne, wówczas wyszukiwanie nazw hostów może zakończyć się niepowodzeniem w ten sam sposób. Tak api.twitter.comna przykład nagle staje api.twitter.com.example.comtrasy bezpośrednio do Twojej strony, no i oczywiście nie powiedzie się.

Dlatego nigdy nie używam wieloznacznego DNS.

Michael Hampton
źródło
3
@ChrisLively Obwiniaj nowoczesne systemy Linux za to, że są „pomocne” i dodają je. BTW, używanie „.local” jest naprawdę złą praktyką, i to nie tylko w środowisku Windows.
Michael Hampton
6
Napisałem o tym blog na temat środowiska Windows . Nie wspominając już o tym, że co najmniej trzy grupy licytują TLD. Teraz, gdy ICANN sprzedaje je każdemu, kto ma wystarczająco duży portfel. .localnie jest zarezerwowany i nie powinien być używany. Takie postępowanie narusza RFC i wcale nie jest konieczne. Najlepszą praktyką jest użycie delegowanej subdomeny trzeciego poziomu dla wewnętrznych zasobów, takich jak internal.company.com. Tylko dlatego, że często coś widzisz, nie robi to dobrze.
MD Marra
2
Czy możesz wskazać mi sekcję RFC 2606, która rezerwuje .local? Przeczytałem ten RFC co najmniej kilkanaście razy z ludźmi, którzy używają go w tym argumencie i mogę powiedzieć z całą pewnością, że go nie ma.
MD Marra
2
@Zypher Właściwie to nigdy nie było polecane przez Microsoft (to też zostało podważone w moim blogu. Przeczytaj go, to jest dobre), ale fakt, że SBS dostarczany przy użyciu .localdomyślnie naprawdę sprawiał, że MS wyglądało pod tym względem na bałagan. SBS został dostarczony z tą konfiguracją, ponieważ był przeznaczony dla klientów nietechnicznych o niskiej wiedzy technicznej. Była to ścieżka najmniejszego oporu, ale faktyczni doktorzy AD zalecają poddomenę trzeciego poziomu już w erze W2K.
MD Marra
3
Aha, a za kilka lat będzie bardzo trudno uzyskać certyfikaty dla .local, co oznacza, że certyfikaty UCC / SAN dla Lync / Exchange będą musiały być podpisane przez wewnętrzny urząd certyfikacji, co utrudnia, jeśli masz przyłączoną zewnętrzną domenę użytkownicy.
MD Marra
14

Czy rekord DNS z użyciem symboli wieloznacznych jest złą praktyką?

Osobiście nie lubię tego. Zwłaszcza gdy w tej domenie są maszyny. Literówki nie są zaznaczone, błędy są mniej oczywiste ... ale nie ma w tym nic zasadniczo złego.

Jedyny minus, jaki znalazłem, to to, że ktoś może linkować do mojej witryny za pomocą http: //i.dont.like.your.website.mywebsite.tld .

Niech Twój serwer HTTP przekieruje wszystkie takie żądania na właściwe, kanoniczne adresy lub w ogóle nie odpowie. Dla Nginx byłoby to coś takiego :

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

a potem zwykłe

server {
    listen  80;
    server_name mywebsite.tld;
    [...]
    }
Cholerny terminal
źródło
7

Wszystko zależy od opinii. Dla mnie nie jest to zła praktyka.

Tworzę aplikację dla wielu dzierżawców, która korzysta z bazy danych dla każdego dzierżawcy. Następnie wybiera bazę danych do użycia na podstawie poddomeny.

Na przykład milkman.example.comużyje tenant_milkmanbazy danych.

Tak mam oddzielone tabel dla każdego najemcy, jak, tenant_milkman.users, tenant_fisherman.users, tenant_bobs_garage.users, który moim zdaniem jest ogromny wiele łatwiej utrzymać dla tej konkretnej aplikacji, zamiast wszystkich użytkowników ze wszystkich firm w tej samej tabeli.

[edit - Michael Hampton has a good point]

Biorąc to pod uwagę, jeśli nie masz konkretnego powodu, aby zaakceptować dowolną (zmienną) subdomenę, tak jak ja, to nie powinieneś ich akceptować.

Pedro Moreira
źródło
4
Masz dobry techniczny powód, aby używać wieloznacznego DNS. Większość ludzi tego nie robi.
Michael Hampton
1
W rzeczywistości wydaje mi się to bardzo niebezpieczne - umożliwia dostęp do dowolnej bazy danych poprzez zmianę nazwy domeny. Twierdziłbym, że jest to rodzaj podatności na wstrzykiwanie. Trzeba przyznać, że niekoniecznie jest to możliwe do wykorzystania - ale po co ryzykować?
śleske,
1
@sleske Nie jest tak, ponieważ użytkownik musi się uwierzytelnić na podstawie tej subdomeny (dla tej bazy danych). Jeśli przełączy się, będzie musiał ponownie się uwierzytelnić, ponieważ jest to postrzegane jako zupełnie inna „strona”.
Pedro Moreira,
@PedroMoreira: Tak, to zmniejsza powierzchnię ataku. Zapewnienie dostępu do dowolnych baz danych wydaje się jednak niebezpieczne. Na przykład, jeśli istnieje zapasowa baza danych z identycznymi poświadczeniami, ale dane, które zostały usunięte z głównej bazy danych - pozwoliłoby to każdemu, kto zna nazwę. Mimo to zdaję sobie sprawę, że bezpieczeństwo jest zawsze kompromisem - chciałem tylko zwrócić uwagę na nieodłączne niebezpieczeństwo.
śleske,
1
@sleske Dlatego wszystkie dostępne bazy danych mają prefiks tenant_. Upewniłem się, że aplikacja nie może się nawet z nimi połączyć.
Pedro Moreira,
2

Kolejnym problemem jest SEO: jeśli wszystkie *.example.comprzedstawiają tę samą treść, twoja witryna będzie źle przywoływana, przynajmniej przez Google ( https://support.google.com/webmasters/answer/66359 ).

Clément Moulin - SimpleRezo
źródło
Oba punkty są ortogonalne. Nawet jeśli wszystkie nazwy wskazują ten sam adres IP, serwer internetowy otrzymuje żądaną nazwę i może dostarczać zupełnie inną treść.
Patrick Mevzek
Właśnie dlatego sprecyzowałem „jeśli wszystko * .example.com pokazuje tę samą treść” ... Ryzyko SEO brzmi dla mnie jako coś ciekawego do wspomnienia.
Clément Moulin - SimpleRezo
„Ryzyko SEO brzmi dla mnie jako coś ciekawego do wspomnienia.” Być może, ale są całkowicie niezwiązane z używaniem znaku wieloznacznego, czy nie. Możesz mieć wiele oddzielnych nazw, które są rozdzielane na jeden adres IP bez żadnych symboli wieloznacznych, a zatem wiążą się z ryzykiem SEO, o którym mówisz. Użycie symbolu wieloznacznego niczego tu nie zmienia w żadnym kierunku.
Patrick Mevzek
0

To naprawdę zły pomysł, załóżmy, że jeśli chcesz hostować jedną subdomenę a.firma.com na jednym serwerze WWW, a b.firma.com na innym serwerze WWW, może być innym usługodawcą internetowym. Co będziesz robić Tak więc DNS z symbolami wieloznacznymi nie jest opcją, powinien być precyzyjny, utwórz rekord A dla każdej subdomeny i wskazuje odpowiedni adres IP. Istnieją szanse na przeniesienie twojego serwera internetowego z jednego ISP na innego ISP, co w takim przypadku zrobisz?

vembutech
źródło
0

Wiem, że to stare pytanie, jednak chciałbym podzielić się z rzeczywistym przykładem tego, gdzie używanie symboli wieloznacznych może powodować problemy. Zamierzam jednak zmienić nazwę domeny, a także ukryć pełny rekord SPF, aby uniknąć wstydu.

Pomagałem komuś, kto miał problemy z DMARC, w ramach kontroli zawsze sprawdzam rekord DMARC z DIG

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

Ten sam wynik uzyskałem również, gdy szukałem ich rekordu DKIM.

W rezultacie wiadomości e-mail wysłane z tej domeny otrzymają błąd DKIM, ponieważ moduł DKIM spróbuje parsować rekord SPF dla klucza DKIM i zawiedzie, a także dostanie Permerror dla DMARC z tego samego powodu.

Domeny z symbolami wieloznacznymi mogą wydawać się dobrym pomysłem, ale skonfigurowane nieprawidłowo mogą powodować różnego rodzaju problemy.

Ravenstar68
źródło
-2

Czy rekord DNS z użyciem symboli wieloznacznych jest złą praktyką?

Nie i w przeciwieństwie do innych uważam, że jest to dobra praktyka.

Większość użytkowników Internetu w pewnym momencie dotyka nazwy DNS. Będą pisać ww.mycompany.comlub wwe.mycompany.com Co wolisz, aby „ups, nie mogliśmy znaleźć tej witryny” lub aby otworzyli twoją główną stronę główną? Zaleca się, aby częściej nie wyświetlać głównej strony głównej. To właśnie robi DUŻO ludzi.

Nawet jeśli ktoś umieści do i.dont.like.your.website.whatever.comniego link , nadal wyświetli twoją stronę główną, a właściwie tego właśnie chcesz. W końcu nie mogą zmusić tej i.dont....witryny do przejścia na ich serwer, nadal kontrolujesz routing DNS, więc trafia on na twój.

Nie ja
źródło
5
Problem, jaki mam z tym rozumowaniem, polega na tym, że 1. łamie obsługę błędów, 2. jest całkowicie www-centryczny, podczas gdy twoje rekordy wieloznaczne wpłyną również na inne protokoły. W wyniku tego zepsułeś obsługę błędów dla innych rzeczy, w których nie starałeś się ich załatać.
Håkan Lindqvist
-2

Myślę, że najlepszym powodem, aby nie mieć wieloznacznego rekordu DNS w pierwszej kolejności, jest uniknięcie przekazania adresu IP serwera potencjalnemu napastnikowi i ograniczenie narażenia na ataki DDOS. Jest to również zalecane przez Cloudflare: https://blog.cloudflare.com/ddos-prevention-protecting-the-origin/

Michael Rogers
źródło
2
Korzystanie z domen wieloznacznych nie zmienia narażenia na takie ataki. Link nie obsługuje Twoich nieprawidłowych roszczeń. Link mówi tylko, że Cloudflare pobiera wyższą cenę za domeny wieloznaczne. To mówi tylko o modelach biznesowych Cloudflare, a nic o praktyce korzystania z domen wieloznacznych.
kasperd
Jeśli używasz symboli wieloznacznych dns z cloudflare, ponieważ nie przechodzi przez cloudflare (chyba że płacisz za przedsiębiorstwo, większość tego nie robi), każdy może pingować dowolną skompilowaną subdomenę i znaleźć twoje prawdziwe IP. Bez symboli wieloznacznych nie mogą. to wszystko.
Michael Rogers,
Tak, w przypadku takiej usługi mogą naliczać dodatkowe opłaty za ochronę przy użyciu symboli wieloznacznych. Chociaż to pytanie nie dotyczy tego typu usług, dotyczy ono symboli wieloznacznych dns i tego, czy należy to zrobić w normalnych sytuacjach.
Chris