Our Blog

Tips dan Tutorial untuk Pengetahuan Anda.

Cara Install dan Mengamankan phpMyAdmin dengan Apache di CentOS 7 Server

Posted by admin-pdw on 18 04 2018. Comments Off on Cara Install dan Mengamankan phpMyAdmin dengan Apache di CentOS 7 Server

 

Pengantar

Sistem manajemen basis data relasional seperti MySQL dan MariaDB dibutuhkan untuk sebagian besar situs web dan aplikasi. Namun, tidak semua pengguna merasa nyaman mengelola data mereka dari command line.

 

Untuk mengatasi masalah ini, sebuah proyek bernama phpMyAdmin diciptakan untuk menawarkan alternatif dalam bentuk antarmuka manajemen berbasis web. Dalam panduan ini, yang kami terjemahkan dari sini kami akan menunjukkan cara menginstal dan mengamankan konfigurasi phpMyAdmin pada server CentOS 7. Kami akan membangun setup ini di atas server web Apache, server web terpopuler di dunia.

 

Yang Perlu Disiapkan

Sebelum kita mulai, ada beberapa yang perlu disiapkan.

Untuk memastikan bahwa Anda memiliki dasar yang kuat untuk membangun sistem ini, Anda harus menjalankan panduan penyiapan server awal untuk CentOS 7. Antara lainnya, ini akan memandu Anda untuk menyiapkan pengguna non-root dengan akses sudo untuk perintah administratif.

 

Syarat kedua yang harus dipenuhi untuk memulai panduan ini adalah memasang tumpukan LAMP (Linux, Apache, MariaDB, dan PHP) di server CentOS 7 Anda. Ini adalah platform yang akan kita gunakan untuk melayani antarmuka phpMyAdmin kita (MariaDB juga merupakan perangkat lunak manajemen basis data yang ingin kita kelola). Jika Anda belum memiliki instalasi LAMP di server Anda, ikuti tutorial kami tentang menginstal LAMP pada CentOS 7.

Bila server Anda berada dalam status yang berfungsi dengan baik setelah mengikuti panduan ini, Anda dapat melanjutkannya.

 

Langkah Pertama – Instal phpMyAdmin

Dengan platform LAMP kami sudah ada, kita bisa langsung mulai dengan menginstal perangkat lunak phpMyAdmin. Sayangnya, phpMyAdmin tidak tersedia di repositori default CentOS 7.

 

Untuk mendapatkan paket yang kita butuhkan, kita harus menambahkan repo tambahan ke sistem kita. Repo EPEL (Extra Packages for Enterprise Linux) berisi banyak paket tambahan, termasuk paket phpMyAdmin yang kami cari.

 

Repositori EPEL dapat dibuat tersedia untuk server Anda dengan menginstal paket khusus yang disebut epel-release. Ini akan mengkonfigurasi ulang daftar repositori Anda dan memberi Anda akses ke paket EPEL.

 

Untuk menginstal, ketik saja:

 

sudo yum install epel-release

 

Sekarang repo EPEL dikonfigurasi, Anda dapat menginstal paket phpMyAdmin menggunakan sistem kemasan yum dengan mengetikkan:

 

sudo yum install phpmyadmin

 

Instalasi sekarang akan selesai. Instalasi termasuk file konfigurasi Apache yang sudah terpasang pada tempatnya. Kita perlu memodifikasi ini sedikit agar bisa bekerja dengan benar untuk instalasi kita.

 

Buka file di editor teks Anda sekarang agar kita dapat melakukan beberapa perubahan:

 

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

 

Di dalam, kita dapat melihat beberapa blok direktori dengan beberapa logika kondisional untuk menjelaskan kebijakan akses untuk direktori kami. Ada dua direktori berbeda yang didefinisikan, dan di dalamnya, konfigurasi yang akan berlaku untuk kedua Apache 2.2 dan Apache 2.4 (yang kita jalankan).

 

Saat ini, konfigurasi ini dikonfigurasi untuk menolak akses ke koneksi yang tidak dibuat dari server itu sendiri. Karena kami bekerja di server kami dari jarak jauh, kami perlu memodifikasi beberapa baris untuk menentukan alamat IP koneksi rumah Anda.

 

Ubah baris yang membaca Require ip 127.0.0.1 atau Allow from 127.0.0.1 untuk merujuk ke alamat IP koneksi Anda. Jika Anda memerlukan bantuan untuk menemukan alamat IP koneksi Anda, lihat bagian selanjutnya. Harus ada empat lokasi dalam file yang harus diubah:

 

. . .

Require ip your_workstation_IP_address

. . .

Allow from your_workstation_IP_address

. . .

Require ip your_workstation_IP_address

. . .

Allow from your_workstation_IP_address

. . .

 

Setelah selesai, restart server web Apache untuk menerapkan modifikasi Anda dengan mengetikkan:

 

