Cara mengkonfigurasi Fail2Ban untuk WordPress (login wp, xmlrpc)

Singkatnya, dalam tutorial ini Anda akan menemukan baris perintah yang dapat Anda gunakan untuk menginstal dan mengkonfigurasi Fail2Ban untuk WordTekan. Mengamankan otentikasi WordPress dan query brute force pada xmlrpc.php.

Blog dan situs web dikembangkan di platform WordPress sering menjadi sasaran serangan siber. Sebagian besar serangan bersifat brute force dan menargetkan sesi autentikasi atau eksploitasi XML-RPC (Remote Procedure Call using XML). Untungnya, fail2ban adalah solusi keamanan yang sangat berguna untuk situasi ini. Jika Anda ingin mengamankan situs web WordPress dengan fail2ban, ikuti langkah-langkah konfigurasi dalam tutorial ini.

Pertama-tama, pastikan Anda memiliki akses ke server web melalui koneksi SSH dan aplikasi fail2ban telah diinstal.

Konfigurasi Fail2Ban untuk WordPress di Debian

1. Pertama-tama, Anda perlu memastikan bahwa aplikasi fail2ban telah terinstal dan berjalan di server. Jalankan baris perintah di bawah ini:

systemctl status fail2ban

Pada output Anda akan melihat sesuatu seperti ini:

● fail2ban.service - Fail2Ban Service
     Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-03-11 00:39:32 EET; 6 days ago
       Docs: man:fail2ban(1)
   Main PID: 917 (fail2ban-server)
      Tasks: 17 (limit: 76843)
     Memory: 33.2M
        CPU: 17min 1.752s
     CGroup: /system.slice/fail2ban.service
             └─917 /usr/bin/python3 /usr/bin/fail2ban-server -xf start

Jika fail2ban tidak terinstal di server Anda, Anda perlu menginstalnya. Jalankan baris perintah untuk menginstal fail2ban di Debian/Ubuntu:

sudo apt install fail2ban

2. Langkah selanjutnya adalah membuat filter fail2ban untuk WordTekan. Jalankan baris perintah di terminal untuk membuat dan mengedit filter wordpress.conf.

sudo nano /etc/fail2ban/filter.d/wordpress.conf

Dalam file wordpress.conf mengatur filter untuk otentikasi WordPress dan untuk filenya xmlrpc.php, sebagai berikut:

[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =

Ini berarti bahwa dengan cara apa pun, GET atau POST, jika file wp-login.php atau xmlrpc.php diakses, aturan untuk fail2ban dapat dibuat. Syaratnya adalah berkas-berkas tersebut ada dan dapat diakses oleh penyerang. Artinya, harus mengembalikan kode 200 (ok) saat diakses.

Simpan berkasnya /etc/fail2ban/filter.d/wordpress.conf.

3. Langkah selanjutnya adalah mengkonfigurasi “penjara” untuk WordTekan. Di sinilah sebagian besar pengguna menjadi bingung, karena aturan harus ditetapkan secara berbeda tergantung pada sistem manajemen hosting (jika ada) atau konfigurasi server web.

Jika Anda menggunakan HestiaCP, VestaCP atau MyVesta, buat dan edit file /etc/fail2ban/jail.local.

nano /etc/fail2ban/jail.local

Tambahkan baris di bawah ini ke berkas ini:

[wordpress]
enabled  = true
port     = http,https
filter   = wordpress
logpath  = /var/log/nginx/domains/*.log #or apache2.
maxretry = 5
findtime = 1800
bantime  = 3600
action   = hestia[name=WEB] #hestacp action.

Sesuaikan parameter di atas menurut kebutuhan Anda. Dalam konfigurasi yang saya berikan, jika dalam interval 1800 menit ada 5 upaya berulang dari IP yang sama, maka akan diblokir selama 3600 menit menggunakan tindakan HestiaCP untuk web. (hestia[name=WEB]). Di sini Anda akan memerlukan bantuan tergantung pada sistem yang Anda miliki di server.

Hal ini juga sangat penting untuk "logpath". Dari log ini, data mengenai tindakan apa yang akan diambil akan diekstraksi. Pastikan lokasinya benar.

Jika Anda tidak memiliki sistem manajemen yang terpasang, Anda perlu memblokir IP dengan fail2ban untuk WordPress dilakukan secara langsung melalui iptables. Berikut ini adalah langkah-langkah tindakannya:

action   = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]

Sebagai tanda kurung, alih-alih /etc/fail2ban/jail.local Anda juga dapat menggunakan file terpisah untuk konfigurasi, seperti: /etc/fail2ban/jail.d/wordpress.conf.

Setelah Anda membuat penyesuaian, terapkan perubahannya.

sudo systemctl restart fail2ban

4. Setelah restart, periksa apakah fail2ban untuk WordPress bekerja:

fail2ban-client status wordpress
Status for the jail: wordpress
|- Filter
|  |- Currently failed:	355
|  |- Total failed:	33873
|  `- File list: (log files per domain)
- Actions
   |- Currently banned:	127
   |- Total banned:	680
   `- Banned IP list:

Setelah Anda menemukan IP yang diblokir dalam daftar ini, pastikan IP tersebut juga diblokir di iptables. Saya mengalami situasi di mana karena kesalahan konfigurasi, di fail2ban saya melihat bahwa sebuah IP diblokir, tetapi pada kenyataannya masih dapat mengakses wp-login.php atau xmlrpc.php.

Untuk memeriksa apakah semuanya berfungsi dengan baik, pilih IP yang diblokir dari daftar fail2ban dan cari di iptables.

Jalankan baris perintah:

iptables -L -v -n --line-numbers

Jika IP yang tampaknya diblokir oleh fail2ban juga ada dalam daftar ini, berarti Anda telah mengonfigurasi fail2ban dengan benar untuk IP tersebut. WordTekan.

Terkait: Cara mereset kata sandi pengguna admin di WordTekan. Tidak ada akses ke email.

Pada saat yang sama, sangat disarankan untuk memeriksa log dengan tindakan fail2ban:

sudo tail -f /var/log/fail2ban.log

Meski begitu, jika Anda memiliki pertanyaan atau butuh bantuan, saya dapat membantu Anda melalui komentar.

Sebagai pecinta teknologi, saya dengan senang hati menulis di StealthSettings.com sejak tahun 2006. Saya memiliki pengalaman yang kaya dalam sistem operasi: macOS, Windows, dan Linux, serta dalam bahasa pemrograman dan platform blogging (WordPress) dan toko online (WooCommerce, Magento, PrestaShop).

Beranda » Sumber Anda untuk tutorial TI, tips berguna, dan berita. » Cara mengkonfigurasi Fail2Ban untuk WordPress (login wp, xmlrpc)
Tinggalkan Komentar