GNU/Linux >> Belajar Linux >  >> Debian

Siapkan DNS Resolver Anda Sendiri di Debian 10 Buster dengan BIND9

Tutorial ini akan menunjukkan kepada Anda cara mengatur resolver DNS lokal di Debian 10 Buster, dengan perangkat lunak DNS BIND9 yang banyak digunakan. Ada banyak sinonim untuk DNS resolver, beberapa di antaranya tercantum di bawah ini. Mereka semua mengacu pada hal yang sama.

  • penyelesai penuh (berbeda dengan penyelesai rintisan)
  • Rekursor DNS
  • server DNS rekursif
  • resolver rekursif

Perlu diketahui juga bahwa Server DNS juga dapat disebut server nama. Contoh resolver DNS adalah 8.8.8.8 (server DNS publik Google) dan 1.1.1.1 (server DNS publik Cloudflare). OS di PC Anda juga memiliki resolver, meskipun disebut stub resolver karena kemampuannya yang terbatas. Penyelesai rintisan adalah klien DNS kecil di komputer pengguna akhir yang menerima permintaan DNS dari aplikasi seperti Firefox dan meneruskan permintaan ke penyelesai rekursif. Hampir setiap resolver dapat men-cache respons DNS untuk meningkatkan kinerja, sehingga mereka juga disebut caching DNS server.

Mengapa Menjalankan Penyelesai DNS Anda Sendiri

Biasanya, komputer atau router Anda menggunakan resolver DNS ISP Anda untuk menanyakan nama domain guna mendapatkan alamat IP. Menjalankan resolver DNS lokal Anda sendiri dapat mempercepat pencarian DNS, karena

  1. Resolver DNS lokal hanya mendengarkan permintaan DNS Anda dan tidak menjawab permintaan DNS orang lain, sehingga Anda memiliki peluang yang jauh lebih tinggi untuk mendapatkan respons DNS langsung dari cache di resolver.
  2. Latensi jaringan antara komputer Anda dan resolver DNS dihilangkan (hampir nol), sehingga kueri DNS dapat dikirim ke server DNS root lebih cepat.

Jika Anda menjalankan server email dan menggunakan daftar hitam DNS (DNSBL) untuk memblokir spam, maka Anda disarankan untuk menjalankan resolver DNS lokal untuk mempercepat pencarian DNS. Jika Anda menjalankan server VPN Anda sendiri di VPS (Virtual Private Server), sebaiknya Anda juga menginstal resolver DNS di VPS yang sama.

Anda mungkin juga ingin menjalankan penyelesai DNS Anda sendiri jika Anda tidak suka riwayat penjelajahan Internet Anda disimpan di server pihak ketiga.

Jika Anda memiliki situs web dan ingin server DNS Anda sendiri menangani resolusi nama untuk nama domain Anda alih-alih menggunakan server DNS pencatat domain Anda, maka Anda perlu menyiapkan server DNS otoritatif, yang berbeda dari resolver DNS. BIND dapat bertindak sebagai server DNS otoritatif dan resolver DNS secara bersamaan, tetapi merupakan praktik yang baik untuk memisahkan dua peran pada kotak yang berbeda . Tutorial ini menunjukkan cara menyiapkan resolver DNS lokal dan karena akan digunakan di host lokal/jaringan lokal, tidak diperlukan enkripsi (DNS melalui TLS atau DNS melalui HTTPS). Menyiapkan server DoT atau DoH akan dibahas di artikel mendatang.

Harap dicatat bahwa Anda harus memiliki hak akses root saat menginstal perangkat lunak di Debian. Anda dapat menambahkan sudo di awal perintah, atau gunakan su - perintah untuk beralih ke pengguna root.

Instal BIND9 di Debian 10 Buster

BIND (Berkeley Internet Name Domain) adalah perangkat lunak server DNS open-source yang banyak digunakan di Unix/Linux karena stabilitas dan kualitasnya yang tinggi. Ini awalnya dikembangkan oleh UC Berkeley, dan kemudian pada tahun 1994 pengembangannya dipindahkan ke Internet Systems Consortium, Inc (ISC).

Jalankan perintah berikut untuk menginstal BIND 9 pada Debian 10 Buster dari repositori default. BIND 9 adalah versi saat ini dan BIND 10 adalah proyek mati.

sudo apt update
sudo apt install bind9 bind9utils bind9-doc bind9-host dnsutils