sudo systemctl restart httpd.service

 

Dengan itu, instalasi phpMyAdmin sekarang beroperasi. Untuk mengakses antarmuka, buka nama domain server Anda atau alamat IP publik yang diikuti oleh / phpMyAdmin, di browser web Anda:

 

//server_domain_or_IP/phpMyAdmin

 

 

Untuk masuk, gunakan nama pengguna / kata sandi pasangan pengguna MariaDB yang valid. Pengguna root dan password administrasi MariaDB adalah pilihan tepat untuk memulai. Anda kemudian dapat mengakses antarmuka administratif:

 

 

Temukan Alamat IP Anda Anda perlu mengetahui alamat IP komputer yang Anda gunakan untuk mengakses database Anda untuk menyelesaikan langkah di atas. Ini adalah tindakan pengamanan sehingga orang yang tidak berhak tidak dapat terhubung ke server Anda.

 

Catatan: Ini bukan alamat IP VPS Anda, ini adalah alamat IP komputer di rumah atau kantor Anda.

 

Anda dapat mengetahui bagaimana web yang lebih besar melihat alamat IP Anda dengan mengunjungi salah satu situs ini di browser web Anda:

 

  • Apa Alamat IP Saya?
  • Apa IP saya?
  • Alamat IP saya

 

Bandingkan beberapa situs yang berbeda dan pastikan mereka semua memberi Anda nilai yang sama. Gunakan nilai ini di file konfigurasi di atas.

 

Langkah Kedua – Amankan contoh phpMyAdmin Anda

Contoh phpMyAdmin yang terinstal di server kami harus benar-benar dapat digunakan pada saat ini. Namun, dengan memasang antarmuka web, kita telah membuka sistem MySQL kita ke dunia luar.

 

Bahkan dengan layar otentikasi yang disertakan, ini cukup menjadi masalah. Karena popularitas phpMyAdmin dikombinasikan dengan sejumlah besar data yang disediakan aksesnya, instalasi seperti ini merupakan target umum untuk penyerang.

 

Kami akan menerapkan dua strategi sederhana untuk mengurangi kemungkinan pemasangan kami menjadi sasaran dan dikompromikan. Kami akan mengubah lokasi antarmuka dari / phpMyAdmin menjadi sesuatu yang lain untuk menghindari beberapa upaya brute force otomatis. Kami juga akan membuat gateway otentikasi tingkat server tambahan yang harus dilalui sebelum masuk ke layar login phpMyAdmin.

 

Mengubah Lokasi Akses Aplikasi

Agar server web Apache kami bisa bekerja dengan phpMyAdmin, file konfigurasi Apache phpMyAdmin kami menggunakan sebuah alias untuk menunjuk ke lokasi direktori file.

 

Untuk mengubah URL dimana antarmuka phpMyAdmin kita bisa diakses, kita hanya perlu mengganti nama alias. Buka file konfigurasi Apache phpMyAdmin sekarang:

 

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

 

Menuju bagian atas file, Anda akan melihat dua baris yang terlihat seperti ini:

 

Alias /phpMyAdmin /usr/share/phpMyAdmin

Alias /phpmyadmin /usr/share/phpMyAdmin

 

Dua baris ini adalah alias kita, yang berarti bahwa jika kita mengakses nama domain atau alamat IP situs kita, diikuti oleh/phpMyAdminatau/phpmyadmin, kita akan disajikan konten di/usr/share/phpMyAdmin.

 

Kami ingin menonaktifkan alias spesifik ini karena banyak ditargetkan oleh bot dan pengguna jahat. Sebagai gantinya, kita harus memutuskan alias kita sendiri. Harus mudah diingat, tapi tidak mudah ditebak Seharusnya tidak menunjukkan tujuan dari lokasi URL. Dalam kasus kami, kami akan pergi dengan/nothingtosee.

 

Untuk menerapkan perubahan yang kami maksudkan, kami harus menghapus atau memberi komentar pada baris yang ada dan menambahkannya kepada kami:

 

# Alias /phpMyAdmin /usr/share/phpMyAdmin

# Alias /phpmyadmin /usr/share/phpMyAdmin

Alias /nothingtosee /usr/share/phpMyAdmin

 

Setelah selesai, simpan dan tutup filenya.

 

Untuk menerapkan perubahan, restart layanan web:

 

sudo systemctl restart httpd.service

 

Sekarang, jika Anda pergi ke lokasi instalasi phpMyAdmin sebelumnya, Anda akan mendapatkanerror 404:

 

//server_domain_or_IP/phpMyAdmin

 

 

Namun, antarmuka phpMyAdmin Anda akan tersedia di lokasi baru yang kami pilih:

 

//server_domain_or_IP/nothingtosee

 

 

Memasang Otentikasi Otentikasi Web Server

Fitur berikutnya yang kami inginkan untuk instalasi kami adalah prompt autentikasi bahwa pengguna diharuskan untuk lulus sebelum melihat layar login phpMyAdmin.

 

