Konfigurasi DNS Server (Master Zone, Slave Zone, RPZ Zone) di RedHat
Apa Itu DNS?
DNS atau Domain Name System adalah sistem penamaan desentrelisasi dan hirarkis untuk komputer ataupun sumber daya lainnya yang terhubung internet. Sederhananya DNS ini menterjemahkan nama domain ke alamat IP.
Saya akan sedikit memberikan gambaran mengenai cara kerja dns, pertama dari komputer kita ingin mengakses domain melalui browser kemudian web server akan meresponnya dan meminta jawaban dalam bentuk domain ke server dns, dns server kemudian memberikan jawabannya berupa alamat ip ke web server dan web server menampilkanhasilnya ke client.
Jenis - Jenis DNS
- Master (Primary), pemegang daftar lengkap dari suatu domain yang dia miliki dan dia kelola.
- Cache, tidak seperti master, cache tidak memiliki daftar host dari domain tertentu. Tetapi cache menyimpan jawaban yang ditemukan dari master di cache.
- Slave (Secondary), backup dari master ibaratnya seperti salinan namun perlu ijin untuk mentransfer daftar host suatu domain tersebut ke master. Slave berfungsi jika Master mengalami down atau dead link sehingga mampu mengcovernya.
DNS ada dimana?
DNS merupakan hal yang penting keberadaannya di server, kita perlu mensetup dns di server agar dapat memberikan layanan untuk menterjemahkan nama domain ke ip address dan sebaliknya dari ip address ke nama domain. Jadi sudah tidak asing lagi jika dns berada di server. Selain di server, dns juga terdapat di router - router berbagai vendor.
Kenapa DNS itu penting?
Saya ambil contoh jika seandainya dns tidak ada, kita ingin mengakses facebook hanya saja perlu mengetahui alamat ip dari facebook yaitu 31.13.66.35 untuk satu alamat ip saja terkadang lupa, dan dalam waktu bersamaan kemungkinan kita perlu mengakses beberapa situs. Bukankah itu cukup merepotkan? Nah. dengan adanya dns ini semua pekerjaan tersebut dimudahkan, sehingga untuk mengakses suatu situs kita hanya mengetikkan nama domain saja seperti facebook kita bisa mengaksesnya dengan menulis facebook.com .
Komponen utama di DNS
Terdapat 3 pelaku utama
- DNS Resolver, dimulai dari client yang meminta nama domain berupa program dari komputer pengguna.
- Recursive DNS Server, mencari - cari di dns dan merespon permintaan dari resolver mengembalikan jawabannya serta meminta jawabannya dari authoritator
- Authoritative DNS Server, memberikan jawaban yang diminta recursor.
Jenis - Jenis Record DNS
DNS Record adalah informasi yang disimpan dan diberikan di sistem DNS Server, ada beberapa seperti :
- A Record, menyimpan informasi tentang hostname dan hubungannya dengan ipv4
- AAA Record, menyimpan informasi tentang hostname dan hubungannya dengan ipv6
- MX Record, merekam server SMTP untuk bisa saling bertukar pesan di dalam domain
- NS Record, merupakan server yang memiliki database domain name dan IP Address
- CERT Record, menyimpan informasi seperti certificat security dan encripsi
- TXT Record, menyebarkan data yang hanya dapat terbaca oleh komputer
- CName, dimanfaatkan untuk membuat samaran dari domain atau subdomain yang sudah dimiliki
- PTR Record, memberikan izin kepada Domain Name System resolver untuk menampilkan hostname dan menyediakan informasi IP address.
- SRV Record, menyimpan informasi yang berhubungan dengan lokasi permintaan klien
- SOA Record, bagian yang muncul di dokumen Domain Name System zone. SOA record juga merujuk kepada informasi lengkap serta authoritative name server sebuah domain
Top Level Domain (TLD)
Kita sering melihat di website - website tertentu di akhir suatu domain terdapat .com, .go.id, .net, .care kira - kira itu apa? itu adalah top level domain atau disingkat tld memiliki peranan yang sangat penting pada suatu domain. TLD merupakan ekstensi dari suatu domain. Ada beberapa jenis TLD seperti sebagai berikut :
- Generic Top Level Domain (gTLD), Jenis ini umum digunakan oleh berbagai e-commers dan publik
- .com
- .org
- .net
- .io
- .info
- Country Code Top Level Domain (ccTLD), dipakai untuk mewakili negara seperti
- .id
- .jp
- .uk
- .us
- .eu
- Sponsored Top Level Domain (sTLD), dipakai untuk organisasi atau agensi swasta
- .edu
- .job
- .gov
- .post
DNS Server
Tadi saya sedikit membahas mengenai dns, dan kali ini saya membahas mengenai DNS Server, apa sih dns server? bukannya sama aja yah ? kan dns itu domain name server? nah, agar tidak ada kekeliruan maka disini saya bahas. DNS Server merupakan penyedia atau yang memberikan layanan DNS pada client atau yang minta, DNS yang saya maksud ialah yang saya bahas tadi di awal, jadi dns layanannya dan yang memberikannya itu DNS Server, kurang lebih seperti itu. Dan sekaligus DNS Server itu juga yang menjalankan layanan tersebut.
Pengertian DNS Master Zone
Zona utama (Master/Primary), kontennya berupa salinan baca/tulis dari data zona. Mungkin hanya ada satu zona Master di satu server DNS dalam satu waktu. Semua DNS Record yang ditambahkan secara manual atau otomatis, ditulis di zona utama server DNS ini.
Pengertian DNS Slave Zone
Zona cadangan (Slave/Secondary).yang memegang salinan file zona utama. Kita dapa menggunakannya untuk kinerja yang lebih baik, untuk menyembunyikan Zona Utama , untuk cadangan dan redundansi.
Pengertian RPZ
Response Police Zoneatau RPZ, merupakan metode yang memungkinkan administrator server nama untuk melapisi informasi khusus di atas DNS global untuk memberikan tanggapan alternatif terhadap kueri. Dengan kata lain RPZ cara kerjanya sama seperti firewall yang memblocking, whitelist , and blacklist.
Konfigurasi DNS Server
Disini saya memiliki 2 server yang akan saya konfigurasi, di server 1 sebagai dns master zone ditambah rpz zone dan di server 2 sebagai dns slave zone.
Konfigurasi server 1
Pertama - tama saya menginstall paket bind dengan menggunakan perintah seperti berikut :
[root@server1 ~]# yum -y install bind
Kemudian setelah paket bind terinstall saya mengkonfigurasi file yang lokasinya di direktori "/etc/named.conf" dengan menggunakan text editor.
// 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.
//
options {
listen-on port 53 {172.23.1.121;};
#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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { any; };
allow-transfer { 172.23.2.210; };
/*
- 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;
response-policy { zone"rpz.zone"; };
dnssec-enable yes;
dnssec-validation yes;
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
/* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
include "/etc/crypto-policies/back-ends/bind.config";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
Lalu di akhir file konfigurasi menambahkan zone seperti berikut :
zone "zak.net" IN {
type master;
file "zak.dns.db";
notify yes;
also-notify {172.23.2.210;};
};
zone "1.23.172.in-addr.arpa" IN {
type master;
file "zak.ip.db";
notify yes;
also-notify {172.23.2.210;};
};
zone "rpz.zone" {
type master;
file "/var/named/rpz.zone";
notify yes;
also-notify {172.23.2.210;};
};
Kemudian saya buat configurasi dns zone master yang forward lokasinya berada di direktori /var/named/
$TTL 8640
@ IN SOA zak.net. root.zak.net. (
2009061301 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
@ IN NS ns.zak.net.
@ IN NS ns2.zak.net.
@ IN A 172.23.1.121
ns IN A 172.23.1.121
ns2 IN A 172.23.2.210
www IN CNAME ns.zak.net.
Setelah itu buat yang reversenya dan lokasinya sama
$TTL 8640
@ IN SOA uno.net. root.uno.net. (
2009061301 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
@ IN NS ns.zak.net.
@ IN NS ns2.zak.net.
121 IN PTR ns.zak.net.
210 IN PTR ns2.zak.net.
210 IN PTR www.zak.net.
Tambahkan firewall service dns
[root@server1 ~]# firewall-cmd --permanent --add-service=dns
[root@server1 ~]# firewall-cmd --reload
Mengganti nameserver di direktori /etc/resolv.conf dengan :
nameserver 172.23.1.121
search zak.net
Mengganti kepemilikan file
[root@server1 ~]# chown root:named /var/named/zak.dns.db
[root@server1 ~]# chown root:named /var/named/zak.ip.db
Merestart bind
[root@server1 ~]# systemctl restart named
Konfigurasi Server 2
Install bind
[root@server2 ~]# yum -y install bind
Konfigurasi "/etc/named.conf"
//
// 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.
//
listen-on port 53 { 172.23.2.210;};
#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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { 172.23.2.0/20; };
- 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-validation no;
session-keyfile "/run/named/session.key";
include "/etc/crypto-policies/back-ends/bind.config";
};
channel default_debug {
file "data/named.run";
severity dynamic;
};
options {
/*
dnssec-enable yes;
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
/* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
logging {
Konfigurasi zone di akhir file tadi
zone "zak.net" IN {
type slave;
masters {172.23.1.121;};
file "/var/named/slaves/zak.net";
};
type slave;
masters {172.23.1.121;};
file "/var/named/slaves/172.23.1.121.net";
};
zone "2.23.172" IN {
Tambahkan firewall dns service dan restart
[root@server2 ~]# firewall-cmd --permanent --add-service=dns
[root@server2 ~]# firewall-cmd --reload
Kita bisa juga mengecek konfigurasi named dengan menggunakan perintah
[root@server1 ~]# named-checkzone
Dan untuk zone bisa menggunakan perintah
[root@server1 ~]# named-checkzone zak.net /var/named/zak.dns.db
[root@server1 ~]# named-checkzone 172.23.1.121 /var/named/zak.ip.db
Cek Konfigurasi
Kita bisa mengecek hasilnya dengan perintah nslookup, kita akan mengetesnya dari server2
Ini kondisi dimana nslookup dicek ketika master statusnya aktif
[root@server2 ~]# nslookup zak.net
Server: 172.23.1.121
Address: 172.23.1.121#53
Name: zak.net
Address: 172.23.1.121
Dan ini kondisi dimana nslookup dicek ketika master statusnya mati
Server: 172.23.2.210
Address: 172.23.2.210#53
Name: zak.net
Address: 172.23.1.121
Nslookup cek cname maka statusnya seperti
[root@server1 ~]# nslookup www.zak.net
Server: 172.23.1.121
Address: 172.23.1.121#53
www.zak.net canonical name = ns.zak.net.
Name: ns.zak.net
Address: 172.23.1.121
Nslookup cek rpz, untuk rpz bisa menggunankan cara lain diceknya seperti curl
[root@server1 ~]# nslookup www.youtube.com
Server: 172.23.1.121
Address: 172.23.1.121#53
** server can't find www.youtube.com: NXDOMAIN
[root@server1 ~]# nslookup lipi.go.id
Server: 172.23.1.121
Address: 172.23.1.121#53
Non-authoritative answer:
Name: lipi.go.id
Address: 172.23.1.121
** server can't find lipi.go.id: SERVFAIL
Curl[root@server1 ~]# curl www.youtube.com
curl: (6) Could not resolve host: www.youtube.com
[root@server1 ~]# curl lipi.go.id
<html>
<body>
contoh webserver yang diredirect
</html>
Komentar
Posting Komentar