GNU/Linux >> Belajar Linux >  >> Ubuntu

Instal phpMyAdmin Dengan LEMP Stack Di Ubuntu 20.04 LTS

Kita sudah tahu cara menginstal phpMyAdmin dengan tumpukan LAMP di Ubuntu 20.04 . Hari ini, mari kita lihat cara menginstal phpMyAdmin dengan LEMP stack di Ubuntu 20.04 edisi LTS. Dan kemudian kita juga akan membahas beberapa praktik keamanan yang akan membantu mengamankan phpmyadmin dari ancaman umum. Pertama, pastikan Anda telah menyiapkan tumpukan LEMP di Ubuntu 20.04 seperti yang dijelaskan dalam tautan berikut.

  • Instal Nginx, MySQL, PHP (LEMP Stack) Di Ubuntu 20.04 LTS

Setelah menginstal LEMP stack, instal dan amankan phpMyAdmin seperti yang dijelaskan di bagian berikut.

Instal phpMyAdmin Dengan LEMP Stack Di Ubuntu 20.04 LTS

Jalankan perintah berikut untuk menginstal phpMyAdmin dari Terminal:

$ sudo apt install phpmyadmin

Di jendela berikutnya, Anda akan diminta untuk memilih server web yang harus dikonfigurasi secara otomatis untuk menjalankan phpMyAdmin. Seperti yang Anda lihat pada tangkapan layar di bawah, Nginx tidak tersedia di daftar server web. Apache dan lighthttpd hanya tercantum di sini. Jadi jangan pilih server web apa pun dan biarkan kosong. Pilih OK dan tekan ENTER untuk melanjutkan:

PhpMyAdmin membutuhkan database yang diinstal dan dikonfigurasi sebelum dapat digunakan. Anda dapat melakukannya dengan dbconfig-command.

Pilih Ya untuk mengkonfigurasi database untuk phpmyadmin dengan dbconfig-common:

Anda perlu memberikan kata sandi untuk phpmyadmin untuk mendaftar ke server database MySQL. Jika kata sandi tidak diberikan, kata sandi acak akan dibuat.

Masukkan kata sandi yang kuat dan tekan ENTER untuk melanjutkan:

Masukkan kembali kata sandi:

Saat menulis panduan ini, ketika saya mencoba mengatur kata sandi untuk phpmyadmin, itu menimbulkan kesalahan berikut:

 An error occurred while installing the database:
mysql said: ERROR 1819 (HY000) at line 1: Your password does not satisfy
 the current policy requirements . Your options are:                                  
* abort - Causes the operation to fail; you will need to downgrade,             
reinstall, reconfigure this package, or otherwise manually intervene          
to continue using it. This will usually also impact your ability to           
install other packages until the installation failure is resolved.            
* retry - Prompts once more with all the configuration questions                
(including ones you may have missed due to the debconf priority               
setting) and makes another attempt at performing the operation.               
* retry (skip questions) - Immediately attempts the operation again,            
skipping all questions. This is normally useful only if you have 
solved the underlying problem since the time the error occurred.              
* ignore - Continues the operation ignoring dbconfig-common errors.             
This will usually leave this package without a functional database.

Kesalahan ini terjadi karena kami telah mengaktifkan VALIDASI SANDI komponen seperti yang dijelaskan di bagian berjudul "2.2 Ubah metode otentikasi untuk pengguna root MySQL" dalam panduan pemasangan tumpukan LEMP yang terlampir di atas.

Untuk memperbaiki masalah ini, Anda perlu menonaktifkan sementara komponen Validasi Kata Sandi dan mengaktifkannya kembali setelah mengatur kata sandi untuk phymyadmin. Klik Oke untuk menutup pesan kesalahan di atas dan pilih "batalkan" untuk membatalkan instalasi phpmyadmin.

Sekarang masuk ke prompt Mysql dengan menjalankan perintah berikut:

$ mysql -u root -p

Dari prompt mysql, setel perintah berikut untuk menonaktifkan plugin Validasi Kata Sandi:

mysql> UNINSTALL COMPONENT "file://component_validate_password";

Harap dicatat bahwa perintah di atas hanya akan menonaktifkan plugin, tetapi tidak menghapusnya. Anda dapat mengaktifkannya nanti. Kemudian ketik "exit" untuk keluar dari prompt MySQL.

mysql> exit

Sekarang coba instal phpmyadmin lagi menggunakan perintah:

$ sudo apt install phpmyadmin

Pilih "Ya" dan tekan ENTER untuk mengkonfigurasi database untuk phpmyadmin dengan dbconfig-common. Kali ini instalasi phpmyadmin akan bekerja tanpa masalah.

Setelah phpmyadmin diinstal, aktifkan kembali plugin Validasi Kata Sandi. Untuk melakukannya, login ke prompt Mysql Anda:

$ mysql -u root -p

Dari prompt mysql, setel perintah berikut untuk menonaktifkan plugin Validasi Kata Sandi:

