localhost di zona DNS

15

ISP kami juga menyelenggarakan DNS eksternal kami. Secara default mereka memasukkan entri untuk localhost.

Misalnya: localhost.example.com. 86400 DALAM A 127.0.0.1

Ketika saya meminta mereka untuk menghapusnya, mereka memberi saya waktu yang sulit dan mengatakan bahwa itulah cara Bind bekerja.

Saya sudah mencoba melakukan penelitian tentang mengapa saya ingin memasukkan itu tetapi saya tidak bisa menemukan banyak. Saya memang menemukan setidaknya satu tempat yang mengira itu kemungkinan serangan vektor XSS. Tampaknya cukup umum sehingga saya melakukan pencarian di 20 domain situs web teratas dari alexa dan sebagian besar tidak memiliki entri seperti itu tetapi beberapa melakukannya. Beberapa orang lain memiliki entri tetapi alih-alih menunjuk ke 127.0.0.1 mereka menunjuk ke alamat IP lain yang mampu rute dunia.

Jadi, mengapa saya ingin memiliki locahost di zona untuk domain saya? Apakah ada masalah dengan tidak memilikinya? Apakah ada praktik terbaik mengenai hal ini? Apakah itu memang hal Bind default yang saya tidak sadari?

Terima kasih

matthew
sumber
Pertanyaan bagus. Saya tidak pernah mendengar itu sebelumnya.
TomTom
Saya bahkan memiliki "loopback" di file zona ISP saya. WTF?
David Tonhofer

Jawaban:

13

localhost.example.comkadang-kadang disertakan pada server DNS internal untuk mencegah permintaan "localhost" bocor ke internet (untuk kasus di mana John Smith mengetik http://localhost/di browser-nya & untuk alasan apa pun resolvernya tidak terlihat di file host, ditambahkan jalur pencariannya ( example.com) & mulai menanyakan server nama apa yang dipecahkan).

Anda tidak harus memiliki entri localhost (dan jika ISP Anda berpikir itu "cara BIND bekerja" mereka salah arah atau idiot: BIND melayani apa yang ada di file zona, dan jika mereka menghapus localhostbaris itu akan berhenti melayani itu merekam). Sebagai contoh gratis, localhost.google.comtidak menyelesaikan, dan saya bertaruh NS untuk domain itu menjalankan BIND.

Vektor XSS adalah sesuatu yang tidak pernah saya pikirkan, tetapi ini adalah sesuatu yang memprihatinkan: memiliki localhostentri dalam DNS publik Anda berarti setiap mesin yang diretas dapat "di domain Anda" (dengan menjalankan server web pada 127.0.0.1) dan berpotensi melakukan segala macam hal buruk. Mungkin alasan yang cukup bagus untuk menyingkirkan entri.

voretaq7
sumber
1
Secara pribadi saya akan berpikir itu localhost.some.testhanyalah korban dari tidak mendapatkan titik akhir yang tepat. Alasan di balik memiliki localhost.(perhatikan titik!) Jelas, tetapi titik sering dilupakan di zona DNS. Kemudian ia muncul untuk memiliki kehidupan misteriusnya sendiri.
poige
Lihat tools.ietf.org/html/rfc1537 Kesalahan Konfigurasi File Data DNS Umum yang menunjukkan bahwa entri localhost sudah benar.
BillThor
1
Tidak, rfc1537 tidak menjelaskannya. Ini menentukan bahwa receptor perlu memiliki localhost. zona dan zona untuk kebalikannya. Tidak ada yang mengatakan zona Anda membutuhkan entri host lokal.
Habbie
@ BillThor Komentar tentang jawaban lain ini relevan dengan RFC 1537 dan penggantinya (RFC 1912) - Seperti yang dikatakan Habbie, zona itu localhost. adalah sesuatu yang seharusnya kita miliki, tetapi praktik memiliki localhost catatan di setiap zona yang kita layani telah gagal nikmat. (Pertanyaan ini benar-benar membawa saya ke lubang kelinci RFC 5 tahun yang lalu, mungkin saya akan memperbarui jawaban saya dengan RFC baru & pemikiran dari utas komentar nanti :))
voretaq7
3

Dengan asumsi bahwa resolusi nama internal Anda menangani resolusi nama dengan benar, setiap permintaan DNS untuk localhost tidak boleh pergi ke penyedia DNS eksternal Anda, dan karenanya ini seharusnya tidak menjadi masalah sama sekali.

Salah satu alasan mengapa seseorang melakukan hal ini, yang dapat saya pikirkan dari atas kepala saya, adalah jika seseorang pernah menggunakan alat pembuat web yang mengacaukan referensi absolut ke http: // localhost , tetapi itu mengasumsikan bahwa Anda ISP juga hosting di kotak DNS mereka dan merupakan kesempatan besar.

Namun, RFC 1537 tidak menentukan:

Telah ada diskusi yang luas tentang apakah akan menambahkan domain lokal atau tidak. Kesimpulannya adalah "localhost." akan menjadi solusi terbaik; alasan yang diberikan adalah:

  • "localhost" sendiri digunakan dan diharapkan dapat bekerja pada beberapa sistem.

  • menerjemahkan 127.0.0.1 ke dalam "localhost.my_domain" dapat menyebabkan beberapa perangkat lunak terhubung dengan dirinya sendiri menggunakan antarmuka loopback ketika tidak mau.

Perhatikan bahwa semua domain yang mengandung host harus memiliki catatan "localhost".

Jadi, sepertinya ISP Anda benar untuk memasukkan localhost, tetapi salah menggunakan nama yang sepenuhnya memenuhi syarat.

Maximus Minimus
sumber
5
Sepertinya RFC-1537 sudah usang oleh RFC-1912 yang menghapus Note that ...bahasa (saya kira sebagai tanggapan terhadap masalah XSS potensial yang kita akan mulai sadari pada tahun 1996 :) 1537 Menjelaskan mengapa itu ada dalam template BIND.
voretaq7
maksud Anda harus ada entri seperti ini di zona untuk example.com: localhost. 86400 DALAM A 127.0.0.1; perhatikan periode
matthew
3
4.1 dari 1912 sebenarnya cukup eksplisit di dalamnya: ietf.org/rfc/rfc1912.txt
Maximus Minimus
5 tahun kemudian tetapi perlu diklarifikasi: 4.1 dari RFC 1912 secara eksplisit bahwa localhost zona tersebut seharusnya ada di server (jadi jika mendapat permintaan hanya "localhost", itu tidak meneruskannya ke rantai ke server berikutnya), itu adalah jauh dari memasukkan zona localhostsay example.com(penciptaan localhost.example.com), yang juga sama eksplisitnya dengan mengatakan Anda tidak boleh melakukannya karena kemungkinan efek samping yang tidak diinginkan. Harapannya adalah agar "localhost" menjadi domain khusus, ajaib, dan berkualifikasi penuh.
voretaq7
0

Saya tidak yakin apa gunanya ... Secara default, alamat eksternal akan ditunggangi oleh file hosts, yang hampir selalu memetakan localhost ke 127.0.0.1.

File zona BIND default tidak termasuk zona host lokal. Tidak pernah benar-benar memikirkannya.

Satanicpuppy
sumber
Ini bukan zona localhost (kecuali salah konfigurasi zona itu). Itu juga bukan fqdn 'localhost.' dan umumnya tidak akan ditunggangi oleh file host lokal.
matthew