Apakah catatan wildcard DNS praktik buruk?

18

Saya meminta hoster saya untuk menambahkan tiga subdomain yang semuanya menunjuk ke IP dari catatan A. Tampaknya ia hanya menambahkan catatan DNS wildcard karena subdomain acak apa pun yang menyelesaikan IP saya sekarang. Ini tidak masalah bagi saya dari sudut pandang teknis, karena tidak ada subdomain yang menunjuk ke tempat lain. Kemudian lagi saya tidak suka dia tidak melakukan apa yang saya minta. Jadi saya bertanya-tanya apakah ada alasan lain untuk menyuruhnya mengubahnya. Apakah ada?

Satu-satunya negatif yang saya temukan adalah seseorang dapat menautkan ke situs saya menggunakan http://i.dont.like.your.website.mywebsite.tld.

pembuat masalah
sumber
8
Seseorang dapat menautkan ke server Anda menggunakan " i.dont.like.your.website.mywebsite.tld " Anda tetapi server Anda tidak boleh merespons kecuali itu dikonfigurasi untuk merespons (melalui hosthead atau virtualhosts).
joeqwerty
6
Dalam beberapa kasus, wildcard dapat diminta. Misalnya, webapp multi-tenant seperti Wordpress dapat dikonfigurasi untuk secara otomatis menelurkan instance baru menggunakan sub-domain - misalnya site1.blog.example.com, site2.blog.example.com - dengan wildcard yang ada *.blog.example.com, Anda tidak perlu perlu mengkonfigurasi masing-masing secara individual.
jscott

Jawaban:

16

Jika Anda pernah meletakkan komputer di domain itu, Anda akan mendapatkan kegagalan DNS yang aneh, di mana ketika Anda mencoba untuk mengunjungi beberapa situs acak di Internet, Anda tiba di milik Anda.

Pertimbangkan: Anda memiliki domain example.com. Anda mengatur workstation Anda dan beri nama. ... katakanlah yukon.example.com,. Sekarang Anda akan melihat di /etc/resolv.confdalamnya ada baris:

search example.com

Ini nyaman karena itu berarti Anda dapat melakukan pencarian nama host, misalnya wwwyang kemudian akan mencari Anda www.example.comsecara otomatis. Tetapi memiliki sisi gelap: Jika Anda mengunjungi, katakanlah, Google, maka ia akan mencari www.google.com.example.com, dan jika Anda memiliki DNS wildcard, maka itu akan menyelesaikan ke situs Anda, dan alih-alih mencapai Google Anda akan berakhir di situs Anda sendiri.

Ini berlaku sama untuk server tempat Anda menjalankan situs web Anda! Jika harus memanggil layanan eksternal, maka pencarian nama host dapat gagal dengan cara yang sama. Jadi api.twitter.commisalnya tiba-tiba menjadi api.twitter.com.example.com, rute langsung kembali ke situs Anda, dan tentu saja gagal.

Inilah sebabnya saya tidak pernah menggunakan wildcard DNS.

Michael Hampton
sumber
3
@ChrisLively Menyalahkan sistem Linux modern karena "membantu" dan menambahkannya. BTW, menggunakan ". Lokal" benar-benar praktik yang buruk, dan tidak hanya di lingkungan Windows.
Michael Hampton
6
Saya benar-benar membuat blog tentang hal ini sehubungan dengan lingkungan Windows . Belum lagi bahwa setidaknya tiga kelompok memiliki tawaran pada TLD lokal. Sekarang ICANN menjualnya kepada siapa pun dengan dompet yang cukup substansial. .localtidak dicadangkan dan tidak boleh digunakan. Melakukan hal itu melanggar RFC dan sama sekali tidak perlu. Praktik terbaik adalah menggunakan subdomain tingkat ketiga yang didelegasikan untuk sumber daya internal seperti internal.company.com. Hanya karena Anda melihat sesuatu yang banyak tidak membuatnya benar.
MDMarra
2
Bisakah Anda mengarahkan saya ke bagian RFC 2606 yang cadangan .local? Saya telah membaca RFC ini setidaknya selusin kali dengan orang-orang yang menggunakannya dalam argumen ini dan saya dapat memberi tahu Anda dengan pasti bahwa itu tidak ada di sana.
MDMarra
2
@ Zypher Ini sebenarnya tidak pernah direkomendasikan oleh Microsoft (yang menghilangkan prasangka dalam posting blog saya juga. Pergi membacanya, itu bagus), tetapi fakta bahwa SBS dikirim menggunakan .localsecara default benar-benar membuat MS terlihat seperti kekacauan dalam hal itu. SBS dikirimkan dengan konfigurasi itu karena ditujukan untuk pelanggan non-teknologi dengan pengetahuan teknis rendah. Itu adalah jalan yang paling tidak resistansi, tetapi dokumen AD yang sebenarnya merekomendasikan subdomain tingkat ketiga di era W2K.
MDMarra
3
Oh, dan dalam beberapa tahun akan sangat sulit untuk mendapatkan sertifikat untuk .local yang berarti sertifikat UCC / SAN untuk Lync / Exchange harus ditandatangani oleh CA internal, membuatnya menyakitkan jika Anda bergabung dengan non-domain eksternal pengguna.
MDMarra
14

