Apakah mungkin untuk membuat server DNS root Anda sendiri?

14

Saya penasaran. Saya terus membaca tentang bagaimana ISP dan perantara internet kami mencatat dan melacak semua permintaan DNS pada dasarnya meninggalkan jejak remah roti di banyak log, dan juga memungkinkan pembajakan DNS untuk tujuan periklanan (Saya sedang melihat Anda Cox Communications!).

Terlepas dari metode lain untuk privasi / keamanan, saya secara khusus ingin tahu apakah mungkin untuk menjalankan server DNS di jaringan lokal Anda sendiri, _yang sebenarnya memiliki informasi zona dari server DNS root (untuk .com, .net ,. org) domain.

Saya tahu Anda dapat mengatur DNS yang pada dasarnya hanya memetakan mesin di domain Anda, tetapi apakah mungkin untuk pada dasarnya meminta salinan / transfer informasi DNS root untuk disimpan di server DNS Anda sendiri sehingga Anda dapat memotong keluar ke internet untuk DNS informasi sama sekali untuk penjelajahan web?

Saya harap saya jelas. Saya tidak ingin server DNS saya hanya memiliki informasi tentang jaringan internal saya - Saya ingin memiliki informasi duplikat yang dimiliki oleh server DNS internet besar, tetapi saya ingin informasi itu secara lokal di server DNS saya.

Apakah ada sesuatu seperti transfer BGP Zone tetapi untuk DNS?

Pembaruan: Apakah ada produk / perangkat lunak OSS yang pada dasarnya dapat "mengikis" informasi ini dari rantai DNS eksternal ke dalam cache lokal dalam jumlah besar sehingga mereka siap ketika Anda membutuhkannya, dibandingkan menyimpannya ketika Anda secara eksplisit meminta catatan domain?

pythonnewbie
sumber

Jawaban:

12

DNS dengan desain tidak memungkinkan memiliki salinan semua zona otoritatif, karena menggunakan sistem penamaan hirarkis.

Root server otoritatif untuk mengidentifikasi server yang bertanggung jawab atas Top Level Domain (TLD) yang bersangkutan. Misalnya, penyelesaian www.example.netakan terlebih dahulu meminta server root untuk mengidentifikasi server nama yang otoritatif .net. The .netnameserver akan mengidentifikasi nameserver otoritatif untuk example.net, yang kemudian akan kembali rekor www.example.net.

Anda tidak dapat mengunduh salinan semua zona. Namun, Anda bisa menjalankan server nama caching lokal. Server nama caching akan memberikan salinan lokal dari semua catatan yang diselesaikan, yang kedaluwarsa menggunakan Time To Live (TTL) yang ditentukan untuk catatan. Harap diingat bahwa penjelasan saya adalah deskripsi sederhana dari protokol DNS, yang dapat dieksplorasi secara terperinci dengan membaca definisi dalam Request For Comments .

Meskipun pembajakan NXDOMAIN dapat dihindari dengan menjalankan cache lokal, perlu diingat bahwa semua lalu lintas resolusi DNS masih akan dikirim melalui koneksi Internet Anda yang tidak dienkripsi. ISP Anda berpotensi memantau lalu lintas itu dan masih melihat komunikasi. Kontrak yang Anda miliki dengan ISP Anda serta hukum setempat Anda akan menjadi sarana definitif Anda untuk menetapkan bagaimana komunikasi Anda diperlakukan. Kontrak ISP Anda akan mencakup Ketentuan Layanan, Kebijakan Privasi, dan kontrak tambahan apa pun yang mungkin Anda miliki dengan ISP Anda.

Menggunakan protokol terenkripsi adalah salah satu metode terbaik untuk mengasuransikan data Anda terhadap penyadapan saat transit. Namun, bahkan itu tidak memiliki jaminan anonimitas. Ada protokol tambahan di luar sana seperti Tor dan Freenet , yang berupaya memperkenalkan anonimitas ke Internet, karena tidak pernah dirancang untuk benar-benar anonim.

Warner
sumber
1
Jawaban sederhananya adalah tidak, Anda tidak bisa. Jawaban teknis di atas dalam tanggapan Warner. Tidak ada satu set server yang berisi semua info DNS .. server root hanya merujuk Anda ke salah satu server TLD yang merujuk permintaan lebih jauh di telepon.
Rex
1
Beberapa ISP menyediakan cara untuk mematikan pembajakan NXDOMAIN. Beberapa ISP menyediakan mekanisme berbasiskan cookie (bodoh dan palsu) untuk "mematikan" pembajakan NXDOMAIN. Ada juga server nama alternatif yang dapat digunakan sebagai pengganti server nama ISP Anda.
Brian
3

Beberapa hal:

