GNU/Linux >> Belajar Linux >  >> Cent OS

Instal dan Amankan phpMyAdmin di CentOS 8

phpMyAdmin adalah alat gratis dan sumber terbuka untuk mengelola server MySQL dan MariaDB melalui antarmuka berbasis web. Dengan phpMyAdmin, Anda dapat membuat dan mengelola database dan pengguna, menjalankan pernyataan SQL, mengimpor dan mengekspor data, dan melakukan aktivitas database seperti, membuat, menghapus, tabel, kolom, indeks, izin, dan banyak lagi. phpMyAdmin adalah salah satu alat administrasi yang paling populer dan paling banyak digunakan, terutama untuk layanan hosting web.

Fitur

  • Menyediakan antarmuka web yang sederhana dan ramah pengguna.
  • Impor data dari CSV dan SQL.
  • Mendukung sebagian besar fitur MySQL termasuk, membuat, menyalin, melepas, mengganti nama, melepaskan dan mengubah basis data, tabel, bidang, dan indeks.
  • Memungkinkan Anda mengekspor data ke berbagai format seperti, PDF, CSV, SQL, XML, dan banyak lagi.
  • Mengelola beberapa server.
  • Membuat kueri kompleks menggunakan Query-by-example (QBE).

Dalam tutorial ini, kami akan menunjukkan cara menginstal dan mengamankan phpMyAdmin di server CentOS 8.

Persyaratan

  • Server yang menjalankan CentOS 8.
  • Kata sandi root dikonfigurasi di server.

Instal Server LAMP

Pertama, Anda perlu menginstal Apache, MariaDB, PHP dan library PHP lainnya ke server Anda. Anda dapat menginstal semuanya dengan perintah berikut:

dnf install httpd mariadb-server php php-pdo php-pecl-zip php-json php-common php-fpm php-mbstring php-cli php-mysqlnd php-json php-mbstring wget unzip

Setelah semua paket terinstal, mulai layanan Apache dan MariaDB dan aktifkan untuk memulai setelah sistem reboot dengan perintah berikut:

systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Konfigurasi MariaDB

Secara default, MariaDB tidak diamankan. Jadi, Anda harus mengamankannya terlebih dahulu. Anda dapat melakukannya dengan menjalankan skrip mysql_secure_installation:

mysql_secure_installation

Jawab semua pertanyaan seperti yang ditunjukkan di bawah ini:

Set root password? [Y/n] Y
New password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Setelah Anda selesai, Anda akan melihat output berikut:

 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Pada titik ini, instalasi MariaDB Anda aman.

Instal phpMyAdmin

Secara default, phpMyAdmin tidak tersedia di repositori default CentOS 8. Jadi, Anda perlu mengunduh phpMyAdmin versi terbaru dari situs resminya. Anda dapat mengunduhnya dengan perintah berikut:

wget https://files.phpmyadmin.net/phpMyAdmin/4.9.2/phpMyAdmin-4.9.2-all-languages.zip

Setelah diunduh, unzip file yang diunduh dengan perintah berikut:

unzip phpMyAdmin-4.9.2-all-languages.zip

Selanjutnya, pindahkan konten yang diekstrak ke direktori /usr/share seperti yang ditunjukkan di bawah ini:

mv phpMyAdmin-4.9.2-all-languages /usr/share/phpmyadmin

Selanjutnya, ubah direktori menjadi /usr/share/phpmyadmin dan ganti nama file config.sample.inc.php:

cd /usr/share/phpmyadmin
mv config.sample.inc.php config.inc.php

Selanjutnya, buka file dengan editor teks favorit Anda seperti yang ditunjukkan di bawah ini:

nano config.inc.php

Ubah baris berikut:

$cfg['blowfish_secret'] = 'your-secret-password';

Simpan dan tutup file setelah Anda selesai. Kemudian, impor create_tables.sql dengan perintah berikut:

mysql < /usr/share/phpmyadmin/sql/create_tables.sql -u root -p

Berikan kata sandi root Anda saat diminta untuk mengimpor tabel.

Selanjutnya, buat direktori tmp untuk phpmyadmin dan berikan izin yang sesuai:

mkdir /usr/share/phpmyadmin/tmp
chown -R apache:apache /usr/share/phpmyadmin
chmod 777 /usr/share/phpmyadmin/tmp

Konfigurasi Apache untuk phpMyAdmin

Selanjutnya, Anda perlu membuat file konfigurasi virtual host Apache untuk phpMyAdmin. Anda dapat membuatnya dengan perintah berikut:

nano /etc/httpd/conf.d/phpmyadmin.conf

Tambahkan baris berikut:

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny> 
      Require all granted
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

<Directory /usr/share/phpmyadmin/setup/>
   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require all granted
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

Simpan dan tutup file setelah Anda selesai. Kemudian, restart layanan Apache dengan perintah berikut:

systemctl restart httpd

Anda dapat memeriksa status Apache dengan perintah berikut:

systemctl status httpd

Anda akan melihat output berikut:

? httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           ??php-fpm.conf
   Active: active (running) since Wed 2019-12-18 01:07:52 EST; 6s ago
     Docs: man:httpd.service(8)
 Main PID: 5636 (httpd)
   Status: "Started, listening on: port 80"
    Tasks: 213 (limit: 25044)
   Memory: 28.7M
   CGroup: /system.slice/httpd.service
           ??5636 /usr/sbin/httpd -DFOREGROUND
           ??5639 /usr/sbin/httpd -DFOREGROUND
           ??5640 /usr/sbin/httpd -DFOREGROUND
           ??5641 /usr/sbin/httpd -DFOREGROUND
           ??5642 /usr/sbin/httpd -DFOREGROUND

