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).
- 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.
- Jenis-Jenis Server DNS
Dalam hierarki DNS, terdapat dua jenis server utama:
- 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.
- 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.
- 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:
- 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 |
- 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 |
- 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 |
- 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 |
- 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:
- 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 |
- 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 |
- 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 |
- Konfigurasi domain dan subdomain dengan PowerAdmin
- 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 |
- 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. |
- 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 |
- 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.
- Konfigurasi Master DNS (ns1) menggunakan PowerAdmin
Pada master dns kita perlu menambahkan konfigurasi untuk menyambungkan ke slave dns.
- 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.
- 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