Latihan NulisWisnu Aji Handoko

Setup DNS Server di CentOS – 7

DNS merupakan kependekan dari Domain Name System. DNS server merupakan sebuah server yang berfungsi untuk mentranslasikan hostname atau URL’s kedalam alamat IP. Sebagai contoh ketika kita membuka website dengan url blog.ndrotech.com maka DNS server akan mentranslasikan kedalam IP Address server blog.ndrotech.com. Mengapa perlu ada DNS server dalam sebuah jaringan (Intranet atau Internet) ? Hal ini dikarenakan otak manusia akan sulit sekali mengingat sebuah url website yang menggunakan IP Address, maka diperlukan sebuah server untuk mentranslasikan url yang mudah diingat manusia ke ip address server yang dituju.

Dalam tutorial ini kami akan menjelaskan step by step untuk melakukan instalasi dan konfigurasi DNS server didalam jaringan intranet menggunakan OS CentOS 7.

Alat dan bahan :
Sebelum anda melakukan instalasi dan konfigurasi berikut peralatan dan bahan yang dibutuhkan dalam tutorial ini.

DNS Server
System Operasi : CentOS – 7
IP Address : 192.168.56.102
Hostname : dns.ndrotech.com

Server Testing
System Operasi : CentOS – 7
IP Address : 192.168.56.103
Hostname : webserv.ndrotech.com

Setup DNS Server
Install paket bind9 dalam DNS Server yang telah anda persiapkan.
# yum -y install bind bind-utils

Sebelum melakukan proses konfigurasi sebaiknya anda ubah terlebih dahulu selinux yang statusnya enforcing ke mode permissive agar proses uji coba lebih lancar dan tidak ada kendala. Berikut command untuk mengubah akses selinux dari enforcing ke permissive.

# setenforce 0

1. Konfigurasi DNS Server
Buka file /etc/named.conf menggunakan text editor favorit anda misalkan menggunakan text editor vi. Setelah terbuka tambahkan konfigurasi sesuai dengan tulisan berwarna merah.

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator’s Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html


options {
listen-on port 53 { 127.0.0.1; 192.168.56.102; };
listen-on-v6 port 53 { ::1; };
directory       “/var/named”;
dump-file       “/var/named/data/cache_dump.db”;
statistics-file “/var/named/data/named_stats.txt”;
memstatistics-file “/var/named/data/named_mem_stats.txt”;
recursing-file  “/var/named/data/named.recursing”;
secroots-file   “/var/named/data/named.secroots”;
allow-query     { localhost; 192.168.56.0/24; };
/*

– If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
– If you are building a RECURSIVE (caching) DNS server, you need to enable
recursion.
– If your recursive DNS server has a public IP address, you MUST enable access
control to limit queries to your legitimate users. Failing to do so will
cause your server to become part of large scale DNS amplification
attacks. Implementing BCP38 within your network would greatly
reduce such attack surface
*/
recursion yes;


dnssec-enable yes;
dnssec-validation yes;


/* Path to ISC DLV key */
bindkeys-file “/etc/named.iscdlv.key”;


managed-keys-directory “/var/named/dynamic”;


pid-file “/run/named/named.pid”;
session-keyfile “/run/named/session.key”;
};


logging {
channel default_debug {
file “data/named.run”;
severity dynamic;
};
};


zone “.” IN {
type hint;
file “named.ca”;
};


zone “ndrotech.com” IN {
type master;
file “forward.ndrotech.db”;
};
zone “56.168.192.in-addr.arpa” {
type master;
file “reverse.ndrotech.db”;
};


include “/etc/named.rfc1912.zones”;
include “/etc/named.root.key”;

