Cara Mengkonfigurasi Server DNS di Debian

Cara Mengkonfigurasi Server DNS di Debian

Apa Itu DNS?

DNS atau Domain Name System adalah sistem yang menerjemahkan nama domain ke alamat IP yang sesuai. Misalnya, ketika Anda mengetik www.example.com di browser Anda, itu memetakan ke alamat IP server web tertentu di internet. Hal ini memudahkan orang untuk mengingat server, aplikasi, atau perangkat lain yang terhubung ke internet tanpa harus mengingat alamat IP mereka.

DNS adalah sistem database terdistribusi hirarkis. Ini memiliki struktur seperti pohon dengan node yang disusun berlapis-lapis yang disebut domain. Setiap domain menunjuk ke simpul dari beberapa tingkat yang lebih rendah dari dirinya sendiri. Dalam DNS, domain ini didefinisikan sebagai subdomain, dan masing-masing berada di server DNS sendiri, baik DNS Master atau DNS Primer, yang berisi catatan untuk semua alamat IP dan nama host dalam zona domainnya.

Mungkin ada beberapa server DNS Sekunder yang berisi copyan informasi terbaru yang terkandung dalam server DNS Master terkait. Selain menyelesaikan kueri menggunakan data yang dicerminkan ini, server DNS sekunder juga memberikan toleransi error jika master utama mati dengan menjawab kueri sendiri sambil menunggu jawaban dari master utama.

Kueri diproses oleh server DNS Rekursif berdasarkan informasi dalam cache yang dikombinasikan dengan detail server nama rekursif yang ditentukan dalam /etc/resolv.conf file. Sistem Nama Domain adalah elemen penting dari arsitektur Internet, dan itu penting untuk jaringan komputer bersama-sama ke dalam apa yang kita sebut hari ini “internet”.

Parameter konfigurasi DNS dapat diedit menggunakan “dig” atau mengedit file zona secara langsung. Mengedit file zona tidak disarankan karena error dapat menyebabkan situs web tidak dapat diakses, meskipun ini jarang terjadi. Jika Anda tidak yakin tentang apa yang Anda lakukan, gunakan dig sebagai gantinya bila memungkinkan. Beberapa paket BIND atau Berkeley Internet Name Domain dilengkapi dengan “dnsutils” dan “host”, yang digunakan untuk menanyakan server DNS dan mencetak hasilnya. Ada juga utilitas nslookup yang tersedia di sebagian besar sistem UNIX yang dapat digunakan untuk tujuan serupa. Namun, “menggali” biasanya lebih andal daripada kedua alat ini.

Bagaimana Cara Kerja DNS?

DNS bekerja sebagai sistem hierarkis, dimulai dari akar Domain. Misalnya, jika Anda mengetikwww.example.comdi browser Anda, ia meminta server DNS lokal Anda untuk informasi ini. Ketika tidak memilikinya karena tidak otoritatif untuk domain itu, ia meneruskan kueri ke salah satu server DNS rekursif hulunya. Server-server ini akan memeriksa cache mereka terlebih dahulu sebelum menghubungi semua server nama otoritatif yang secara langsung bertanggung jawab atas domain “contoh” sampai mereka mengetahui DNS mana yang memiliki data ini dan mengirimkannya kembali ke komputer client dengan alamat IP untuk domain tersebut.

Seperti yang Anda lihat, setiap domain atau subdomain memiliki server nama otoritatifnya sendiri, dan bertanggung jawab untuk menyelesaikan kueri hanya untuk subdomain tersebut. Oleh karena itu server DNS harus memiliki semua informasi untuk menjawab pertanyaan apa pun tentang domain tertentu. Jadi jika “example.com” bukan domain utama server DNS lokal Anda, maka tidak akan dapat menyelesaikan kueri untuk www.example.com tanpa meneruskannya ke hulu terlebih dahulu.

Catatan : Bila memungkinkan, konfigurasikan server nama yang berbeda untuk setiap subdomain karena masing-masing subdomain memerlukan prosedur pemeliharaan dan administrasi yang terpisah. Sebenarnya, ini adalah bagaimana DNS dirancang pada awalnya ketika protokol TCP/IP dirilis pada tahun 1983 sebelum penemuan Sistem Nama Domain. Ini dibuat kemudian setelah pembuatan service pendaftaran InterNIC pada tahun 1992. Subdomain diperkenalkan sebagai perpanjangan dari protokol DNS, dan ditujukan untuk tujuan administratif saja.