Apakah catatan wildcard DNS praktik buruk?

Secara pribadi, saya tidak suka itu. Terutama ketika ada mesin di domain itu. Kesalahan ketik tidak dicentang, kesalahannya tidak terlalu jelas ... tetapi pada dasarnya tidak ada yang salah.

Satu-satunya negatif yang saya temukan adalah seseorang dapat menautkan ke situs saya menggunakan http: //i.dont.like.your.website.mywebsite.tld .

Minta server http Anda mengarahkan semua permintaan seperti itu ke alamat kanonik yang benar, atau tidak merespons sama sekali. Untuk nginx akan seperti :

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

dan kemudian reguler

server {
    listen  80;
    server_name mywebsite.tld;
    [...]
    }
Terminal Sial
sumber
7

Itu semua masalah pendapat. Bagi saya itu bukan praktik yang buruk.

Saya membuat aplikasi multi-penyewa yang menggunakan basis data per penyewa. Itu kemudian memilih database yang akan digunakan berdasarkan subdomain.

Misalnya milkman.example.comakan menggunakan tenant_milkmandatabase.

Seperti ini saya telah memisahkan tabel untuk setiap penyewa, seperti, tenant_milkman.users, tenant_fisherman.users, tenant_bobs_garage.users, yang menurut saya adalah banyak besar lebih mudah untuk mempertahankan untuk aplikasi tertentu, bukan memiliki semua pengguna dari seluruh perusahaan di meja yang sama.

[edit - Michael Hampton has a good point]

Yang sedang berkata, jika Anda tidak memiliki alasan khusus untuk menerima subdomain (variabel), seperti yang saya lakukan, maka Anda tidak boleh menerimanya.

Pedro Moreira
sumber
4
Anda memiliki alasan teknis yang bagus untuk menggunakan wildcard DNS. Kebanyakan orang tidak.
Michael Hampton
1
Sebenarnya, ini sangat berbahaya bagi saya - ini memungkinkan Anda untuk mengakses database sewenang-wenang dengan mengubah nama domain. Saya berpendapat bahwa ini adalah jenis kerentanan injeksi. Memang itu tidak harus dieksploitasi - tetapi mengapa mengambil risiko?
sleske
1
@sleske Bukan, karena pengguna harus mengautentikasi terhadap subdomain itu (untuk database itu). Jika dia berganti, dia perlu mengautentikasi lagi, karena ini dilihat sebagai "situs" yang sama sekali berbeda.
Pedro Moreira
@PedroMoreira: Ya, itu mengurangi permukaan serangan. Namun, menyediakan akses ke basis data yang sewenang-wenang tampaknya berbahaya. Misalnya, bagaimana jika ada database cadangan dengan kredensial identik, tetapi data yang dihapus dari db utama - ini akan memungkinkan siapa pun mengakses siapa yang tahu nama itu. Meski demikian, saya menyadari keamanan selalu merupakan tradeoff - hanya ingin menunjukkan bahaya yang melekat.
sleske
1
@sleske Itulah sebabnya semua database yang dapat diakses diawali dengan tenant_. Saya memastikan aplikasi bahkan tidak dapat terhubung ke mereka.
Pedro Moreira
2