Untungnya, sebagian besar server web, termasuk Apache, menyediakan kemampuan ini secara native. Kita hanya perlu memodifikasi file konfigurasi Apache kita untuk menggunakan file otorisasi.

 

Buka file konfigurasi Apache phpMyAdmin di editor teks Anda lagi:

 

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

 

Di blok direktori/usr/share/phpMyAdmin, tapi di luar blok mana pun di dalamnya, kita perlu menambahkan perintah pengganti. Ini akan terlihat seperti ini:

 

. . .

<Directory /usr/share/phpMyAdmin/>

AllowOverride All

<IfModule mod_authz_core.c>

. . .

</Directory>

. . .

 

Ini akan memungkinkan kita untuk menentukan rincian konfigurasi tambahan dalam file bernama .htaccess yang berada di dalam direktori phpMyAdmin itu sendiri. Kami akan menggunakan file ini untuk menyiapkan otentikasi password kami.

 

Simpan dan tutup file saat Anda selesai

 

Restart layanan web untuk menerapkan perubahan ini:

 

sudo systemctl restart httpd.service

 

Buat file .htaccess

Sekarang kita telah mengganti perintah di konfigurasi kita, Apache akan mencari file bernama.htaccessdi dalam direktori/usr/share/phpMyAdmin. Jika menemukannya, itu akan menggunakan arahan yang ada dalam untuk melengkapi data konfigurasi sebelumnya.

 

Langkah selanjutnya adalah membuat file .htaccess di dalam direktori itu. Gunakan editor teks Anda untuk melakukannya sekarang:

 

sudo nano /usr/share/phpMyAdmin/.htaccess

 

Dalam file ini, kita perlu memasukkan informasi berikut:

 

AuthType Basic

AuthName “Admin Login”

AuthUserFile /etc/httpd/pma_pass

Require valid-user

 

Mari kita bahas apa arti masing-masing garis ini:

 

  • AuthType Basic: Baris ini menentukan jenis otentikasi yang kami implementasikan. Jenis ini akan menerapkan otentikasi password menggunakan file password.
  • AuthName: Ini mengatur pesan untuk kotak dialog otentikasi. Anda harus tetap generik ini sehingga pengguna yang tidak sah, tidak akan mendapatkan informasi yang dilindungi.
  • AuthUserFile: Ini menentukan lokasi file password sebenarnya yang akan digunakan untuk otentikasi. Ini harus berada di luar direktori yang dilayani. Kami akan membuat file ini dalam sekejap.
  • Require valid user: Ini menentukan bahwa hanya pengguna terotentikasi yang harus diberi akses ke sumber ini. Inilah yang sebenarnya menghentikan pengguna yang tidak sah untuk masuk.

Setelah selesai memasukkan informasi ini, simpan dan tutup filenya.

 

Buat File Sandi untuk Otentikasi

Sekarang kita telah menentukan lokasi untuk file password kita melalui penggunaan perintahAuthUserFiledi file .htaccesskita, kita perlu membuat dan mengisi file password.

Hal ini dapat dicapai melalui penggunaan utilitas Apache yang disebuthtpasswd. Kami memanggil perintah tersebut dengan melewatkan lokasi dimana kami ingin membuat file dan nama pengguna yang kami inginkan untuk memasukkan rincian otentikasi untuk:

 

sudo htpasswd -c /etc/httpd/pma_pass username

 

Tanda -c menunjukkan bahwa ini akan membuat file awal. Lokasi direktori adalah path dan filename yang akan digunakan untuk file. Nama pengguna adalah pengguna pertama yang ingin kami tambahkan. Anda akan diminta untuk memasukkan dan mengkonfirmasi kata sandi untuk pengguna.

 

Jika Anda ingin menambahkan pengguna tambahan untuk diautentikasi, Anda dapat memanggil perintah yang samalagi tanpa tanda-c, dan dengan nama pengguna baru:

 

sudo htpasswd /etc/httpd/pma_pass seconduser

 

Dengan file kata sandi kami dibuat, gerbang otentikasi telah diimplementasikan dan sekarang kami harus melihat prompt kata sandi saat kami mengunjungi situs kami lagi:

 

//server_domain_or_IP/nothingtosee

 

 

Setelah Anda memasukkan kredensial Anda, Anda akan dibawa ke halaman login phpMyAdmin normal. Lapisan perlindungan tambahan ini akan membantu menjaga log log MySQL Anda dari upaya otentikasi selain manfaat keamanan tambahan.

 

Kesimpulan

Anda sekarang dapat mengelola database MySQL Anda dari antarmuka web yang cukup aman. UI ini memperlihatkan sebagian besar fungsi yang tersedia dari command prompt MySQL. Anda dapat melihat database dan skema, mengeksekusi query, dan membuat kumpulan dan struktur data baru.