Setiap kali server DNS menerima permintaan dari client, ia memeriksa cache terlebih dahulu untuk melihat apakah semua catatan yang diperlukan ada di dalamnya. Jika tidak ada catatan yang ditemukan atau tidak cukup baru, maka ia melakukan kueri rekursif berikut:

Jika itu adalah kueri Internet (IN), maka itu akan menyelesaikan nama host mulai dari akar domain dan bekerja ke bawah melalui setiap domain induk hingga mencapai server otoritatif untuk zona itu. Ini disebut “starting at the top“, dan biasanya dilakukan terlebih dahulu karena server nama yang bertanggung jawab untuk TLD (.com,.net, dll.) memiliki kecepatan koneksi yang lebih cepat dengan bandwidth yang lebih besar daripada untuk domain tingkat kedua, misalnya, “example”. Saat melakukannya, server DNS lokal Anda mempertimbangkan apakah server dapat memercayai respons server DNS upstream atau tidak. Jika Anda tidak memiliki akses ke file /etc/hosts atau /etc/resol
v.conf dan server DNS yang digunakan oleh ISP Anda menyimpan respons mereka, kemungkinan besar lalu lintas jaringan Anda sedang dicatat. Dengan demikian, ini mungkin menimbulkan ancaman keamanan, dan jika tidak, ia akan meminta server rekursif secara langsung untuk data tersebut. Ini disebut “starting at the bottom” karena server nama yang bertanggung jawab untuk domain tingkat kedua memiliki kecepatan koneksi yang lebih lambat dengan bandwidth yang lebih kecil daripada untuk Domain Tingkat Atas.

Seluruh proses ini diulang secara iteratif sampai:

  1. Server nama non-otoritatif merespons kueri IN, dengan mengatakan bahwa ia tidak mengetahui informasi yang diminta.
  2.  Server nama menemukan apa yang dianggapnya sebagai jawaban otoritatif untuk kueri dan mengirimkannya kembali ke komputer client.
  3. Jumlah iterasi yang telah dikonfigurasikan sebelumnya dalam cache nama resolver akan kedaluwarsa.

Tutorial ini akan memandu Anda melalui cara mengatur server DNS internal Anda sendiri di Debian. Kami menggunakan perangkat lunak server nama BIND (BIND9) untuk melakukannya.

Apa itu BIND9?

BIND (Berkeley Internet Name Domain) adalah implementasi dariDNS protocol. DiBIND 9, beberapa peningkatan besar telah dibuat, termasuk dukungan IPv6, konfigurasi dan kontrol yang jauh lebih fleksibel, peningkatan kinerja caching, EDNS0 support untuk respons UDP yang lebih besar, dan manajemen yang lebih baik atas alamat IP yang ditetapkan secara dinamis.

BIND adalah perangkat lunak server nama yang paling banyak digunakan di Internet. Ini mendukung sejumlah protokol service nama domain yang berbeda, termasukBIND4 (the original Berkeley Internet Name Domain, version 4), BIND8 (the historical successor to BIND4), and DNS services for IPv6 melalui dua implementasi terpisah: satu berdasarkan daemon, dan yang lain disebut lwres (light-weight resolver).

BIND 9.5 adalah versi stabil saat ini dari BIND, dan tersedia untuk didownload dalam bentuk sumber dan biner dariInternet Software Consortium.

Prasyarat

Sebelum kita memulai proses instalasi DNS server di Debian, ada baiknya Anda bertanya pada diri sendiri, “Do I really need a DNS server?

Artikel ini hanya berfokus pada IPv4, jadi jika Anda tertarik untuk menggunakan DNS for IPv6, lebih banyak pekerjaan yang harus dilakukan. Panduan ini tidak akan lagi membantu Anda dalam topik, seperti menambahkan data AAAA secara manual, dll.

Instalasi server Debian baru diperlukan untuk menguji langkah-langkah dalam panduan ini. Beberapa perintah yang digunakan di sini mungkin berbeda untuk kasus Anda, dan perbedaan tersebut akan ditunjukkan jika sesuai.