Jika Anda mengonfigurasi server Anda untuk menggunakan petunjuk root alih-alih menggunakan forwarder maka Anda tidak perlu khawatir tentang masalah MITM (setidaknya dari ISP dan pembajak DNS). Untuk semua resolusi DNS eksternal, server Anda akan menanyakan petunjuk root, yang akan mengarahkan Anda ke server gTLD untuk domain tingkat atas yang dimaksud (.com, dll.), Yang kemudian akan mengarahkan Anda ke server NS untuk domain yang dimaksud .

Jika Anda benar-benar ingin membuat server root sendiri, tentu saja Anda bisa, meskipun saya tidak melihat bagaimana hal itu akan banyak membantu Anda. Inilah cara Anda melakukannya pada server DNS Windows:

Unduh file zona root DNS dan simpan sebagai root.dns di direktori% systemroot% \ system32 \ dns di server DNS Windows Anda, gunakan wizard pembuatan zona DNS untuk membuat zona pencarian maju utama baru bernama "." (tanpa tanda kutip), batalkan pilihan untuk membuat zona terintegrasi AD, ketik "." untuk nama zona (tanpa tanda kutip), pilih opsi untuk menggunakan file yang ada dan bidang nama file zona akan secara otomatis diisi dengan nama root.dns (jika tidak diketikkan), biarkan opsi untuk tidak biarkan pembaruan dinamis apa adanya, klik tombol selesai setelah Anda bersepeda melalui setiap langkah wizard. Anda sekarang memiliki server root dengan catatan zona dan zona untuk semua server gTLD.

Perhatikan bahwa ini akan menonaktifkan opsi penerusan dan petunjuk root di server (karena server Anda sekarang merupakan server root) dan juga perhatikan bahwa jika informasi gTLD berubah, tidak ada cara bagi server Anda untuk mengetahui perubahan tersebut.

joeqwerty
sumber
Tidak ada yang menghentikan ISP dari membajak IP dari server root (kecuali DNSsec) ... Selain itu, benar.
Chris S
1

Untuk server terkait erat ada transfer zona. Fungsi ini sangat mirip dengan pengumuman BGP. Untuk alasan keamanan, ini biasanya diblokir untuk server lain.

Jika Anda menjalankan server nama caching itu akan menyalin daftar root server, dan segera memiliki root untuk .com, .net, dll. Ada alasan yang sangat bagus bahwa DNS didistribusikan. Kalau tidak, semua orang akan bekerja dengan data yang sudah usang. Ukuran basis data akan cukup besar, dan sebagian besar data tidak menarik bagi Anda.

Ada beberapa pilihan untuk mengurangi risiko keracunan DNS dan penawaran perangkat lunak yang bagus dengan masalah yang diketahui. Ada organisasi yang berupaya menyediakan data yang disanitasi yang dapat digunakan sebagai penyedia hulu. Ini akan menyaring beberapa upaya keracunan. Lihatlah menggunakan OpenDNS atau google sebagai penyedia upstream.

Zona DNS root sekarang ditandatangani, dan saya semakin melihat server email saya melaporkan bahwa data DNS telah ditandatangani. Penandatanganan DNS telah dilaporkan sebagai persyaratan untuk IPV6. DNS yang ditandatangani membuat keracunan cache sangat sulit, tetapi menambah kesulitan mengelola DNS.

BillThor
sumber
1

Anda tentu saja dapat mengatur server Anda sendiri dan membuatnya otoritatif untuk root, tapi saya tidak tahu cara apa pun untuk membuatnya lebih awal dengan zonefiles root-server. Anda tidak bisa hanya meminta zonetransfer, jadi saya kira Anda harus mengisinya dengan menyimpan cache Anda.

Ubah root.hints di server nama Anda yang lain untuk mengarahkan mereka ke server root pribadi Anda, dan biarkan pengujian dimulai.

Tetapi perlu diingat bahwa server root hanya tahu server mana yang berwenang untuk TLD, tidak ada yang lain. Anda pada dasarnya perlu membuat ulang seluruh hierarki server, yang sepertinya merupakan tugas yang mustahil.

Martijn Heemels
sumber
0

Ya, salah satu fitur server DNS adalah caching lokal untuk permintaan yang sering diminta, terlalu sering melewati ttl yang ditentukan.

Anda pasti dapat menjalankan dns Anda sendiri, tidak masalah. Tetapi server root, dan server domain tingkat atas, Anda harus bertanya pada paman sam.

Mencatat semua permintaan dns dimungkinkan, tetapi akan menjadi gila.


sumber
Tetapi mengandalkan cache akan menyiratkan bahwa Anda sudah harus mengirim permintaan DNS untuk domain yang bersangkutan, yang mengalahkan seluruh tujuan mencoba untuk sepenuhnya (atau sebagian besar) permintaan DNS lokal saja.
pythonnewbie