June 4, 2020

Mawan.my.id

Blog Mawan di DobelHost

Cara Setting Slave DNS

Awal Désémber ini saya lumayan sibuk menyiapkan sebuah sérver untuk digunakan oléh sekitar 1500-an siswa yang mengikuti Penilaian Akhir Seméster Gasal, yang dulu disebut Ujian Seméster atau Ulangan Umum. Di sérver ini dipasang LMS Moodle.  Sistem Operasi yang dipakai adalah CentOS, sedangkan Web Control Panel yang dipilih adalah CWP (CentOS Web Panel) karena selain gratis, fiturnya juga lengkap. Tapi kali ini saya tidak akan membahas tentang bagaimana cara menginstall CentOS, CWP, dan Moodle, tapi saya tertarik tentang bagaimana menginstall Slave DNS.

Mengapa harus ada 2 DNS? Bukankah CWP bisa berfungsi baik hanya dengan 1 DNS? Bahkan kalau pun kita tidak mau memasang DNS sendiri, kita bisa memakai Cloudflare. Alasannya banyak. Misalnya: (1) Server ada di dalam LAN dan sengaja diisolir dari Dunia luar sehingga siswa benar-benar hanya bisa mengakses Moodle tanpa bisa membuka Google. Sebenarnya tidak harus seperti ini juga sih. Dengan setting yang tepat, siswa di kelas atau di lab komputer bisa dibuat tidak bisa membuka internet tapi di waktu yang sama, guru bisa membuka Moodle dari rumah atau dari ruang guru. (2) Alasan berikutnya agar sesuai dengan RFC2182 yang menyarankan agar DNS sekurang-kurangnya 3 buah. Dua juga sudah cukup sih. Tapi kalau bisa jangan satu. (3) Alasan terakhir yaitu agar keren dan dapat pelajaran dari mengoprek komputer.

Oke, cukup kata pengantarnya. Sekarang langsung ke pokok bahasan.

  • Misalkan di server sudah terinstall:
    • CentOS 7.5.1804
    • CWP 0.9.8
    • Moodle. 3.6.1
  • IP Addressnya (agar mudah diingat) misalkan 111.111.111.111.
  • Server ini kita sebut ns1.server.com
  • Ada dua domain yang ditempatkan di sini yaitu domain.com dan domain.net

Lalu kita punya satu komputer “biasa” yang difungsikan sebagai server DNS. Di Server ini terpasang:

  • Ubuntu 18.04.
  • IP Addressnya 222.222.222.222.
  • nama komputer: ns2.server.com

Ikhtisar:
Server 1 = CentOS 7.5 / IP Address 111.111.111.111 / ns1.domain.com.
Server 2 = Ubuntu 18.05 / IP Address: 222.222.222.222 / ns2.domain.com.

Di Server 1 (CentOS).

Nama file: /etc/named.conf

options {
    listen-on port 53 { any; };
    allow-query { any; };
    allow-update { none; };
    allow-transfer { 222.222.222.222; };
    notify yes;
    also-notify { 222.222.222.222; };
    recursion no;
};

zone "domain.com" {
    type master;
    file "/var/named/domain.com.db";
};

zone "domain.net" {
    type master;
    file "/var/named/domain.net.db";
};

Setelah selesai, kita reload BIND:

systemctl reload named

Di Server 2 (Ubuntu).

Install dulu BIND.

apt-get install -y bind9 bind9utils bind9-doc dnsutils

Kemudian edit dua file berikut ini:

Nama file: /etc/bind/named.conf.options

acl trusted-servers {
    111.111.111.111;
    222.222.222.222;
};

options {
    listen-on port 53 { any; };
    allow-query { any; };
    allow-transfer { trusted-servers; };
    recursion no;
};

Nama file: /etc/bind/named.conf.local

masters ns1 { 111.111.111.111; };

zone "domain.com" IN {
    type slave;
    file "/var/cache/bind/fwd.domain.com.db";
    masters { ns1; };
};

zone "domain.net" IN {
    type slave;
    file "/var/cache/bind/fwd.domain.net.db";
    masters { ns1; };
};

zone "222.222.222.in-addr.arpa" IN {
    type slave;
    file "/var/cache/bind/rev.domain.com.db";
    masters { ns1; };
};

Setelah selesai diketik, jangan lupe me-reload BIND.

systemctl reload bind9

Catatan

  • allow-update { none; } untuk DNS Master.
  • Allow-query harus “any”. Bila tidak, maka public akan melihat bahwa DNS server “not responding”.
  • Tambahkan Recursion “no”, agar DNS kita tidak menjadi sasaran serangan DNS amplification. BIND sampai versi 9.4.1 defaultnya adalah “yes”.
  • Bila slave DNS masih not responding, coba tambahkan listen-on port 53 { any; } dan untuk sementara non-aktif-kan firewall, baik di server master maupun di server slave.

Bonus

Misalkan domain.com sudah dipasangi SSL sehingga bisa dibuka menggunakan alamat https://domain.com, tapi ketika kita akan masuk ke CWP di alamat https://domain.com:2031 maka sertifikatnya dianggap tidak valid lalu muncul tanda seru kuning.

Bagaimana cara memperbaikinya? Gampang.

Edit file cwpsrv.conf, Kemudian ubah hostname.crt menjadi domain.com.cert dan hostname.key menjadi domain.com.key seperti di bawah ini:

Nama file: /usr/local/cwpsrv/conf/cwpsrv.conf

server {
    listen       2031;
    server_name  localhost;

    ssl                 on;
    ssl_session_timeout 90m;

    # ssl_certificate     /etc/pki/tls/certs/hostname.crt;
    ssl_certificate       /etc/pki/tls/certs/domain.com.cert;

    # ssl_certificate_key /etc/pki/tls/private/hostname.key;
    ssl_certificate_key   /etc/pki/tls/private/domain.com.key;

Setelah itu jangan lupa re-start web server.