Cara Install phpMyadmin dengan Nginx di Ubuntu 18.04
Bagaimana cara install phpMyadmin dengan nginx di ubuntu 18.04 – Menggunakan phpMyadmin untuk berinteraksi dengann perintah MYSQL tentu akan memudahkan banyak pengguna. Meski demikian, menggunakan perangkat lunak seperti phpMyAdmin juga perlu mempertimbangkan keamanan. Hal tersebut dikarenakan phpMyadmin berkerja langsung di server database, ini berhubungan dengan kredensial database.
Pengguna akan dengan mudah melakukan semua perintah quesry SQL ke dalam database. Karena phpMyAdmin adalah aplikasi PHP yang digunakan secara luas, ini sering menjadi sasaran serangan. Oleh karena itu, pada panduan ini kita juga akan membahas mengenai cara mengamankan phpMyadmin. Keamanan terluar yang perlu Anda gunakan adalah SSL. Dengan adanya SSL, semua data yang keluar masuk antar server dan klien akan di enkripsi.
Cara Install phpMyadmin dengan Nginx di Ubuntu 18.04
Pada panduan ini, saya menggunakan spesifikasi server dibawah. Meskipun versi sistem operasi ubuntu berbeda masih tetap bisa menggunakan panduan ini. Hal yang paling penting adalah web service nginx.
Sistem Operasi : Ubuntu 18:04
Web Service : Nginx
PHP : 7.2
Database : MariaDB 10.3
Tambahan saja, bila Anda ingin dengan mudah melakukan manage file website. Silakan melakukan instalasi file manager di server VPS Anda.
Baca Juga : Cara Install FileManager di VPS Ubuntu
Tanpa berlama-lama, mari kita mulai saja instalasi phpMyadmin dengan nginx di ubuntu 18.04 ini.
Langkah 1 – Instalasi phpMyadmin
Hal pertama yang perlu kita lakukan adalah menginstal phpMyAdmin di server LEMP. Mari kita mulai dengan memperbarui paket server VPS dengan menjalankan perintah dibawah ini.
sudo apt update
Selanjutnya lakukan proses instalasi phpMyadmin dengan perintah ini. Jika terdapat konfirmasi saat install pilih “Y” dan Enter.
sudo apt install phpmyadmin
Saat proses instalasi, Anda akan diminta untuk memilih server web ( Apache atau Lighttpd ). Karena menggunakan web server Nginx, maka Anda bisa melewatkan pilohan ini. Tekan tombol “tab” dan kemudian “OK“.
Selanjutnya, Anda akan diminta juga untuk digunakan dbconfig-common, hal ini berfungsi untuk konfigurasi aplikasi database.
Jika terdapat konfirmasi, silakan Anda pilih “Yes“.
Proses selanjutnya adalah membuat tautan ke domain atau subdomain yang digunakan untuk akses phpMyadmin. Misal saja pada panduan ini saya ingin phpMyadmin diakses melalui webbaru.com, sehingga saya tautkan instalasi phpMyadmin ke folder webbaru.com. Jalankan perintah berikut dan sesuaikan dengan folder domain atau subdomain Anda.
sudo ln -s /usr/share/phpmyadmin /var/www/nama-domain.com/phpmyadmin
Dan hasilnya akan seperti dibawah ini ketika menjalankan perintah symbolink diatas.
Proses instalasi phpMyadmin telah selesai, Anda sudah dapat menggunakannya. Kita perlu memberikan keamanan untuk phpMyadmin agar tidak mudah untuk digunakan oleh orang lain.
Langkah 2 – Konfigurasi Keamanan phpMyadmin
Bila Anda menggunakan layanan hosting, mungkin saat akses phpMyadmin akan memanggil url menggunakan nama dari phpMyadmin sendiri. Terkait dengan ini tentu akan membuat keamanan semakin rentan, karena memang kata seperti phpmyadmin, pma, admin, mysql, dan semacamnya sangat umum digunakan.
Dengan mengubah URL antarmuka dari /phpmyadmin menjadi sesuatu yang tidak standar akan membuat skrip otomatis lebih sulit menemukan instalasi phpMyAdmin Anda dan menghindari terjadinya serangan brute-force.
1. Mengubah Url Login phpMyAdmin
Pada instalasi phpMyadmin sebelumnya, kita telah membuat symbolink ke /usr/share/phpmyadmin. Anda bisa melakukan pengecekan dengan menuju ke direktori yang digunakan sebagai symbolink sebelumnya. Jika pada panduan ini saya meletakan symbolink di /var/www/nama-domain.com. Sehingga hanya perlu menuju ke folder tersebut menggunakan perintah dibawah ini.
cd /var/www/nama-domain.com
Kemudian jalankan langsung berikut.
ls -l
Anda akan melihat bahwa terdapat tautan simbolik yang dipanggil phpmyadmin di direktori ini. Anda dapat mengubah nama tautan ini menjadi apa pun yang di inginkan.Silakan Anda mengubah URL akses phpMyAdmin, yang dapat membantu menjaga dari bot yang digunakan untuk brute force.
Penting !!! Sangat disarankan menggunakan subdomain sendiri. Agar tidak menggangu website utama.
Pada panduan ini saya akan mengubah URL login phpMyadmin menjadi “dbase” sehingga perintah yang dijalankan seperti pada screenshot.
sudo mv phpmyadmin nama-url
Cek kembali simbolink yang telah dibuat dengan menjalankan perintah.
ls -l
Silakan cek kembali akses phpMyadmin menggunakan URL yang baru saja dibuat. Jika Anda masih tetap akses menggunakan url yang lama maka akan muncul error 404. Karena saya mengubahnya menjadi dbase, sehingga untuk login phpMyadmin melalui webbaru.com/dbase bukan lagi webbaru.com/phpmyadmin.
2. Nonaktifkan Login Root
Jika saat pertama kali instalasi MYSQL memberikan izin root untuk akses database, maka root juga dapat melakukan akses ke phpMyadmin. Tentu ini akan sangat berbahaya, karena root memiliki hak akses yang sangat luas.
Agar meminimalkan resiko, maka Anda perlu melakukan konfigurasi agar root tidak dapat melakukan pengelolaan database melalui phpMyadmin. Anda perlu membuat file baru config.inc.php untuk menentukan konfigurasi tersendiri.
Konfigurasi phpMyadmin secara default akan terletak pada /etc/phpmyadmin. Oleh karena itu kita akan membuat pengaturan baru di dalam /etc/phpmyadmin/conf.d, nama file tersebut pma_secure.php. Anda dapat membuat dengan nama lainnya.
Gunakan editor yang Anda butuhkan dan jalankan perintah dibawah ini. Bila menggunakan vim/vi silakan tekan huruf i untuk menambahkan file.
sudo vim /etc/phpmyadmin/conf.d/pma_secure.php
File konfigurasi berikut berisi pengaturan yang diperlukan untuk menonaktifkan login tanpa kata sandi (AllowNoPassword diatur ke false) dan login root (AllowRoot diatur ke false).
<?php # PhpMyAdmin Settings # This should be set to a random string of at least 32 chars $cfg['blowfish_secret'] = '3!#32@3sa(+=_4?),5XP_:U%%8\34sdfSdg43yH#{o'; $i=0; $i++; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['AllowNoPassword'] = false; $cfg['Servers'][$i]['AllowRoot'] = false; ?>
Simpan file setelah Anda selesai mengedit dengan menekan esc dan :wq lalu untuk mengonfirmasi perubahan dan ENTER. Perubahan akan diterapkan secara otomatis. Jika Anda memuat ulang halaman login sekarang dan mencoba masuk sebagai root, Anda akan mendapatkan error Access Denied.
Saat ini login menggunakan detail root sudah tidak bisa. Sehingga bila terdapat brute force yang menebak-nebak password root untuk login ke phpMyadmin otomatis akan ditolak.
3. Membuat Autentikasi Gateway
Mengubah url login tidak akan berguna bila serangan sudah ditargetkan, artinya si bot/penyerang sudah mengetahui url login phpMyadmin. Oleh karena itu, Anda membutuhkan keamanan yang lebih baik, yaitu memberikan akses yang terbatas. Jadi untuk akses ke url phpMyadmin perlu Anda batasi, karena bila terbukan akan memudahkan brute-force bagi penyerang untuk menebak kredensial database.
Cara kerjanya cukup sederhana, sebelum pengguna melihat halaman phpMyadmin maka akan diminta untuk melewati prompt otentikasi HTTP terlebih dahulu. Sebagian besar web server, termasuk Nginx, menyediakan kemampuan ini secara bawaan.
Hal pertama yang perlu Anda lakukan adalah membuat kata sandi yang dienkripsi menggunakan fungsi crypt(). Dan pembuatannya menggunakan OpenSSL yang telah terinstall pada server VPS. Gunakan perintah dibawah ini untuk membuat kata sandi autentikasi.
openssl passwd
Anda akan diminta untuk memasukkan dan mengkonfirmasi kata sandi yang ingin Anda gunakan. Dan pastikan simpan enkripsi password yang muncul, karena akan kita gunakan untuk konfigurasi selanjutnya.
Sekarang, buat file otentikasi. Panggil file auth_pass dan menempatkannya di direktori konfigurasi Nginx.
sudo vim /etc/nginx/auth_pass
Masukan username yang ingin digunakan untuk authentication dan password hasil enkripsi menggunakan openssl sebelumnya.
username:password
Simpan dan tutup file setelah Anda selesai.
Sekarang modifikasi pengaturan server block nginx sesuai dengan letak file phpMyadmin berada. Sesuaikan dengan folder Anda saat membuat symbolink tadi.
sudo vim /etc/nginx/sites-available/nama-domain.com
Tambahkan script berikut dibawah settings location 404 atau sesuaikan. Gunakan tanda ^~ pada awal definisi lokasi, hal ini akan memberitahu Nginx untuk mengabaikan lokasi lainnya. Artinya, setiap subdirektori atau file di dalamnya /dbase/ akan cocok dengan aturan ini.
Jadi misal saja Anda menggunakan phpMyadmin untuk domain utama, maka ketika Anda mengakses file website otomatis akan terdownload. Hal ini karena semua akses file PHP dilewatkan ke folder dbase menggunakan ^~ . Sehingga saran utama adalah dengan membuatkan subdomain dengan folder tersendiri untuk phpMyadmin,
Sebenarnya Anda tetap bisa menggunakan domain utama akses phpMyadmin tanpa file website utama terdownload. Yaitu dengan mengganti location ^~ menjadi ~ saja. Namun terkadang keamanan phpMyadmin gateway menjadi kurang aman karena masih bisa di bypass melalui namadomain.com/dbase/index.php.
location ^~ /dbase/ { auth_basic "Admin Login"; auth_basic_user_file /etc/nginx/auth_pass; location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; } }
Pada auth_basic_user_file : ganti dengan lokasi settings password Anda. Location : sesuaikan dengan nama url login phpMyadmin. Untuk versi PHP juga sesuaikan dengan PHP yang Anda install pada server VPS saat ini.
Simpan dan tutup apabila telah selesai.
Selanjutnya cek file serta lakukan restart pada web server nginx. Jalankan perintah dibawah ini satu persatu.
sudo nginx -t
sudo systemctl reload nginx
sudo systemctl restart nginx
Silakan cek kembali akses url phpMyadmin. Gunakan detail user dan password yang telah Anda buat.
Setelah Anda memasukkan kredensial Anda, Anda akan dibawa ke halaman login phpMyAdmin. Mungkin untuk kali in kita hanya akan membahas 3 keamanan saja. Sebenarnya masih Anda jenis keamanan lain seperti mengizikan diakses menggunakan IP tertentu atau menggunakan SSH tunneling.
Demikianlah Cara Install phpMyadmin dengan Nginx di Ubuntu 18.04. Semoga bermanfaat dan dapat membantu Anda. Jangan lupa untuk shared artikel ini kepada teman, kerabat, saudara atau lainnya. Agar mimin novri.web.id lebih semangat dalam membuat panduan-panduan lain. images by freepick