Periksa informasi versi.

sudo named -v

Contoh keluaran:

BIND 9.11.5-P4-5.1-Debian (Extended Support Version) <id:998753c>

Untuk memeriksa nomor versi dan opsi build, jalankan

sudo named -V

Secara default, BIND secara otomatis dimulai setelah instalasi. Anda dapat memeriksa statusnya dengan:

systemctl status bind9

Petunjuk:Jika perintah di atas tidak segera berhenti, tekan Q.

Jika tidak berjalan, mulailah dengan:

sudo systemctl start bind9

Dan aktifkan mulai otomatis saat boot:

sudo systemctl enable bind9

Server BIND akan berjalan sebagai bind pengguna, yang dibuat selama instalasi, dan mendengarkan pada TCP dan UDP port 53, seperti yang dapat dilihat dengan menjalankan perintah berikut:

sudo netstat -lnptu | grep named

Biasanya kueri DNS dikirim ke port UDP 53. Port TCP 53 adalah untuk ukuran respons yang lebih besar dari 512 byte.

Daemon BIND disebut bernama . (Daemon adalah bagian dari perangkat lunak yang berjalan di latar belakang.) named biner diinstal oleh bind9 paket dan ada biner penting lainnya:rndc , pengontrol daemon nama jarak jauh, yang diinstal oleh bind9utils kemasan. rndc binary digunakan untuk memuat ulang/menghentikan dan mengontrol aspek lain dari daemon BIND. Komunikasi dilakukan melalui port TCP 953.

Misalnya, kita dapat memeriksa status server nama BIND.

sudo rndc status

Konfigurasi untuk Penyelesai DNS Lokal

/etc/bind/ adalah direktori yang berisi konfigurasi untuk BIND.

  • named.conf :file konfigurasi utama yang menyertakan konfigurasi tiga file lainnya.
  • db.127 :file zona pemetaan terbalik IPv4 localhost.
  • db.local :localhost meneruskan file zona pemetaan IPv4 dan IPv6.
  • db.kosong :file zona kosong

Paket bind9 pada Debian 10 tidak dikirimkan dengan db.root file, sekarang menggunakan file petunjuk root di /usr/share/dns/root.hints . Petunjuk root file digunakan oleh resolver DNS untuk menanyakan server DNS root. Ada 13 grup root DNS server, dari a.root-servers.net ke m.root-servers.net .

Di luar kotak, server BIND9 di Debian menyediakan layanan rekursif untuk host lokal dan klien jaringan lokal saja. Pertanyaan dari luar akan ditolak. Jadi Anda tidak perlu mengedit file konfigurasi. Agar Anda terbiasa dengan konfigurasi BIND 9, saya akan menunjukkan cara mengaktifkan layanan rekursi.

File konfigurasi BIND utama /etc/bind/named.conf sumber pengaturan dari 3 file lain.

  • /etc/bind/named.conf.options
  • /etc/bind/named.conf.local
  • /etc/bind/named.conf.default-zones

Untuk mengaktifkan layanan rekursi, edit file pertama.

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

Di options klausa, tambahkan baris berikut. Ganti alamat IP di allow-recursion pernyataan dengan alamat jaringan lokal Anda sendiri.

 // hide version number from clients for security reasons.
 version "not currently available";

 // optional - BIND default behavior is recursion
 recursion yes;

 // provide recursion service to trusted clients only
 allow-recursion { 127.0.0.1; 192.168.0.0/24; 10.10.10.0/24; };

 // enable the query log
 querylog yes;

Simpan dan tutup file. Kemudian uji sintaks file konfigurasi.

sudo named-checkconf

Jika tes berhasil (ditunjukkan dengan output senyap), maka mulai ulang BIND9.

sudo systemctl restart bind9

Jika Anda memiliki firewall yang berjalan di server BIND, maka Anda perlu membuka port 53 agar klien LAN dapat mengirim kueri DNS. Jika Anda menggunakan firewall UFW, Anda dapat menjalankan perintah berikut.

sudo ufw allow in from 192.168.0.0/24 to any port 53

Ini akan membuka port TCP dan UDP 53 ke jaringan pribadi 192.168.0.0/24. Kemudian dari komputer lain di LAN yang sama, kita dapat menjalankan perintah berikut untuk meng-query A record dari google.com. Ganti 192.168.0.102 dengan alamat IP dari resolver BIND Anda.

dig A google.com @192.168.0.102