mysql> INSTALL COMPONENT "file://component_validate_password";

Ketik exit untuk keluar dari perintah mysql.

mysql> exit

Sekarang buat tautan simbolik untuk mengonfigurasi server web Nginx untuk menjalankan phpmyadmin menggunakan perintah:

$ sudo ln -s /usr/share/phpmyadmin/ /var/www/html/phpmyadmin

Perintah ini akan membuat symlink bernama "phpmyadmin" di bawah direktori root Nginx. Symlink ini sebenarnya menunjuk ke direktori /usr/share/phpmyadmin, tempat file sebenarnya disimpan.

Selesai! Kami telah berhasil menginstal PhpMyAdmin dengan tumpukan LEMP.

Mengakses Dasbor phpMyAdmin

Buka browser web Anda dan navigasikan ke "http://IP-Address/phpmyadmin" dari bilah alamat.

Anda akan melihat halaman login phpmyadmin. Masukkan pengguna database dan kata sandinya:

Anda akan senang dengan dasbor phpMyAdmin.

Dari sini, Anda dapat membuat, menghapus, dan mengelola database.

Buat pengguna khusus untuk mengakses dasbor phpMyAdmin

Setelah phpMyAdmin diinstal, pengguna database bernama 'phpmyadmin' akan secara otomatis dibuat dengan kata sandi administratif yang Anda tetapkan selama instalasi. Anda dapat masuk ke dasbor phpmyAdmin menggunakan pengguna 'phpmyadmin' atau root mysql pengguna seperti yang ditunjukkan di atas. Namun, disarankan untuk membuat pengguna khusus untuk mengelola database melalui antarmuka web phpMyAdmin.

Untuk melakukannya, login ke shell mysql menggunakan perintah:

$ mysql -u root -p

Masukkan kata sandi root mysql Anda. Anda sekarang akan berada di shell mysql.

Masukkan perintah berikut untuk membuat pengguna khusus baru untuk phpmyadmin:

mysql> CREATE USER 'phpmyadminuser'@'localhost' IDENTIFIED BY 'Password123#@!';

Di sini, phpmyadmin adalah pengguna baru untuk mengakses dasbor phpmyadmin. Kata sandi untuk phpmyadminuser adalah Password123#@! . Ganti nilai ini dengan nilai Anda sendiri.

Selanjutnya berikan hak yang sesuai untuk 'phpmyadminuser' menggunakan perintah:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadminuser'@'localhost' WITH GRANT OPTION;

Akhirnya keluar dari shell mysql:

mysql> exit

Kami sekarang telah membuat pengguna khusus untuk mengelola database melalui antarmuka web phpmyadmin. Mari kita lanjutkan dan akses dasbor phpmyadmin.

Buka browser web dan navigasikan ke "http://IP-Address/phpayadmin. Masukkan pengguna database yang baru dibuat dan kata sandinya. Selamat! Anda telah masuk dengan pengguna khusus ke dasbor web phpMyAdmin.

phpMyAdmin aman

Bagian ini memberikan beberapa tip untuk mengamankan instalasi PhpMyAdmin. Harap dicatat bahwa langkah-langkah berikut saja tidak dapat melindungi phpMyAdmin 100% aman. Namun, mereka setidaknya akan memperlambat setiap upaya pelaku untuk membobol dashboard phpmyadmin Anda.

Nonaktifkan login root MySQL ke dasbor phpmyadmin

Mengizinkan pengguna root mysql untuk mengakses dasbor phpMyAdmin tidak aman, terutama saat mengelola database melalui jaringan. Inilah sebabnya kami membuat pengguna khusus di bagian sebelumnya. Karena kita sudah memiliki pengguna khusus, kita dapat dengan aman menonaktifkan login root mysql untuk mengakses dashboard phpmyadmin untuk meminimalkan serangan.

Umumnya, phpmyadmin diinstal di bawah /usr/share/phpmyadmin/ direktori dan file konfigurasinya disimpan di /etc/phpmyadmin direktori.

Edit file konfigurasi phpmyadmin:

$ sudo nano /etc/phpmyadmin/config.inc.php

Tambahkan/ubah parameter berikut:

[...]
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['AllowRoot'] = FALSE;
[...]

Simpan dan tutup file.

Mulai ulang server web Nginx menggunakan perintah:

$ sudo systemctl restart nginx

Sekarang coba masuk ke phpmyadmin sebagai pengguna root. Anda akan mendapatkan Akses ditolak pesan kesalahan:

Ubah URL antarmuka web phpmyadmin

Ini adalah taktik paling umum yang diikuti oleh bot untuk mendapatkan akses ke phpmyadmin. Anda dapat mencegahnya dengan mengubah URL menjadi sesuatu yang sulit ditebak. Mengubah URL phpmyadmin akan menghindari bot atau skrip otomatis untuk melakukan pemindaian URL dan serangan brute force.

Ingat kita membuat tautan simbolis yang disebut "phpmyadmin" di bawah direktori root Nginx?