2. Membuat File Zone
Terdapat dua tipe file zone yang perlu dibuat sesuai dengan nama file yang telah dikonfigurasi didalam file /etc/named.
a. Membuat Forward Zone
Membuat forward.ndrotech.db dalam direktori /var/named.
# vi /var/named/forward.ndrotech.db
$TTL 1D
@       IN SOA  ndrotech.com. root.ndrotech.com. (
0       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
@       IN      NS      ndrotech.com.
@       IN      A       192.168.56.102
dns     IN      A       192.168.56.102
webserv IN      A       192.168.56.103

b. Membuat Reverse Zone
Membuat reverse.ndrotech.db dalam direktori /var/named.
# vi /var/named/reverse.ndrotech.db</span
$TTL 1D
@       IN SOA  ndrotech.com. root.ndrotech.com. (
0       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H )    ; minimum
@       IN      NS      ndrotech.com.
@       IN      A       192.168.56.102
102     IN      PTR     @
102     IN      PTR     dns
103     IN      PTR     webserv

3. Test Konfigurasi DNS Server
a. Test Konfigurasi File
Sebelum ke tahap selanjutnya anda perlu memastikan konfigurasi didalam file /etc/named.conf tidak ada error, kesalahan ketik (typo). Berikut command-nya :

[root@dnsserver named]# named-checkconf /etc/named.conf
[root@dnsserver named]#

Apabila tidak ada error output silahkan anda ke tahap selanjutnya.
b. Test Forward Zone File
Perlu juga untuk melakukan test terhadap file forward zone, barangkali terdapat kesalahan ketik (typo) atau error yang lain. Berikut command-nya :

[root@dnsserver named]# named-checkzone ndrotech.com /var/named/forward.ndrotech.db
zone ndrotech.com/IN: loaded serial 0
OK

Output demikian menandakan tidak ada error dalam konfigurasi forward zone anda.
c. Test Reverse Zone File
Test reverse zone file berikut command-nya :

[root@dnsserver named]# named-checkzone ndrotech.com /var/named/reverse.ndrotech.db
zone ndrotech.com/IN: loaded serial 0
OK

Output demikian menandakan tidak ada error dalam konfigurasi reverse zone anda.

4. Mengubah Permission File Zone
Sebelum masuk ke tahap selanjutnya perlu dilakukan pengubahan hak akses terhadap file zone yang tadi telah dibuat. Berikut command-nya :
# chown root:named /var/named/forward.ndrotech.db
# chown root:named /var/named/reverse.ndrotech.db

5. Restart Service DNS Server
Restart service DNS Server menggunakan command sebagai berikut :
# systemctl restart named

6. Allowing Port Untuk Akses DNS Server
Didalam sistem operasi CentOS – 7 terdapat sebuah firewall untuk mengatur perizinan terhadap suatu services yang running diatasnya. Untuk mengizinkan akses service DNS perlu ditambahkan rule firewall. Berikut rules yang perlu ditambahkan.


firewall-cmd –add-port=53/tcp –permanent
firewall-cmd –add-port=53/udp –permanent
firewall-cmd –reload

7. Testing DNS Server

Sebelum melakukan testing menggunakan command dig atau nslookup, perlu diperhatikan untuk menambahakan konfigurasi nameserver ip_dns_server kedalam file /etc/resolv.conf. Dalam proses percobaan ini perlu ditambahakan konfig nameserver 192.168.56.102 kedalam file /etc/resolv.conf.

ndrotech.com
[root@dnsserver named]# dig ndrotech.com


; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.2 <<>> ndrotech.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22754
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ndrotech.com. IN A
;; ANSWER SECTION:
ndrotech.com. 86400 IN A 192.168.56.102
;; AUTHORITY SECTION:
ndrotech.com. 86400 IN NS ndrotech.com.


;; Query time: 2 msec
;; SERVER: 192.168.56.102#53(192.168.56.102)
;; WHEN: Sen Agu 05 07:21:57 WIB 2019
;; MSG SIZE rcvd: 71

dns.ndrotech.com
[root@dnsserver named]# dig dns.ndrotech.com


; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.2 <<>> dns.ndrotech.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30242
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;dns.ndrotech.com. IN A
;; ANSWER SECTION:
dns.ndrotech.com. 86400 IN A 192.168.56.102
;; AUTHORITY SECTION:
ndrotech.com. 86400 IN NS ndrotech.com.

;; ADDITIONAL SECTION:
ndrotech.com. 86400 IN A 192.168.56.102;; Query time: 1 msec
;; SERVER: 192.168.56.102#53(192.168.56.102)
;; WHEN: Sen Agu 05 07:23:50 WIB 2019
;; MSG SIZE rcvd: 91

webserv.ndrotech.com
[root@dnsserver named]# dig webserv.ndrotech.com


; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.2 <<>> webserv.ndrotech.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28487
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;webserv.ndrotech.com. IN A

;; ANSWER SECTION:
webserv.ndrotech.com. 86400 IN A 192.168.56.103
;; AUTHORITY SECTION:
ndrotech.com. 86400 IN NS ndrotech.com.

;; ADDITIONAL SECTION:
ndrotech.com. 86400 IN A 192.168.56.102

;; Query time: 0 msec
;; SERVER: 192.168.56.102#53(192.168.56.102)
;; WHEN: Sen Agu 05 07:25:09 WIB 2019
;; MSG SIZE rcvd: 95

Demikian tutorial setup DNS Server di sistem Operasi CentOS – 7 dan Selamat DNS Server yang telah anda install siap digunakan.

Comments (1)

  1. Great content! Super high-quality! Keep it up! 🙂

Comment here