Sekarang pada resolver BIND, periksa log kueri dengan perintah berikut.

sudo journalctl -eu bind9

Ini akan menampilkan pesan log terbaru dari unit layanan bind9. Saya dapat menemukan baris berikut di log, yang menunjukkan bahwa kueri DNS untuk catatan A google.com telah diterima dari port 57806 alamat IP 192.168.0.103.

named[1162]: client @0x7f4d2406f0f0 192.168.0.103#57806 (google.com): query: google.com IN A +E(0)K (192.168.0.102)

Mengatur DNS Resolver Default pada Debian 10 Buster Server

Di server BIND, kita perlu mengatur 127.0.0.1 sebagai DNS resolver default. Anda dapat memeriksa resolver DNS saat ini di Debian 10 dengan perintah berikut.

cat /etc/resolv.conf

Contoh keluaran:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#      DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 2001:19f0:300:1704::6
nameserver 108.61.10.10

Paket bind9 pada Debian 10 dikirimkan dengan unit layanan Systemd bind9-resolvconf.service , yang akan membantu kita mengatur BIND sebagai penyelesai DNS default di server Debian. Secara default, layanan ini dinonaktifkan, kita harus memulainya dan mengaktifkan mulai otomatis saat boot.

sudo systemctl start bind9-resolvconf

sudo systemctl enable bind9-resolvconf

Anda sekarang dapat memeriksa konten /etc/resolv.conf lagi. Seperti yang Anda lihat, 127.0.0.1 (BIND) sekarang menjadi DNS resolver default di Debian 10 Buster.

Jika resolver DNS Anda bukan 127.0.0.1, mungkin sistem Anda tidak memiliki resolvconf biner, yang menyebabkan bind9-resolvconf layanan untuk gagal. Anda perlu menginstal resolvconf paket dan mulai ulang layanan.

sudo apt install resolvconf

sudo systemctl restart bind9-resolvconf

Mengatur DNS Resolver Default di Komputer Klien

Sekarang Anda dapat mengonfigurasi komputasi lain di LAN untuk menggunakan server BIND sebagai resolver DNS. Untuk komputer Windows dan MacOS, Anda dapat mencari di Google untuk mengetahui cara menyetel resolver DNS default. Di sini saya akan menunjukkan cara mengatur DNS resolver di komputer desktop Linux. Metode berikut ini berfungsi di semua distro Linux yang menggunakan NetworkManager.

Klik ikon Manajer Jaringan di desktop Linux Anda untuk menemukan Edit connections . (Pada Beberapa distro Linux, Anda perlu mengklik kanan Network Manager.)

Kemudian pilih koneksi saat ini dan klik ikon roda gigi untuk mengedit koneksi ini.

Pilih tab pengaturan IPv4, ubah metode dari Automatic(DHCP) ke Automatic(DHCP) addresses only , yang akan mencegah sistem Ubuntu Anda mendapatkan alamat server DNS dari router Anda. Kemudian tentukan server DNS. Di sini saya memasukkan alamat IP server BIND di LAN saya.

Simpan perubahan Anda. Kemudian mulai ulang NetworkManager agar perubahan diterapkan.

sudo systemctl restart NetworkManager

Setelah Anda terhubung kembali, klik ikon Network Manager lagi dan pilih connection information . Anda dapat melihat bahwa komputer desktop Linux Anda sekarang menggunakan server DNS BIND Anda.

Cara Menonaktifkan IPv6 di BIND

Jika Anda tidak menggunakan IPv6 di jaringan Anda, ada baiknya untuk menonaktifkan IPv6 di BIND, jika tidak, akan ada banyak kesalahan tentang IPv6 di log BIND seperti di bawah ini.

network unreachable resolving 'mirrors.fedoraproject.org/A/IN': 2001:4178:2:1269:dead:beef:cafe:fed5#53
network unreachable resolving 'mirrors.fedoraproject.org/AAAA/IN': 2001:4178:2:1269:dead:beef:cafe:fed5#53
network unreachable resolving 'mirrors.fedoraproject.org/A/IN': 2610:28:3090:3001:dead:beef:cafe:fed5#53
network unreachable resolving 'mirrors.fedoraproject.org/AAAA/IN': 2610:28:3090:3001:dead:beef:cafe:fed5#53

Untuk menonaktifkan IPv6 di BIND di Ubuntu, cukup buka /etc/default/bind9 berkas