Panduan ini mengasumsikan Anda memiliki pekerjaan IPv4 network dan pengetahuan untuk mengkonfigurasi alamat IP statis dengan benar di komputer client.

SEBUAH sudo user dan firewall seharusnya sudah dikonfigurasi di sistem Anda.

Mulai

Memperbarui Sistem Anda

Proses instalasi cukup mudah, tetapi mari kita lihat secara detail. Pertama, Anda perlu memastikan sistem Anda telah menginstal semua paket yang diperlukan dan terbaru, menggunakan perintah berikut:

sudo apt-get update && sudo apt-get upgrade -y

Flag -y akan secara otomatis menjawab ya untuk semua konfirmasi yang mungkin ditanyakan.

Perintah apt-get update akan memperbarui daftar paket server. Dengan menggunakan perintah apt-get upgrade, semua paket yang terinstal di dalamnya akan diupgrade.

Ini akan memakan waktu tergantung pada kecepatan koneksi jaringan Anda dan jumlah pembaruan yang akan diinstal.

Contoh Keluaran:

Cara Mengkonfigurasi Server DNS di Debian

Menginstal BIND9

Sekarang sistem Anda telah diperbarui, Anda dapat melanjutkan dengan penginstalan a DNS server – BIND. Ini akan dilakukan dengan menginstal beberapa paket baru:

sudo apt install bind9 bind9utils bind9-doc

Perintah di atas akan menginstal BIND9 dan dua paket tambahan yang berisi file yang diperlukan agar server DNS berfungsi dengan baik.

Itu BIND9 is the DNS server software.

bind9utils adalah utilitas untuk mengelola BIND configuration dan diberi nama perintah yang digunakan untuk mengontrol BIND dari command line.

Catatan: bind9-doc adalah paket dokumentasi untukBIND software.

Contoh Keluaran:

Menginstal Server DNS

Setelah instalasi selesai, Anda dapat memeriksa untuk memastikan bahwa semua paket telah berhasil diinstal dengan menjalankan perintah berikut:

named -v

Perintah di atas akan menampilkan versi BIND yang terinstal dan dependensinya.

Contoh Keluaran:

BIND dimulai secara otomatis saat Anda menginstalnya. Anda memeriksa statusnya dengan perintah systemctl, sebagai berikut:

sudo systemctl status bind9

Perintah di atas akan memberi Anda tampilan yang lebih rinci tentang fungsi BIND di server Anda, seperti waktu aktif, jumlah zona, dll.

Anda akan mendapatkan sesuatu yang mirip dengan output berikut:

Contoh Keluaran:


Jika Anda ingin memulai, menghentikan, atau restart BIND, cukup jalankan perintah di bawah ini:

sudo service bind9 start

sudo service bind9 stop

sudo service bind9 restart

Server BIND akan berjalan sebagai user dan grup pengikat secara default. Ini membuatnya cukup aman karena setiap perubahan dalam file zona hanya diperbolehkan untuk user ini. Server BIND mendengarkan secara default pada port 53 untuk kueri DNS. Anda dapat mengubah port ini dinamed.conf filejika kamu suka. Jalankan perintah berikut untuk melihat port mana yang didengarkan oleh server BIND Anda:

sudo netstat -lnptu | grep named

Contoh keluaran:

Perintah di atas menunjukkan bahwa daemon bernama saat ini dimulai dan mendengarkan pada port 53 UDP. Gunakan informasi ini untuk memverifikasi apakah Anda menggunakan nomor port yang benar.

Jika server Anda tidak menggunakan port 53, Anda dapat memperbaikinya dengan mengedit /etc/bind/ named.conf.localdan mengubah nomor port ke apa pun yang Anda inginkan. Anda juga dapat mengubah nama file log server dengan mengedit/etc/bind/ named.conf.default-zones dan menambahkan pernyataan logging di bawah arahan opsi.

Mengonfigurasi BIND9

Sekarang Anda memiliki BIND9 installed di server Anda, saatnya untuk mulai mengonfigurasinya.

Direktori konfigurasi untuk BIND terletak di bawah /etc/bind. Ada beberapa file penting di direktori ini:

File bernama ‘named.conf‘ adalah file konfigurasi utama, yang memiliki banyak komentar untuk memperjelas setiap bagian.

