Hadang Serangan Brute Force di Joomla

Hadang Serangan Brute Force di Joomla

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.