Bagaimana Anda mengkonfigurasi Fail2ban untuk WordPress (WP-Login, XMLRPC)

Singkatnya, dalam tutorial ini Anda akan menemukan baris perintah di mana Anda dapat menginstal dan mengonfigurasi Fail2ban untuk WordPress. Secure WordPress Authentication dan XMLRPC.PHP Gross Ass.

Blog dan situs yang dikembangkan pada platform WordPress sering kali merupakan target serangan dunia maya. Sebagian besar serangan adalah tipe kekuatan kotor dan menargetkan sesi otentikasi atau eksploitasi XML-RPC (panggilan prosedur jarak jauh menggunakan XML). Untungnya, Fail2ban adalah solusi keamanan yang sangat berguna untuk situasi ini. Jika Anda ingin mengamankan situs WordPress dengan Fail2BAN, ikuti langkah -langkah konfigurasi dalam tutorial ini.

Pertama -tama, pastikan Anda memiliki akses ke server web dengan koneksi SSH dan aplikasi Fail2BAN diinstal.

Konfigurasi Fail2ban untuk WordPress di Debian

1. Pertama -tama Anda harus memastikan bahwa aplikasi Fail2BAN dipasang dan berjalan di server. Jalankan baris perintah di bawah ini:

systemctl status fail2ban

Dalam output Anda harus melihat sesuatu dari formulir:

● 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 diinstal di server, Anda harus menginstalnya. Lakukan baris pesanan untuk Instalasi Fail2ban di Debian / Ubuntu:

sudo apt install fail2ban

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

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

Di file wordpress.conf Menetapkan filter otentikasi WordPress dan otentikasi file xmlrpc.php, sebagai berikut:

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

Ini berarti bahwa dengan metode apa pun, GET atau POST, akan diakses file wp-login.php atau xmlrpc.php, aturan untuk fail2ban dapat dibuat. Kondisinya adalah bahwa file -file ini ada dan dapat diakses oleh penyerang. Yaitu mengembalikan kode 200 (OK) untuk mengakses.

Menyimpan file /etc/fail2ban/filter.d/wordpress.conf.

3. Langkah selanjutnya adalah mengonfigurasi “penjara” untuk WordPress. Pada langkah ini sebagian besar pengguna 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 file ini baris di bawah 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 sesuai dengan kebutuhan Anda. Dalam konfigurasi yang diberikan oleh saya, jika dalam 1800 menit ada 5 upaya berulang dari IP yang sama, itu akan diblokir selama 3600 menit dengan bantuan hestiacp web. (hestia[name=WEB]). Di sini Anda perlu membantu sesuai dengan sistem yang Anda miliki di server.

Itu juga sangat penting dan “logpath“. Dari log ini diekstraksi data berdasarkan tindakan mana yang akan dilakukan. Pastikan lokasinya benar.

Jika Anda tidak memiliki sistem manajemen yang diinstal, Anda akan memerlukan tindakan memblokir IP dengan fail2ban agar WordPress dilakukan secara langsung iptables. Garis tindakan adalah sebagai berikut:

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

Sebagai braket, bukannya /etc/fail2ban/jail.local Anda juga dapat menggunakan file konfigurasi terpisah, seperti: /etc/fail2ban/jail.d/wordpress.conf.

Setelah Anda melakukan penyesuaian, terapkan perubahan.

sudo systemctl restart fail2ban

4. Setelah restart, periksa bahwa 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 menemukan dalam daftar ini IP yang diblokir, pastikan mereka diblokir dan masuk iptables. Saya memenuhi situasi yang karena konfigurasi yang salah, di Fail2ban untuk melihat bahwa itu adalah IP yang diblokir, tetapi pada kenyataannya itu 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 muncul diblokir oleh Fail2ban juga ditemukan dalam daftar ini, itu berarti Anda telah mengkonfigurasi Fail2ban yang benar untuk WordPress.

Terkait: Cara mengatur ulang kata sandi pengguna admin di WordPress. Tanpa akses ke email.

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

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

Yang sedang berkata, jika Anda memiliki masalah atau membutuhkan bantuan, mereka dapat membantu Anda dalam komentar.

Bergairah tentang teknologi, saya menulis dengan senang hati di siluman di stealthsetts.com dimulai dengan 2006. Saya memiliki pengalaman yang kaya dalam sistem operasi: macOS, windows dan linux, tetapi juga dalam bahasa pemrograman dan platform blogging (WordPress) dan untuk toko online (WooCommerce, Magento, Presashop).

Home Sumber Anda tutorial, tips dan berita yang berguna. Bagaimana Anda mengkonfigurasi Fail2ban untuk WordPress (WP-Login, XMLRPC)
Tinggalkan komentar