Masalah lain di sini adalah SEO: jika semua *.example.commenampilkan konten yang sama, situs web Anda akan dirujuk dengan buruk, setidaknya oleh Google ( https://support.google.com/webmasters/answer/66359 ).

Clément Moulin - SimpleRezo
sumber
Kedua poin itu ortogonal. Bahkan jika semua nama menunjuk ke IP yang sama, server web mendapatkan nama yang diminta dan dapat memberikan konten yang sama sekali berbeda.
Patrick Mevzek
Itu sebabnya saya mendahului "jika semua * .example.com menunjukkan konten yang sama" ... Risiko SEO terdengar bagi saya untuk sesuatu yang menarik untuk disebutkan.
Clément Moulin - SimpleRezo
"Risiko SEO terdengar bagi saya untuk sesuatu yang menarik untuk disebutkan." Mungkin tetapi mereka sama sekali tidak terkait dengan menggunakan wildcard atau tidak. Anda dapat memiliki banyak nama terpisah yang semuanya diselesaikan menjadi satu alamat IP tanpa jenis wildcard dan karenanya memiliki (atau tidak) risiko SEO yang Anda bicarakan. Penggunaan wildcard tidak mengubah apa pun ke segala arah di sini.
Patrick Mevzek
0

Ini benar-benar ide yang buruk, misalkan jika Anda ingin meng-host satu subdomain a.company.com di satu server web, dan b.company.com di server web lain, mungkin ISP lain. Apa yang akan kamu lakukan ?. Jadi wildcard DNS bukanlah suatu pilihan, itu harus tepat, membuat catatan untuk setiap sub domain dan menunjuk ke IP yang relevan. Kemungkinan ada untuk memindahkan server web Anda dari satu ISP ke ISP lain, dalam hal ini apa yang akan Anda lakukan?

vembutech
sumber
0

Saya tahu ini adalah pertanyaan lama, namun saya ingin membagikan contoh dunia nyata di mana menggunakan domain wildcard dapat menyebabkan masalah. Namun saya akan mengubah nama domain dan juga menyembunyikan catatan SPF penuh untuk menyimpan rasa malu.

Saya membantu seseorang yang mengalami masalah dengan DMARC, sebagai bagian dari pemeriksaan saya selalu mencari catatan DMARC dengan DIG

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

Saya juga mendapat hasil yang sama ketika mencari catatan DKIM mereka.

Akibatnya email yang dikirim dari domain ini akan mendapatkan DKIM gagal karena modul DKIM akan mencoba menguraikan catatan SPF untuk kunci DKIM dan gagal, dan juga akan mendapatkan Permerror untuk DMARC karena alasan yang sama.

Wildcard domain mungkin tampak seperti ide yang bagus tetapi mengaturnya secara salah mereka dapat menyebabkan segala macam masalah.

Ravenstar68
sumber
-2

Apakah catatan wildcard DNS praktik buruk?

Tidak, dan bertentangan dengan yang lain, saya percaya ini adalah praktik yang baik.

Sebagian besar pengguna internet memalsukan nama DNS di beberapa titik. Mereka akan mengetik ww.mycompany.comatau wwe.mycompany.com Apa yang Anda inginkan terjadi "oops kami tidak dapat menemukan situs itu" atau bagi mereka untuk menarik halaman utama Anda? Lebih sering daripada tidak memiliki mereka menarik halaman utama Anda lebih disukai. Itulah yang BANYAK orang lakukan.

Bahkan jika seseorang menaruh tautan ke i.dont.like.your.website.whatever.comsana akan tetap membuka beranda Anda , yang sebenarnya Anda inginkan. Lagi pula, mereka tidak dapat membuat i.dont....situs tersebut masuk ke server mereka, Anda masih mengontrol perutean DNS sehingga masuk ke Anda.

Bukan saya
sumber
5
Masalah yang saya miliki dengan alasan ini adalah: 1. ia merusak penanganan kesalahan, 2. sepenuhnya www-centric sementara catatan wildcard Anda akan memengaruhi protokol lain juga. Hasilnya adalah Anda telah melakukan kesalahan penanganan untuk hal-hal lain di mana Anda tidak berusaha untuk memperbaiki keadaan.
Håkan Lindqvist
-2

Saya pikir alasan terbaik untuk tidak memiliki catatan DNS wildcard di tempat pertama adalah untuk menghindari memberikan alamat IP server Anda ke penyerang potensial dan mengurangi paparan terhadap serangan DDOS. Ini juga direkomendasikan pengaturan oleh Cloudflare: https://blog.cloudflare.com/ddos-prevention-protecting-the-origin/

Michael Rogers
sumber
2
Menggunakan domain wildcard tidak mengubah eksposur untuk serangan semacam itu. Dan tautannya tidak mendukung klaim salah Anda. Semua tautan itu mengatakan bahwa Cloudflare mengenakan biaya yang lebih tinggi untuk domain wildcard. Itu hanya mengatakan sesuatu tentang model bisnis Cloudflare dan apa-apa tentang praktik menggunakan domain wildcard.
kasperd
Jika Anda menggunakan wildcard dns dengan cloudflare karena itu tidak melewati cloudflare (kecuali Anda membayar perusahaan, kebanyakan tidak) siapa pun dapat melakukan ping subdomain yang dibuat dan menemukan IP Anda yang sebenarnya. Tanpa wildcard mereka tidak bisa. hanya itu yang ada di sana.
Michael Rogers
Ya dalam hal layanan seperti itu, mereka mungkin membebani Anda lebih banyak untuk perlindungan wildcard. Meskipun pertanyaan ini bukan tentang jenis-jenis layanan ini tentang wildcarding dns dan apakah itu harus dilakukan atau tidak dalam situasi normal.
Chris