Install Bind9-Admin
Pada kesempatan kali ini saya mencoba membuat Web Interface untuk melakukan simple management pada server DNS dengan memanfaatkan service bind9 dan mysql-server.
Terinspirasi dari powerdns-admin yang memiliki web interface untuk memudahkan user melakukan management DNS server, tetapi pada powerdns saya rasa cukup berat dibandingkan dengan bind9. Oleh karena itu saya kepikiran untuk membuat bind9 Web Interface Simple.
Memang secara tampilan dan fitur masih kalah jauh dengan powerdns-admin, tetapi saya rasa saat ini sudah cukup untuk melakukan konfigurasi bind9 sederhana melalui web interface.
Langsung saja masuk ke cara install.
Cara Install
Noted: Semua command dibawah di eksekusi sebagai root.
Installasi bind9, mariadb-server, dan nginx.
code-box apt install bind9 nginx mariadb-server
Installasi php8.
code-boxapt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2
code-boxecho "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list
code-boxwget -qO - https://packages.sury.org/php/apt.gpg | apt-key add -
code-boxapt update
code-boxapt install php8.2 php8.2-fpm openssl php8.2-bcmath php8.2-curl php8.2-mbstring php8.2-mysql php8.2-tokenizer php8.2-xml php8.2-zip
Installasi composer, karena disini aplikasi bind9-admin menggunakan laravel. Maka kita harus melakukan installasi composer terlebih dahulu.
code-boxphp -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
code-boxphp composer-setup.php
code-boxphp -r "unlink('composer-setup.php');"
code-boxmv composer.phar /usr/local/bin/composer
Clone aplikasi bind9-admin dari github.
code-boxapt install git
code-boxgit clone https://github.com/tkjw92/bind9-admin /var/www/html/bind9-admin
Menyiapkan environtment aplikasi.
code-boxapt install sudo
code-boxnano /etc/sudoers
Tambahkan pada file sudoers seperti di bawah ini.
code-boxwww-data ALL=(ALL) NOPASSWD: /var/www/html/bind9-admin/public/backend/bin/python
Membuat database untuk bind9-admin.
code-boxmysql
code-boxcreate database bind9;
code-boxgrant all privileges on bind9.* to 'admin'@'localhost' identified by 'admin123';
code-boxflush privileges;
Konfigurasi database credential pada aplikasi.
code-boxnano /var/www/html/bind9-admin/.env
code-boxcd /var/www/html/bind9-admin
code-boxcomposer update
code-boxphp artisan key:generate
code-boxchown -R www-data:www-data /var/www/html
Lakukan migrasi pada database.
code-boxphp artisan migrate:fresh --seed
Membuat virtualhost pada nginx untuk melakukan serve bind9-admin.
code-boxnano /etc/nginx/sites-enabled/bind9-admin
code-boxserver {
listen 5300;
server_name _;
root /var/www/html/bind9-admin/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
Restart nginx.
code-boxsystemctl restart nginx
Akses pada web browser.
Silahkan login menggunakan akun default yaitu:
username: admin
password: adminissuperpower
Tampilan dashboard ketika berhasil login.
Sekian untuk cara installasi bind9-admin, silahkan mencoba :)
Jika terdapat bug atau error bisa menghubungi saya jika berkenan, terimakasih.
Posting Komentar