Kamis, 23 Agustus 2012
Cara Mengamankan Joomla 2.5 Pada Server Hosting
Do you like this story?
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.
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(__FILE__));
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); <<-- Ini adalah baris kode sebelumnya
define('JPATH_CONFIGURATION', JPATH_ROOT .DS.'..'); // <<-- dan ini adalah baris kode baru yang menandakan alamat baru file configuration.php
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. :)
Sumber referensi :
http://magazine.joomla.org/issues/Issue-Aug-2012/item/820-simple-security-guide-part-2
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(__FILE__));
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); <<-- Ini adalah baris kode sebelumnya
define('JPATH_CONFIGURATION', JPATH_ROOT .DS.'..'); // <<-- dan ini adalah baris kode baru yang menandakan alamat baru file configuration.php
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. :)
Sumber referensi :
http://magazine.joomla.org/issues/Issue-Aug-2012/item/820-simple-security-guide-part-2
Langganan:
Posting Komentar (Atom)
0 Responses to “Cara Mengamankan Joomla 2.5 Pada Server Hosting”
Posting Komentar