File konfigurasi selanjutnya yang akan kita edit terletak di /etc/bind/named.conf.local. File ini berisi semua informasi jaringan Anda mengenai server dan zona yang ingin Anda selesaikan secara lokal (dari server nama).

Itu named.conf.default-zones terletak di /etc/bind/named.conf.default-zones. File ini berisi informasi server untuk zona yang digunakan oleh BIND ketika tidak secara eksplisit diperintahkan untuk menggunakan zona yang berbeda. Dengan kata lain, zona yang diaktifkan.

Jadi, mari kita lanjutkan dan mulai dengan beberapa konfigurasi dasar.

Contoh Keluaran:

Secara default, BIND dikonfigurasi untuk melayani localhost saja. Ini berarti bahwa setiap permintaan yang datang dari luar server Anda akan ditolak oleh BIND itu sendiri kecuali Anda telah mengonfigurasinya dengan benar.

Jika Anda mencoba mengakses situs web yang dihosting di, misalnya, alamat IP “154.54.55.56”, apa yang akan terjadi? Jawabannya sederhana: semua permintaan tidak akan dijawab karena tidak ada konfigurasi yang ditentukan untuk alamat IP “154.54.55.56” di BIND9, dan daemon “bernama” menolak untuk melayani permintaan DNS apa pun dari luar interface jaringannya.

Pertama, kita akan mengatur server DNS untuk mendengarkan semua alamat IP untuk mengirim permintaan ke server DNS dari berbagai tempat: Dari server, dari jaringan yang berbeda, atau saat Anda menggunakan Internet.

Mari lakukan dengan mengedit file konfigurasi bernama.conf.options:

cd /etc/bind

sudo nano named.conf.options

Let's replace listen-on {127.0.0.1;};

by

listen-on {any;};

listen-on-v6 { any; }

Simpan dan tutup file setelah selesai. Kemudian restart daemon BIND9 dengan perintah di bawah ini:

sudo service bind9 restart

Sekarang, kami telah mengaktifkan BIND9 untuk mendengarkan di semua interface.

Contoh Keluaran:

Membuat Zona Pencarian Teruskan (domain -> IP)

Zona pencarian maju adalah jenis file zona yang paling umum. Mereka memetakan nama domain ke alamat IP dan digunakan dalam menyelesaikan nama domain ke alamat IP untuk email, halaman web, dll. Langkah selanjutnya adalah membuat file zona pencarian maju.

Kami akan mengedit “/etc/bind/named.conf.local” untuk mendeklarasikan zona maju. Untuk tujuan tutorial ini, kami akan mendeklarasikan domain yang disebut “linuxhint.com” dan arahkan ke alamat IP publik server yang digunakan secara eksplisit untuk menghosting situs web eksternal di domain linuxhint.com.

Catatan : Alamat IP yang dapat diakses internet yang valid harus ditetapkan di server Anda jika Anda berencana untuk menyelesaikan domain eksternal dari dalam jaringan Anda.

Sekarang, kita akan mengedit “/etc/bind/named.conf.local” untuk mendeklarasikan zona pencarian maju:

sudo nano named.conf.local

Tambahkan yang berikut ini ke ak
hir file:

zone "linuxhint.com" {

  type master;

  file "/etc/bind/db.linuxhint.com";

  //allow-transfer {xxx.xxx.xxx.xxx;}; // Secondary DNS server of the hoster

};

Pada konteks ini:

Jenis “master”. Ini adalah file zona domain master. Parameter tipe dapat diatur ke “slave” jika Anda menghosting zona maju atau mundur khusus otoritatif dan tidak ingin mengizinkan pembaruan dinamis.

/etc/bind/db.domaine.com” adalah file yang berisi record untuk domain “linuxhint.com” dengan jalur penuh.

izinkan-transfer {xxx.xxx.xxx.xxx;}. Diperlukan untuk mengizinkan transfer zona ke server DNS sekunder dari hoster karena jika penyedia hosting Anda tidak mengizinkan Anda melakukannya, Anda tidak dapat memperbaruinya secara online dengan perintah “rndc reload” di localhost. xxx.xxx.xxx.xxx; Alamat IP server DNS sekunder (Server Nama) yang di-host oleh penyedia hosting Anda.

Simpan dan tutup file setelah selesai.

Contoh Keluaran:


Sekarang, kita akan membuat file untuk setiap zona yang dideklarasikan di atas:

