Konfigurasikan BIND sebagai Server DNS di Ubuntu 18.04

Dalam panduan ini, kita akan belajar cara menginstal dan mengkonfigurasi BIND sebagai server DNS di Ubuntu 18.04. BIND (Berkeley Internet Name Domain system), atau bernama, adalah perangkat lunak Sistem Nama Domain yang paling banyak digunakan di Internet.

Konfigurasikan BIND sebagai Server DNS di Ubuntu 18.04

Instal BIND 9 di Ubuntu 18.04

Untuk memulainya, perbarui paket sistem.

apt update apt upgrade

Selanjutnya, instal paket BIND 9 dan Utilitas di Ubuntu 18.04.

apt install bind9 bind9utils

Mengkonfigurasi BIND sebagai Master DNS Server di Ubuntu 18.04

Setelah instalasi paket BIND selesai, lanjutkan untuk mengkonfigurasi BIND sebagai server DNS Master.

Konfigurasikan Daftar Kontrol Akses

Itu acl pernyataan dapat digunakan untuk mendefinisikan grup host yang dapat diizinkan atau ditolak aksesnya ke server nama. Oleh karena itu, buka file konfigurasi opsi bernama dan tentukan blok acl seperti yang ditunjukkan di bawah ini.

vim /etc/bind/named.conf.options
acl "allowed" { 192.168.2.0/24; }; options { directory "/var/cache/bind";...

Ini membuat ACL disebut allowed yang memungkinkan host di jaringan lokal (192.168.2.0/24, dalam demo ini).

Tentukan opsi konfigurasi server global

The  options pernyataan memungkinkan Anda untuk menentukan pilihan konfigurasi server global, set default untuk laporan lainnya, tentukan lokasi  named direktori kerja, jenis query diperbolehkan…

... options { directory "/var/cache/bind"; recursion yes; allow-recursion { localhost; allowed; }; listen-on port 53 { localhost; 192.168.2.5; }; allow-query { localhost; allowed; }; allow-transfer { none; }; forwarders { 192.168.2.1; 8.8.8.8; }; dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { none; }; };

Di mana:

  • recursion – Menentukan apakah akan bertindak sebagai server rekursif.
  • allow-recursion – Mendefinisikan host untuk mengizinkan kueri rekursif.
  • listen-on– Menentukan  IPv4 interface jaringan untuk mendengarkan kueri.
  • allow-query – Menentukan host mana yang diizinkan untuk menanyakan server nama untuk catatan sumber daya otoritatif.
  • allow-transfer – Menentukan server sekunder mana yang diizinkan untuk meminta transfer informasi zona. 
  • forwarders – Mendefinisikan satu atau lebih alamat IP dari server nama untuk query.
  • dnssec-validation– Menentukan apakah akan membuktikan bahwa catatan sumber daya adalah otentik melalui DNSSEC. Opsi default adalah  yes.
  • auth-nxdomain – menentukan apakah server harus menjawab secara otoritatif.
  • listen-on-v6– Menentukan  IPv6 interface jaringan untuk mendengarkan kueri. 

Simpan file konfigurasi dan periksa error sintaks dengan menjalankan perintah di bawah ini. Jika tidak ada output, maka sintaksnya benar;

named-checkconf /etc/bind/named.conf.options

Konfigurasi Pernyataan Zona Server DNS

The  zone pernyataan dapat digunakan untuk mendefinisikan karakteristik zona, seperti lokasi file konfigurasi dan zona-spesifik pilihan. Untuk menentukan pernyataan Zona maju dan mundur, lihat di bawah;

vim /etc/bind/named.conf.local
# Zone statement for forward DNS lookup zone "kifarunix-demo.com" IN { type master; file "kifarunix-demo.com"; }; # Zone statement for reverse DNS lookup zone "2.168.192.in-addr.arpa" IN { type master; file "rev-kifarunix-demo.com"; };

Buat File Zona Maju dan Mundur

File zona adalah file teks yang menjelaskan zona DNS. Ini berisi pemetaan antara nama domain dan alamat IP dan catatan sumber daya DNS (RR) lainnya.

  • File zona maju digunakan untuk menerjemahkan nama host menjadi alamat IP
  • File zona terbalik mendefinisikan cara menyelesaikan alamat IP menjadi nama host.

File Zone dapat dibuat di direktori kerja BIND seperti yang didefinisikan dalam konfigurasi pernyataan opsi.

vim /var/cache/bind/kifarunix-demo.com
$TTL 86400 @ IN SOA ns1.kifarunix-demo.com. root.kifarunix-demo.com. ( 2019061401 ; serial 7200 ; refresh after 2 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day ; ; Primary Nameserver IN NS ns1.kifarunix-demo.com. ; ; Define A records (forward lookups) ns1 IN A 192.168.2.5 server01 IN A 192.168.2.100

Buat File Zona Terbalik

vim /var/cache/bind/rev-kifarunix-demo.com
$TTL 86400 @ IN SOA ns1.kifarunix-demo.com. root.kifarunix-demo.com. ( 2019061401 ; serial 7200 ; refresh after 2 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day ; ; Primary nameserver @ IN NS ns1.kifarunix-demo.com. ; PTR records for reverse lookup 5 IN PTR ns1.kifarunix-demo.com. 100 IN PTR server01.kifarunix-demo.com.

Verifikasi Sintaks Konfigurasi Zona

Setelah Anda selesai membuat file zona, jalankan perintah di bawah ini untuk memeriksa error sintaks.

named-checkzone kifarunix-demo.com /var/cache/bind/kifarunix-demo.com zone kifarunix-demo.com/IN: loaded serial 2019061401 OK
named-checkzone 2.168.192.in-addr.arpa /var/cache/bind/rev-kifarunix-demo.com zone 2.168.192.in-addr.arpa/IN: loaded serial 2019061401 OK

Menjalankan BIND

Setelah Anda memastikan bahwa tidak ada error konfigurasi pada file konfigurasi zona Anda, lanjutkan untuk restart dan aktifkan BIND untuk berjalan pada boot sistem.

systemctl restart bind9 systemctl enable bind9

Izinkan BIND di Firewall

Jika UFW sedang berjalan, jalankan perintah di bawah ini untuk mengizinkan BIND melewatinya.

ufw allow Bind9

Menguji BIND

Untuk menguji resolusi BIND pada server DNS itu sendiri, edit file konfigurasi interface dan ubah alamat server nama menjadi IP server DNS seperti yang ditunjukkan di bawah ini;

less /etc/netplan/01-netcfg.yaml
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: no addresses: [192.168.2.5/24] nameservers: addresses: - 192.168.2.5 search: [ kifarunix-demo.com ]

Jalankan perintah di bawah ini untuk menerapkan perubahan interface.

netplan apply

Selanjutnya, periksa resolver DNS sistem.

systemd-resolve --status enp0s3 Link 2 (enp0s3) Current Scopes: DNS LLMNR setting: yes MulticastDNS setting: no DNSSEC setting: no DNSSEC supported: no DNS Servers: 192.168.2.5 DNS Domain: kifarunix-demo.com

Jika Anda dapat mencoba menyelesaikan nama host server DNS, semuanya akan baik-baik saja.

dig ns1.kifarunix-demo.com
; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> ns1.kifarunix-demo.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56448 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;ns1.kifarunix-demo.com.		IN	A ;; ANSWER SECTION: ns1.kifarunix-demo.com.	3750	IN	A	192.168.2.5 ;; Query time: 0 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Sat Jun 15 14:20:12 EAT 2019 ;; MSG SIZE rcvd: 67

Mengkonfigurasi client

Dalam contoh ini, kami menggunakan server Ubuntu 18.04. Oleh karena itu, edit interface yang sama dan tentukan alamat IP server DNS seperti yang ditunjukkan di bawah ini;

less /etc/netplan/01-netcfg.yaml
network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: no addresses: [192.168.2.100/24] nameservers: addresses: - 192.168.2.5 search: [ kifarunix-demo.com ]

Terapkan perubahan dan coba resolusi nama.

; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> server01.kifarunix-demo.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4331 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;server01.kifarunix-demo.com.	IN	A ;; ANSWER SECTION: server01.kifarunix-demo.com. 3201 IN	A	192.168.2.100 ;; Query time: 0 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Sat Jun 15 11:24:36 EAT 2019 ;; MSG SIZE rcvd: 72

Membalikkan pencarian DNS pada Client

dig -x 192.168.2.100
; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> -x 192.168.2.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2338 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;100.2.168.192.in-addr.arpa.	IN	PTR ;; ANSWER SECTION: 100.2.168.192.in-addr.arpa. 86400 IN	PTR	server01.kifarunix-demo.com. ;; Query time: 3 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Sat Jun 15 11:26:32 EAT 2019 ;; MSG SIZE rcvd: 96
dig -x 192.168.2.5
; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> -x 192.168.2.5 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22470 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;5.2.168.192.in-addr.arpa.	IN	PTR ;; ANSWER SECTION: 5.2.168.192.in-addr.arpa. 86400	IN	PTR	ns1.kifarunix-demo.com. ;; Query time: 2 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Sat Jun 15 11:28:01 EAT 2019 ;; MSG SIZE rcvd: 89

Dan di sana Anda pergi. Anda telah berhasil menginstal dan mengkonfigurasi BIND sebagai server DNS di Ubuntu 18.04. Dalam tutorial berikutnya, kita akan belajar cara membuat server DNS budak di Ubuntu 18.04.

Ingin mengatur BIND sebagai server DNS di CentOS 7? periksa tautan di bawah ini.

Cara Setup M aster-Slave DNS Server menggunakan BIND di CentOS 7