$ ls -l /var/www/html/
total 8
-rw-r--r-- 1 root root 612 Jun  2 07:15 index.nginx-debian.html
-rw-r--r-- 1 root root  20 Jun  2 07:35 info.php
lrwxrwxrwx 1 root root  22 Jun  2 08:14 phpmyadmin -> /usr/share/phpmyadmin/

Di sini, phpmyadmin adalah symlink yang menunjuk ke direktori /usr/share/phpmyadmin.

Kita akan mengubah nama symlink menggunakan perintah:

$ sudo mv /var/www/html/phpmyadmin /var/www/html/ostechnix

Pastikan nama berisi karakter acak dan sangat sulit ditebak.

Mulai sekarang, setiap kali seseorang mencoba mengakses halaman phpmyadmin dengan menavigasi ke http://IP-Address/phpmyadmin URL, dia akan mendapatkan pesan kesalahan berikut:

Karena kami mengubah URL. URL baru untuk phpmyadmin adalah http://IP-Address/ostechnix.

Halaman Login phpMyAdmin yang dilindungi sandi

Kita dapat menambahkan lapisan keamanan ekstra dengan membatasi akses ke halaman login phpmyadmin dengan metode otentikasi HTTP dasar. Artinya - kami mengaktifkan perlindungan kata sandi untuk halaman login phpmyadmin, sehingga pengguna harus memasukkan nama pengguna/kata sandi tambahan sebelum mengakses halaman login phpMyAdmin yang sebenarnya.

Pertama, kita perlu membuat file kata sandi menggunakan htpasswd kegunaan. Utilitas htpasswd adalah bagian dari apache2-utils kemasan. Jadi mari kita instal menggunakan perintah:

$ sudo apt install apache2-utils

Sekarang, buat file kata sandi terenkripsi dengan perintah:

$ sudo htpasswd -c /etc/nginx/.htpasswd ostechnix

Ganti "ostechnix" dengan nama pengguna pilihan Anda. Masukkan kata sandi yang kuat dua kali untuk menghasilkan file kata sandi.

Untuk melihat isi file yang baru dibuat, sue perintah "cat" seperti di bawah ini:

$ cat /etc/nginx/.htpasswd

Anda akan melihat output seperti di bawah ini:

ostechnix:$apr1$Us9YABHL$CMPDIuHaOB2lK/DVIzA2C/

Selanjutnya, kita perlu menyebutkan jalur file kata sandi di atas dalam file konfigurasi default Nginx kita. Jika Anda mengikuti tutorial instalasi LEMP kami yang terlampir di atas, konfigurasi Nginx default seharusnya /etc/nginx/sites-available/default .

Edit file konfigurasi Nginx default:

$ sudo nano /etc/nginx/sites-available/default

Tambahkan baris berikut, di bawah "location" blok:

[...]
location /ostechnix {
                auth_basic "Restricted Zone";
                auth_basic_user_file /etc/nginx/.htpasswd;
        }
[...]

Ingat kita telah mengubah URL phpMyAdmin (http://IP-Address/ostechnix) pada langkah sebelumnya? Itu sebabnya saya menyebutkan nama blok sebagai "ostechnix" di blok di atas. Gantilah dengan milik Anda sendiri. Simpan dan tutup file.

Periksa file konfigurasi Nginx untuk kesalahan sintaks menggunakan perintah:

$ sudo nginx -t

Contoh keluaran:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Jika Anda tidak melihat kesalahan apa pun, mulai ulang layanan nginx untuk menerapkan perubahan.

$ sudo systemctl restart nginx

Sekarang coba akses URL phpMyAdmin Anda dari browser Anda. Anda akan diminta untuk memasukkan nama pengguna dan kata sandi:

Masukkan nama pengguna dan kata sandi yang benar yang akan dibuat sebelumnya menggunakan utilitas "htpassword". Sekarang Anda akan diarahkan ke halaman login phpMyAdmin yang sebenarnya, di mana Anda dapat memasukkan pengguna database dan kata sandinya untuk login ke dasbor web phpMyAdmin.


Ubuntu
  1. Cara Menginstal Nginx dengan PHP dan MySQL (LEMP Stack) di Ubuntu 20.04 LTS

  2. Instal WordPress dengan LEMP Stack di Ubuntu 20.04

  3. Instal phpMyAdmin di Ubuntu 14.10

  1. Cara Menginstal LEMP Stack di Ubuntu 16.04

  2. Instal phpMyAdmin Dengan LAMP Stack Di Ubuntu 18.04 LTS

  3. Instal phpMyAdmin Dengan LAMP Stack Di Ubuntu 20.04 LTS

  1. Instal MEAN.JS Stack Di Ubuntu 18.04 LTS

  2. Instal WordPress dengan LEMP Stack di Ubuntu 20.04

  3. Instal ProjectSend di Ubuntu 20.04 dengan Nginx (LEMP Stack)