Unduh Adobe Flash player

Tips dan Cara Mengamankan Joomla Pada Server Hosting

on Rabu, 08 Mei 2013


Beberapa hari lalu salah satu website klien yang saya kelola berhasil disusupi oleh peretas yang dalam aksinya memberikan peringatan kepada saya melalui email dalam bahasa inggris untuk segera memperbaiki lubang keamanan pada website tersebut.
Aksi peretas tersebut berhasil membuat satu akun pengguna database mysql atas nama yang bersangkutan dan berhasil merubah file configuration.php pada baris nama database dan password database.
Karena belum cukup memiliki pengalaman dalam hal keamanan tingkat tinggi, akhirnya saya mencoba melakukan pencarian dan alhasil menemukan satu tautan yang mungkin saja dapat kita jadikan langkah awal untuk mengamankan website Joomla kita.
Berikut beberapa tips yang saya coba terjemah ke bahasa indonesia dan sudah saya terapkan di beberapa website klien yang saya kelola.


1. Merubah lokasi file configuration.php

Sebagaimana kita ketahui file configuration.php merupakan jantung Joomla CMS, sejak versi 1.0 hingga 2.5 file tersebut sangat mudah diketahui oleh siapa saja dengan mudah, memang file php tersebut sudah menggunakan baris kode untuk menolak akses langsung ke file tersebut, akan tetapi hal tersebut masih belum cukup. Langkah terbaik adalah kita memindahkan file configuration.php tersebut ke lokasi lain yang tidak dapat diakses oleh siapapun.
Mulai dari Joomla versi 1.6 kita sudah dapat merubah lokasi file configuration.php ke lokasi lain yang kita inginkan, berikut langkahnya. (Sebagai catatan, saya menggunakan Joomla 2.5.6 dan Hosting Live)
a. Saya memindahkan file configuration.php ke susunan directory paling atas pada hosting yang saya gunakan. Untuk mempermudah anda memahaminya, biasanya jika website joomla berada pada folder public_html maka file configuration.php juga akan berada pada folder tersebut.
Saya mengeluarkan file configuration.php dari folder public_html ke folder / pada hosting server tempat saya menyimpan website joomla saya.
b. Copy file defines.php dari folder  public_html/includes/defines.php ke folder root public_html
c. Copy file defines.php dari folder public_html/administrator/includes/defines.php ke folder public_html/administrator/
c. Rubah ke-2 file defines.php tersebut dengan menyisipkan kode berikut :
define('_JDEFINES', 1);
define('JPATH_BASE', dirname(jos_FILEjos_));
di bawah baris kode berikut : defined('_JEXEC') or die;
d. Kemudian rubah kode berikut pada ke-2 file defines.php

//define('JPATH_CONFIGURATION', JPATH_ROOT); <<-- adalah="" baris="" ini="" kode="" sebelumnya="" span="">
define('JPATH_CONFIGURATION',   JPATH_ROOT .DS.'..'); // <<-- adalah="" alamat="" baris="" baru="" configuration.php="" dan="" file="" ini="" kode="" menandakan="" span="" yang="">

2. Menambahkan baris kode pada file .htaccess

Penggunaan mod_rewrite juga merupakan hal yang penting untuk mengamankan website joomla anda, jika server hosting yang anda gunakan belum mendukung mod_rewrite atau untuk cara mengaktifkannya dari sisi server hosting alangkah baiknya anda menghubungi bagian pendukung server hosting yang anda gunakan.
Jika anda belum memiliki file .htaccess pada folder utama website joomla anda, maka langkah yang perlu anda lakukan adalah merubah file htaccess.txt menjadi .htaccess
kemudian tambahkan kode berikut pada bagian paling bawah :
#### @RS
# Prevent most common SQL-Injections
RewriteCond %{query_string} concat.*\( [NC,OR]
RewriteCond %{query_string} union.*select.*\( [NC,OR]
RewriteCond %{query_string} union.*all.*select [NC]
RewriteRule ^(.*)$ index.php [F,L]
#### @RS
#### @RS
# Block most common hacking tools
SetEnvIf user-agent "Indy Library" stayout=1
SetEnvIf user-agent "libwww-perl" stayout=1
SetEnvIf user-agent "Wget" stayout=1
deny from env=stayout
#### @RS



#### @RS
# Deny access to php, xml and ini files
# within components and plugins directories
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} \.php|\.ini|\.xml [NC]
#RewriteCond %{REQUEST_URI} \/components\/ [OR]
RewriteCond %{REQUEST_URI} ^\/includes\/|^\/administrator\/includes\/ [OR]
RewriteCond %{REQUEST_URI} \/language\/ [OR]
RewriteCond %{REQUEST_URI} \/libraries\/ [OR]
#RewriteCond %{REQUEST_URI} \/modules\/ [OR]
RewriteCond %{REQUEST_URI} \/plugins\/ [OR]
#RewriteCond %{REQUEST_URI} \/templates\/ [OR]
RewriteCond %{REQUEST_URI} \/xmlrpc\/
RewriteRule ^(.*)$ index.php [R=404,L]
#### @RS

Semoga dengan tips di atas website Joomla anda akan bertambah aman, dan jika anda belum yakin mungkin anda perlu menggunakan jasa konsultasi keamanan untuk server yang anda gunakan. :)

0 komentar:

Posting Komentar