Konfigurasi PDNS Pada Ubuntu

Dibalik kemudahan akses informasi yang kita rasakan, terdapat sistem canggih yang bekerja tanpa henti untuk menghubungkan kita dengan berbagai situs web. Salah satu komponen penting dalam sistem ini adalah Domain Name System (DNS).

  1. Apa Itu DNS?

Bayangkan internet sebagai sebuah kota besar dengan jutaan penduduk. Setiap penduduk memiliki alamat rumah yang unik, namun tidak semua orang hafal alamat satu sama lain. Di sinilah peran DNS sebagai buku telepon internet. DNS menghubungkan nama domain yang mudah diingat manusia (seperti https://bayhaqqyy.my.id dengan alamat IP yang rumit dipahami komputer (seperti 202.65.116.13).

Ketika kita mengetikkan nama domain di browser, DNS bekerja di balik layar untuk

menerjemahkannya menjadi alamat IP yang tepat. Tanpa DNS, kita harus menghafal deretan angka rumit untuk mengakses situs web yang diinginkan. Proses ini memakan waktu dan rentan terhadap kesalahan.

  1. Jenis-Jenis Server DNS

Dalam hierarki DNS, terdapat dua jenis server utama:

  1. DNS Authoritative: Server ini memiliki informasi otoritas tentang zona DNS tertentu, seperti nama domain dan alamat IP yang terkait. Server ini bertanggung jawab untuk memberikan informasi DNS yang akurat dan terupdate.

Contoh:

Jika pada recursion kita yes maka dns yang kita setting itu merupakan DNS

Authoritative, dns akan menerjemahkan juga domain yang bukan dari kita setting.

  1. DNS Non-Authoritative: Server ini tidak memiliki informasi otoritas tentang zona DNS tertentu, melainkan mengandalkan informasi dari server DNS authoritative. Server ini berfungsi sebagai perantara, meneruskan permintaan DNS ke server authoritative yang sesuai.

Contoh:

Jika menu recursion kita nonaktifkan maka dns hanya menerjemahkan domain yang kita setting, dan untuk domain luar tidak akan diterjemahkan.

  1. Mengkonfigurasi DNS dan SubDomain dengan PowerDNS Ubuntu 22

PowerDNS adalah sebuah perangkat lunak atau software yang berfungsi sebagai DNS (Domain Name System) server yang dapat digunakan untuk memproses query DNS dengan cepat dan efisien. Untuk mengkonfigurasi DNS dengan PowerDNS di Ubuntu22, ikuti

langkah-langkah berikut:

  1. Instalasi mariadb:

Gunakan apt untuk menginstal mariadb dan paket dependensi yang diperlukan:

Sudo apt update
Sudo apt install software-properties-common gnupg2 -y
Sudo apt-key adv –fetch-keys ‘https://mariadb.org/mariadb_release_signing_key.asc’
Sudo apt install mariadb-server -y
  1. Buat database di mariadb untuk membuat database dan user PowerDNS:

Masuk ke mariadb menggunakan mysql -u root lalu buat database dan user, setelah itu berikan akses root ke user sekaligus flush privileges.

Mysql -u root
Create database powerdnsgrant all privileges on powerdns.* to powerdns@localhost identified by ‘elhaqy123’; flush privileges;show databases;
Kita cek terlebih dahulu apakah database sudah terbuat atau belum, jika sudah terbuatlanjut ubah name server di /etc/resolv.con
Vim /etc/resolv.conf
  1. Install dan konfigurasi PowerDNS

Setelah kita membuat database di mariadb, selanjutnya kita install PowerDNS lalu konfigurasi:

Sudo apt install pdns-server pdns-backend-mysql -y
mysql -u poweradmin -pelhaqy123 -D powerdns < /usr/share/pdns-backend-mysql/schema/schema.mysql.sql

Setelah itu kita buat konfigurasi di powerdns agar bisa terkoneksi antara powerdns dengan database kita yang ada di mariadb

vim /etc/powerdns/pdns.d/pdns.local.gmysql.conf
Konfigurasi file tersebut sesuai dengan konfigurasi dimariadb agar bisa terkoneksi
  1. Memulai Layanan powerdns:

Gunakan perintah systemctl untuk merestart powerdns agar konfigurasi kita terbaca, jika tidak maka akan tetap menggunakan konfigurasi sebelumya:

sudo systemctl restart pdns
sudo systemctl status pdns
  1. Install PowerAdmin

Jika kita sudah mengkonfiguasi database mariadb dan powerdns maka selanjutnya kita

install poweradmin, jadi Poweradmin adalah antarmuka pengguna grafis berbasis web untuk berinteraksi dengan PowerDNS, kita bisa lebih mudah untuk mengkonfigurasi dns kita karena menggunakan GUI, ikuti langkah-langkah berikut:

  1. Sebelum menginstall poweradmin kita perlu install service dan dependcies yang diperlukan:
apt install -y wget apache2 gettext libapache2-mod-php php php-commonphp-curl php-dev php-gd php-pear php-imap php-mysql php-xmlrpc php-intl
pear install DB
systemctl restart apache2.service
  1. Setelah itu ita clone repository poweradmin dari github dan extrak kemudian pindah folder ke /var/www/html/poweradmin, setelah itu kita ubah kepemilikan folder poweradmin ke www-data
wgethttps://github.com/poweradmin/poweradmin/archive/refs/tags/v3.4.1.tar.gz
tar xvzf v3.4.1.tar.gz
mv poweradmin-3.4.1 /var/www/html/poweradmin
chown -R www-data:www-data /var/www/html/poweradmin/
Setelah itu kita bisa cek apakah kepemilikannya sudah berganti atau belum, jikasudah kita bisa konfigurasi poweradminnya
  1. Konfigurasi PowerAdmin

Buka browser kalian dan search http://ip/poweradmin/install

http://172.23.1.51/poweradmin/install/
Dibagian ini kita pilih bahasa yang akan digunakan, kita bisa memilih bahasainggris, lalu klik Go to Step 2
Dibagian ini hanya memberi tahu jika ingin menginstall harus membuat databaseterlebih dahulu, karena kita sudah kita bisa langsung klick Go to Step 3
Masukkan username dan password yang sudah dibuat di mariadbMasukkan database dengan database yang kita telah buat dimariadbUntuk password poweradmin kita bisa bebas dan untuk user deafultnya yaitu “admin”, setelah itu klik Go to Step 4
Masukkan username dan password bebas sesuai kebutuhanMasukkan hostmaster dengan domain yang akan kita gunakanMasukan primari second dan second bisa masukkan untuk keperluan record dan nanti kita bisa gunakan untuk master dns dan slave dns
Pada step ini hanya memberitahu untuk membuat user dan memberikan aksesroot pada user, karena sebelumnya sudah kita bisa langsung klik Go to Step 6
Dibagian ini kita salin konfigurasinya lalu kita pastekan ke dalam/var/www/html/poweradmin/inc/config.inc.php
Contohnya seperti diatas, jika sudah kita bisa klik Go to Step 7
Dibagian ini memberitahu, untuk proses konfigurasi kita telah selesai dan kitadisuruh mengkahpus folder install di /var/www/html/poweradmin/install, jika tidak dihapus maka akan error, jika sudah dihapus kita blisa klik Poweradmin
Masukkan username default “admin” dan password seperti yang telah kita buat distep ke 2
Seperti itulah tampilan awal dari poweradmin, setelah itu kita bisa membuat dnsdengan poweradmin
  1. Konfigurasi domain dan subdomain dengan PowerAdmin
    1. Langkah awal untuk membuat DNS kita perlu membuat forward zone terlebih dahulu setelah itu kita buat reverse zone:
Klik menu list zone pda poweradmin
Lalu klik add master zone

Buat zone name sesuai dengan domain yang akan dibuat, jika sudah klik addzone, dan klik edit
Pertama kita buuat ns(name server) untuk mengidentifikasi recordnya
Setelah itu kita buat A record
Jika sudah buat A record, kita bisa buat sub domain agar ip kita bisa membuatlebih dari 1 website
Jika kita sudah membuat semua record, kita cek recordnya apakah sudahmasuk kedalam list atau belum
Nah, kita bisa liat bahwa semua record kita sudah masuk, selanjutnya kita buatreverse zone
Klik menu list zone pada poweradmin
Lalu klik add master zone dan buat
Buat zone name dengan ip terbalik, karena ip saya 172.23.1.51 maka ditulis1.23.172, jika sudah klik add zone, dan klik edit
Pertama kita buat ns(name server) dulu untuk menghubungkan ke dalam domain, jika sudah kita buat PTR record
Bagian name kita masukkan bit ip terakhir, karena ip saya 172.23.1.51 makamasukkan 51, jika sudah kita cek hasil recordnya

Nah, kita bisa liat bahwa list recordnya sudah masuk, selanjutnya kita lakukanpengujian di server kita
  1. Pengujian dns

Seteleah kita mengkonfigurasi dns maka kita perlu cek degan melakukan pengujian, tujuannya agar kita bisa tau apakah konfigurasi kita sudah benar atau belum

nslookup bayhaqqyy.comnslookup games.bayhaqqyy.com
nah pengujiannya berhasil, maka untuk settingan dns kita sudah berjalan.
  1. Membatasi Akses dengan Membuka Hanya Port 53 dan 22

Untuk meningkatkan keamanan server DNS, kita dapat membatasi akses hanya pada port 53 (digunakan untuk komunikasi DNS) dan port 22 (digunakan untuk akses SSH). Hal ini dapat dilakukan dengan ufw dan menambahkan aturan berikut:

sudo ufw enablesudo ufw allow 53/udpsudo ufw allow 22/tcp sudo ufw status
Nah, jika rules port yang kita buat sudah masuk list, maka port sudah berhasil kita setting
  1. Mengatur Master-Slave Domain

Konfigurasi master-slave memungkinkan kita untuk mereplikasi data DNS dari server master ke server slave. Hal ini meningkatkan ketersediaan dan kinerja DNS karena permintaan DNS dapat dilayani oleh server slave ketika server master tidak tersedia.

  • Server Master: Menyimpan data DNS yang otoritatif dan bertanggung jawab untuk pembaruan.
  • Server Slave: Mereplikasi data DNS dari server master dan melayani permintaan DNS ketika server master tidak tersedia.

Untuk mengkonfigurasi master-slave domain, Kita perlu membuat file zona yang identik di server master dan slave.

  1. Konfigurasi Master DNS (ns1) menggunakan PowerAdmin

Pada master dns kita perlu menambahkan konfigurasi untuk menyambungkan ke slave dns.

  1. Masuk ke poweradmin lalu tambahkan record di forward zone.
Tambahkan ns2 A record ns2 A record dan NS record
Pertama kita buat ns2 untuk slave servr kita, setelah itu tambahkan juga A record dan CNAME record untuk slave server

Jika sudah dibuat semua, maka cek di list recordnya sudah masuk atau belum
Untuk list dari record seperti diatas, jika sudah membuat di forward zone, selanjutnya kitabuat juga di reverse zone
Buat ns record dan ptr record untuk ns1 dan ns2, arahkan ke ip masing-masing
Buat masing masing untuk ns1 dan ns2Dibagian ptr record gunakan ip master untuk ns1 dan ip slave untuk ns2
Edit untuk bagian pdns.conf
Vim /etc/pdns/pdns.conf
Edit dibagian:allow-axfr-ips= ip slavelocal-address= ipmastermaster=yesuntuk lainnya hanya opsional saja
Systemctl restart pdns

Jika konfigurasi sudah ditambahkan maka kita cek apakah konfigurasi pdns.conf kita sudah berhasil atau belum dengan menggunakan dig dan nslookup, namun sebelumnya kita perlu edit terlebih dahulu di /etc/resolv.conf

Vim /etc/resolv.conf

Kita tambahkan nameserver ip kita agar bisa menerjemahkan domain kita.

nslookup bayhaqqyy.com

Jika statusnya seperti diatas maka konfigurasi untuk master dns sudah berhasil, selanjutnya kita konfigurasi slave servernya.

  1. Konfigurasi Slave Server (ns2) menggunakan powerdns

Jika sudah mengkonfigurasi master dns kita perlu kofigurasi slave server agar kedua server bisa saling terhubung.

Untuk konfigurasi slave harus install pdns, untuk caranya sama seperti diatas, install sampai konfigurasinya, namun tidak perlu install poweradmin, jika sudah maka bisa lanjut untuk

konfigurasi slave servernya

vim /etc/pdns/pdns.conf
Dibagian ini yang dikonfigurasi:allow-dnsupdate-from= ip masterallow-notify-from=ip masterlocal-address=ip slavemaster=nosuperslave=yesslave=yesslave-cycle-interval=60 untuk lainnya hanya opsional saja
Systemctl restart pdns
Jika sudah kita masuk ke ke database dan buat tabel supermaster didatabase powerdns
mysql -u root show databases; use powerdns;INSERT INTO pdns.supermasters VALUES (‘172.23.1.51’, ‘ns2.bayhaqqyy.com’, ‘admin’);
Super master ini gunakan untuk menyalin semua perubahan jika pada master dnsmelakukan perubahan, selajutnya kita restart service pdns dan kita cek untuk tabel records.
Systemctl restart pdns
Jika sudah seperti itu maka slave server berhasil menyalin data dari master server,selanjutnya kita cek

Jika kita sudah mengkonfigurasi pada database selanjutnya kita cek menggunakan dig, namun sebelumnya kita setting dulu di /etc/resolv.conf

vim /etc/resolv.conf
Setting name server seperti di master dns, yang membedakan hanya di slave servermenggunakan ip slave server, jika sudah kita cek menggunakan dig
nslookup bayhaqqyy.com

Nah, kita bisa lihat dari statusnya bahwa slave servr sudah terhubung ke dns server, bisa kita lihat dari status dig dan pingnya.

Kesimpulan

DNS merupakan komponen penting dalam infrastruktur internet, dan mengkonfigurasinya dengan benar dapat meningkatkan kinerja dan keamanan situs web Kita. Artikel ini telah memberikan Kita pemahaman yang lebih mendalam tentang DNS dan cara mengkonfigurasinya dengan powerdns di ubuntu22.04. Dengan mengikuti langkah-langkah yang dijelaskan di atas, Kita dapat mengelola DNS server Kita dengan percaya diri dan memastikan situs web Kita selalu dapat diakses oleh pengguna.

Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti, klik disini untuk info lengkap nya

Penulis : Rafli Abdul Bay Haqqy