sudo nano /etc/default/bind9

Tambahkan -4 ke OPSI.

OPTIONS="-u bind -4"

Simpan dan tutup file. Kemudian restart BIND dan selesai.

sudo systemctl restart bind9

BIND SERVFAIL

Jika resolver BIND Anda tidak dapat menjawab kueri DNS (SERVFAIL), dan Anda melihat baris berikut di log BIND.

dnssec: warning: managed-keys-zone: Unable to fetch DNSKEY set '.': timed out

Mungkin karena server Anda tidak memiliki konektivitas IPv6 yang berfungsi. Ini terjadi pada salah satu server saya. Saya pikir konektivitas IPv6 berfungsi seperti biasa, tetapi tiba-tiba terputus karena alasan yang tidak saya ketahui. Setelah saya menonaktifkan IPv6 di BIND, resolusi DNS berfungsi kembali.

BIND Mulai Ulang Otomatis

Jika karena alasan apa pun proses Bind Anda dimatikan, Anda perlu menjalankan perintah berikut untuk memulai kembali.

sudo systemctl restart bind9

Daripada mengetikkan perintah ini secara manual, kita dapat membuat bind secara otomatis restart dengan mengedit named.service unit layanan sistemd. Untuk mengganti konfigurasi layanan systemd default, kami membuat direktori terpisah.

sudo mkdir -p /etc/systemd/system/bind9.service.d/

Kemudian buat file di bawah direktori ini.

sudo nano /etc/systemd/system/bind9.service.d/restart.conf

Tambahkan baris berikut dalam file, yang akan membuat Bind otomatis restart 5 detik setelah kegagalan terdeteksi.

[Service]
Restart=always
RestartSec=5s

Simpan dan tutup file. Kemudian muat ulang systemd.

sudo systemctl daemon-reload

Untuk memeriksa apakah ini akan berhasil, bunuh Bind dengan:

sudo pkill named

Kemudian centang status Bind. Anda akan menemukan Bind dimulai ulang secara otomatis.

systemctl status bind9

BIND max-cache-size

BIND dapat menyimpan hasil DNS di server untuk mempercepat pencarian DNS untuk klien. BIND mengasumsikan Anda menjalankan resolver DNS khusus, yaitu, tidak ada layanan web lain yang berjalan pada host yang sama, jadi ukuran cache default (didefinisikan oleh max-cache-size ) diatur ke 90% dari total RAM untuk mencapai kinerja terbaik. Anda dapat melihat baris seperti di bawah ini di log BIND (sudo journalctl -eu bind9 ) saat BIND dimulai.

none:100: 'max-cache-size 90%' - setting to 7165MB (out of 7961MB)

Perhatikan bahwa BIND tidak akan langsung menggunakan 90% RAM Anda. Jika permintaan DNS hanya sedikit, BIND hanya menggunakan sedikit RAM, karena hasil DNS yang di-cache tidak banyak. Jika ada banyak permintaan DNS, maka akan menggunakan banyak RAM untuk menyimpan cache DNS.

Jika RAM Anda terbatas, Anda mungkin tidak ingin BIND menggunakan 90% RAM Anda untuk cache. Edit file konfigurasi BIND /etc/bind/named.conf.options .

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

Tambahkan direktif berikut di options ayat. Ubah 50% ke nilai pilihan Anda.

max-cache-size 50%;

Mulai ulang BIND agar perubahan diterapkan.

sudo systemctl restart bind9

Kesimpulan

Saya harap tutorial ini membantu Anda mengatur resolver DNS lokal di Debian 10 Buster dengan BIND9. Seperti biasa, jika menurut Anda postingan ini bermanfaat, berlangganan newsletter gratis kami untuk mendapatkan lebih banyak tips dan trik. Hati-hati


Debian
  1. Cara Mengatur Alamat IP Statis di Debian 10 Buster

  2. Cara Mengatur Server Samba di Debian 10 Buster

  3. Siapkan Server Mail dengan PostfixAdmin di Debian 9

  1. Cara Mengatur Server NFS di Debian 10 Buster

  2. Cara Install Steam dengan Steam Play di Debian 10 Buster

  3. Cara Mengatur RVM di Debian 10 Buster

  1. Cara Mengatur Firewall dengan UFW di Debian 10

  2. Cara Mengatur Firewall dengan UFW di Debian 9

  3. Langkah Instalasi Debian 10 (Buster) dengan Tangkapan Layar