sudo nano db.linuxhint.com

Isi file dengan yang berikut ini:

;

; BIND data file for local loopback interface

;

$TTL    604800

@       IN      SOA     ns1.linuxhint.local. root.linuxhint.local. (

                              2         ; Serial

                         604800         ; Refresh

                          86400         ; Retry

                        2419200         ; Expire

                         604800 )       ; Negative Cache TTL

;

; Commentout below three lines

;@      IN      NS      localhost.

;@      IN      A       127.0.0.1

;@      IN      AAAA    ::1

;Name Server Information

@       IN      NS      ns1.linuxhint.local.

;IP address of Name Server

ns1     IN      A       192.168.0.10

;Mail Exchanger

linuxhint.local.   IN     MX   10   mail.linuxhint.local.

;A – Record HostName To IP Address

www     IN       A      192.168.0.100

mail    IN       A      192.168.0.150

;CNAME record

ftp     IN      CNAME   <a href="http://www.linuxhint.local">www.linuxhint.local</a>.

Dalam file ini, ganti nilai linuxhint dengan nama domain Anda, diikuti dengan titik (.) Ini perlu, dan ini BUKAN error.

Ganti “192.168.0” dengan alamat IP publik Anda, diikuti dengan titik (.) Ini diperlukan agar server dapat diakses dari internet.

Ingatlah untuk menyimpan dan menutup file ketika Anda selesai.

Membuat Zona Pencarian Terbalik (IP -> domain)

Zona pencarian terbalik digunakan untuk memetakan alamat IP ke dalam nama domain dan umumnya diperlukan untuk mengirim email. Langkah selanjutnya adalah membuat file zona terbalik.

Nama zona terbalik terdiri dari ID jaringan (terbalik) diikuti oleh “.in-addr.arpa”.

Sebagai contoh:

Jika server memiliki alamat IP “20.30.40.50“, ID jaringannya akan menjadi “20.30.40“, dan nama zona sebaliknya adalah “40.30.20.in-addr.arpa“.

Jika server memiliki alamat IP “191.169.10.50“, ID jaringannya akan menjadi “191.169.10“, dan nama zona sebaliknya adalah “10.169.191.in-addr.arpa“.

Sekarang, kita akan mengedit “/etc/bind/named.conf.local” untuk mendeklarasikan zona terbalik:

sudo nano /etc/bind/named.conf.local

Kemudian, tambahkan yang berikut ke file:

zone "40.30.20.in-addr.arpa" {

    type master;

    notify no;

    file "/etc/bind/db.10";

};

Kemudian, kita akan membuat file untuk zona yang dideklarasikan di atas:

sudo nano db.10

Kemudian isi file tersebut dengan yang berikut ini:

;

; BIND reverse data file for local loopback interface

;

$TTL  604800

@    IN   SOA   linuxhint.local. root.linuxhint.local. (

               2     ; Serial

             604800     ; Refresh

             86400     ; Retry

            2419200     ; Expire

             604800 )    ; Negative Cache TTL

;

;@   IN   NS   localhost.

;1.0.0 IN   PTR   localhost.

;Name Server Information

@    IN   NS   ns1.linuxhint.local.

;Reverse lookup for Name Server

10   IN   PTR  ns1.linuxhint.local.

;PTR Record IP address to HostName

100   IN   PTR  www.linuxhint.local.

150   IN   PTR  mail.linuxhint.local.

# End of file

Memeriksa Sintaks Konfigurasi BIND

Sekarang, kami akan memeriksa sintaks konfigurasi di setiap file untuk error. Untuk melakukan ini, kita akan memiliki kueri bernama dengan perintah berikut:

sudo named-checkconf

Jika tidak ada error, perintah ini akan kembali ke shell kosong:

Contoh Keluaran:

Kesimpulan

DNS adalah salah satu service terpenting pada sebuah server. Semua orang menggunakannya. Semua orang membutuhkannya, dan, pada akhirnya, Anda tidak ingin engine Anda tersesat di jaringan karena mereka tidak dapat menemukan satu sama lain. Artikel ini memberikan panduan tentang pengaturan server DNS internal Anda di Debian menggunakan perangkat lunak server nama BIND (BIND9). Untuk informasi lebih lanjut, silakan periksa artikel lain yang ditemukan di LinuxHint.com.

Related Posts