Salah satu software content management system atau CMS yang paling banyak digunakan untuk membangun website di internet adalah Joomla. Joomla merupakan CMS open source yang bisa kamu gunakan gratis, dan dapat membangun website sesuai dengan kebutuhan kamu.
Karena banyak digunakan Joomla sering menjadi target serangan, karena itu ketika membuat website Joomla kita juga harus membuat rencana untuk mengamankannya. Salah satu serangan yang mungkin menyerang website Joomla kamu adalah serangan Brute Force.
Serangan Brute Force merupakan teknik serangan yang mencoba berbagai kombinasi karakter untuk menebak password atau passcode untuk masuk kedalam sistem. Kali ini kami akan membahas mengenai salah satu cara menghadang serangan Brute Force di Joomla dengan menggunakan ModSecurity. Ikuti langkah-langkah dibawah ini.
Apa Itu ModSecurity
Sebelum melangkah ke cara menghadang serangan Brute Force dengan ModSecurity, kita harus mengenalnya terlebih dahulu. ModSecurity (atau dikenal juga dengan mod_security, security2_module, modsec) merupakan module Apache yang didesain dengan fungsi yang mirip dengan Web Application Firewall, yang memiliki tujuan untuk membantu melindungi website dari berbagai tipe serangan seperti: SQL Injection, Iframe attacks, Webshell/Backdor Detection, Botnet Attack Detection, Brute Force dan HTTP Denial of Service (DoS) attacks.
Untuk cara instal ModSecurity bisa mengunjungi BlogHostingIndonesia.com.
Cara Menghadang Serangan Brute Force di Joomla
Pertama yang harus dilakukan adalah membuat file yang diberi nama bruteforce.conf, yang ditaruh pada lokasi ini: /usr/local/apache/conf/bruteforce.conf.
Bisa dengan mengetik command:
nano -w /usr/local/apache/conf/bruteforce.conf
Kemudian copy code dibawah ini ke dalam file tersebut:
# WordPress & Joomla ModSecurity Brute Force Rules # ----------------------------------------------------------------------------- # TX.max_requests - # of requests allowed during x period of time # TX.requests_ttl - time in seconds # TX.block_ttl - block time in seconds # ----------------------------------------------------------------------------- SecRequestBodyAccess On SecDataDir /tmp SecAction "phase:1,pass,setvar:TX.max_requests=6,setvar:TX.requests_ttl=180,setvar:TX.block_ttl=900,initcol:ip=%{REMOTE_ADDR},nolog,id:5001000" SecRule IP:blocked "@eq 1" "phase:1,drop,log,id:5001001" # Joomla Anti Brute Force Rules <LocationMatch "/administrator/index.php"> SecAction "phase:2,chain,nolog,id:5001012" SecRule REQUEST_METHOD "^POST$" "chain" SecRule ARGS_POST_NAMES "^username$" "chain" SecRule ARGS_POST_NAMES "^passwd$" "chain" SecRule ARGS_POST:option "^com_login$" "chain" SecRule ARGS_POST:task "^login$" "chain" SecAction "setvar:ip.request_count=+1,expirevar:ip.request_count=%{TX.requests_ttl}" SecRule IP:request_count "@ge %{TX.max_requests}" "phase:2,drop,setvar:ip.blocked=1,expirevar:ip.blocked=%{TX.block_ttl},log,msg:'Blocked by %{TX.block_ttl} seconds',id:5001013" # Old Joomla installations <LocationMatch "/administrator/index.php"> SecAction "phase:2,chain,nolog,id:5001022" SecRule REQUEST_METHOD "^POST$" "chain" SecRule ARGS_POST_NAMES "^usrname$" "chain" SecRule ARGS_POST_NAMES "^pass$" "chain" SecAction "setvar:ip.request_count=+1,expirevar:ip.request_count=%{TX.requests_ttl}" SecRule IP:request_count "@ge %{TX.max_requests}" "phase:2,drop,setvar:ip.blocked=1,expirevar:ip.blocked=%{TX.block_ttl},log,msg:'Blocked by %{TX.block_ttl} seconds',id:5001023"
Loading Rule Anti Brute Force
Sekarang kita harus mengkonfigurasi ModSecurity untuk meng-load rule anti brute force, dengan menjalankan command ini:
echo "Include /usr/local/apache/conf/bruteforce.conf" >> /usr/local/apache/conf/modsec2.user.conf
Kemudian restart Apache untu menerapkan perubahan:
service httpd restart
Hasil dari rule anti serangan brute force untuk WordPress ini akan di-log pada Apache error log.
Menonaktifkan Rule Anti Serangan Brute Force
Jika rule ModSecurity ini menyebabkan masalah, kamu bisa menonaktifkannya dengan mengedit file /usr/local/apache/conf/modsec2.user.conf, lalu hapus line dibawah ini:
Include /usr/local/apache/conf/bruteforce.conf
Kemudian restart Apache untuk menerapkan perubahan:
service httpd restart
Semoga cara ini dapat membantu melindungi website Joomla kamu dari serangan brute force.
Jakartawebhosting.com menyediakan layanan Joomla Hosting, dengan kecepatan dan stabilitas pusat data dan server yang baik, up time server 99,9%, team support yang siap membantu 24 jam dan biaya langganan yang menarik.