Dec 18 01:07:52 centos8 systemd[1]: Stopped The Apache HTTP Server.
Dec 18 01:07:52 centos8 systemd[1]: Starting The Apache HTTP Server...
Dec 18 01:07:52 centos8 httpd[5636]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::200:d0>
Dec 18 01:07:52 centos8 httpd[5636]: Server configured, listening on: port 80
Dec 18 01:07:52 centos8 systemd[1]: Started The Apache HTTP Server.

Konfigurasi SELinux dan Firewall

Secara default, SELinux diaktifkan di CentOS 8. Jadi, Anda perlu mengonfigurasi SELinux agar phpMyAdmin berfungsi dengan benar.

Pertama, instal paket policycoreutils-python-utils untuk mengelola lingkungan SELinux dengan perintah berikut:

dnf install policycoreutils-python-utils

Selanjutnya, aktifkan akses ke direktori /usr/share/phpmyadmin dengan perintah berikut:

semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/phpmyadmin/'
semanage fcontext -a -t httpd_sys_rw_content_t "/usr/share/phpmyadmin/tmp(/.*)?"

Sekarang ulangi semua file di direktori phpmyadmin Anda dengan menjalankan perintah berikut:

restorecon -Rv '/usr/share/phpmyadmin/'

Selanjutnya, Anda perlu membuat aturan firewall untuk mengizinkan layanan HTTP dari jaringan eksternal. Anda dapat mengizinkannya dengan perintah berikut:

firewall-cmd --permanent --add-service=http
firewall-cmd --reload

phpMyAdmin sekarang diinstal dan dikonfigurasi. Sekarang saatnya untuk memeriksa apakah itu berfungsi atau tidak.

Buka browser web Anda dan ketik URL http://your-server-ip/phpmyadmin. Anda akan diarahkan ke halaman berikut:

phpMyAdmin aman

Pada titik ini, instance phpMyAdmin berfungsi dengan baik. Namun, mengamankan instance phpMyAdmin Anda dari dunia luar merupakan tugas penting bagi Anda. Di bagian ini, kami akan menunjukkan cara mengamankan instance phpMyAdmin Anda.

Izinkan phpMyAdmin dari IP Tertentu

Pertama, Anda perlu mengonfigurasi phpMyAdmin agar hanya dapat diakses dari alamat IP koneksi rumah Anda.

Anda dapat mengkonfigurasinya dengan mengedit file /etc/httpd/conf.d/phpmyadmin.conf:

nano /etc/httpd/conf.d/phpmyadmin.conf

Temukan baris berikut:

     <RequireAny>
       Require all granted
     </RequireAny>

Dan, ganti dengan yang berikut ini:

<RequireAny>
    Require ip your-home--connection-ip-address
    Require ip ::1
</RequireAny>

Simpan dan tutup file setelah Anda selesai.

Konfigurasikan Lapisan Otentikasi Ekstra

Sebaiknya lindungi direktori phpmyadmin Anda dengan sandi dengan menyiapkan otentikasi dasar.

Untuk melakukannya, buat file otentikasi baru menggunakan alat htpasswd seperti yang ditunjukkan di bawah ini:

mkdir /etc/phpmyadmin
htpasswd -c /etc/phpmyadmin/.htpasswd admin

Anda akan diminta untuk memberikan kata sandi admin Anda seperti yang ditunjukkan di bawah ini:

New password: 
Re-type new password: 
Adding password for user admin

Selanjutnya, Anda perlu mengkonfigurasi Apache untuk menggunakan file .htpasswd. Anda dapat melakukannya dengan mengedit file /etc/httpd/conf.d/phpmyadmin.conf.

nano /etc/httpd/conf.d/phpmyadmin.conf

Tambahkan baris berikut di bawah baris "AddDefaultCharset UTF-8":

    Options  +FollowSymLinks +Multiviews +Indexes
    AllowOverride None
    AuthType basic
    AuthName "Authentication Required"
    AuthUserFile /etc/phpmyadmin/.htpasswd
    Require valid-user

Simpan file dan mulai ulang layanan Apache agar perubahan diterapkan:

systemctl restart httpd

Akses phpMyAdmin

Sekarang, instance phpMyAdmin Anda diamankan dengan lapisan keamanan ekstra. Buka browser web Anda dan ketik URL http://your-server-ip/phpmyadmin. Anda akan diminta untuk memasukkan kredensial login dari pengguna yang Anda buat sebelumnya seperti yang ditunjukkan di bawah ini:

Berikan nama pengguna dan kata sandi admin Anda, lalu klik tombol OK. Anda akan diarahkan ke halaman login phpMyAdmin:

Sekarang, berikan kredensial login pengguna administratif MySQL Anda dan klik tombol Go. Anda akan melihat halaman berikut:

Kesimpulan

Selamat! Anda telah berhasil menginstal dan mengamankan phpMyAdmin di server CentOS 8. Anda sekarang dapat membuat database, pengguna, tabel dan mengelolanya dari antarmuka berbasis web. Jangan ragu untuk bertanya kepada saya jika Anda memiliki pertanyaan.


Cent OS
  1. Instal MariaDB 10.0 di CentOS 6

  2. Instal Magento di CentOS 7, dengan Nginx, PHP-FPM dan MariaDB

  3. Cara Menginstal dan Mengamankan MongoDB 4 di CentOS 8

  1. Cara Memasang dan Mengamankan phpMyAdmin di Debian 9

  2. Cara Menginstal dan Mengamankan MariaDB di Debian 11

  3. Instal MariaDB di CentOS 6.4

  1. Cara Memasang dan Mengamankan phpMyAdmin di Ubuntu

  2. Instal MariaDB di CentOS 7

  3. Cara Menginstal dan Mengamankan phpMyAdmin dengan Apache di CentOS 7