Nói tóm lại, trong hướng dẫn này, bạn sẽ tìm thấy các dòng lệnh mà qua đó bạn có thể cài đặt và định cấu hình Fail2ban cho WordPress. Xác thực WordPress an toàn và XMLRPC.php Gross Ass.
Blog và trang web được phát triển trên nền tảng WordPress thường là các mục tiêu tấn công mạng. Hầu hết các cuộc tấn công thuộc loại lực tổng thể và đang nhắm mục tiêu vào phiên xác thực hoặc khai thác XML-RPC (cuộc gọi thủ tục từ xa bằng XML). May mắn thay, Fail2ban là một giải pháp bảo mật rất hữu ích cho các tình huống này. Nếu bạn muốn bảo mật một trang web WordPress với Fail2ban, hãy làm theo các bước cấu hình trong hướng dẫn này.
Trước hết, hãy đảm bảo bạn có quyền truy cập vào máy chủ web bằng SSH Connection và ứng dụng Fail2Ban được cài đặt.
Cấu hình fail2ban cho wordpress trên debian
1. Trước hết bạn phải đảm bảo rằng ứng dụng Fail2Ban được cài đặt và nó đang chạy trên máy chủ. Thực hiện dòng lệnh bên dưới:
systemctl status fail2ban
Trong đầu ra, bạn sẽ thấy một cái gì đó của biểu mẫu:
● 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
Nếu Fail2ban không được cài đặt trên máy chủ, bạn sẽ cần cài đặt nó. Thực hiện dòng thứ tự để cài đặt Fail2ban trên Debian / Ubuntu:
sudo apt install fail2ban
2. Bước tiếp theo là tạo bộ lọc Fail2ban cho WordPress. Thực thi trong thiết bị đầu cuối dòng lệnh để tạo và chỉnh sửa bộ lọc wordpress.conf
.
sudo nano /etc/fail2ban/filter.d/wordpress.conf
Trong tập tin wordpress.conf
Đặt các bộ lọc xác thực WordPress và xác thực tệp xmlrpc.php
, như sau:
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*(/wp-login.php|/xmlrpc.php).*" 200
ignoreregex =
Điều này có nghĩa là bằng bất kỳ phương pháp nào, GET
hoặc POST
, sẽ được truy cập các tệp wp-login.php hoặc xmlrpc.php, một quy tắc cho fail2ban có thể được tạo. Điều kiện là các tệp này tồn tại và có thể được truy cập bởi kẻ tấn công. Đó là trả lại mã 200 (OK) để truy cập.
Lưu tệp /etc/fail2ban/filter.d/wordpress.conf
.
3. Următorul pas este să configurezi “tù” pentru WordPress. La acest pas se încurcă cei mai mulți utilizatori, deoarece regulile trebuie stabilite diferit în funcție de sistemul de management pentru hosting (dacă acesta există) sau de configurația serverului web.
Nếu bạn sử dụng Hestiacp, Vestacp hoặc MyVesta, hãy tạo và chỉnh sửa tệp /etc/fail2ban/jail.local
.
nano /etc/fail2ban/jail.local
Thêm vào tệp này các dòng bên dưới:
[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.
Điều chỉnh các tham số trên theo nhu cầu của bạn. Trong cấu hình do tôi đưa ra, nếu trong vòng 1800 phút, có 5 lần thử lặp lại từ cùng một IP, nó sẽ bị chặn trong 3600 phút với sự trợ giúp của web Hestiacp. .hestia[name=WEB]
). Ở đây bạn sẽ cần giúp đỡ theo hệ thống bạn có trên máy chủ.
De asemenea, este foarte important și “logpath
“. Din aceste log-uri sunt extrase datele pe baza cărora se va executa acțiune. Asigurați-vă că locația este corectă.
Nếu bạn không có hệ thống quản lý được cài đặt, bạn sẽ cần hành động chặn IPS với Fail2ban để WordPress được thực hiện trực tiếp bởi iptables
. Dòng cho hành động sẽ như sau:
action = iptables-multiport[name=wordpress, port="80,443", protocol=tcp]
Như một khung, thay vì /etc/fail2ban/jail.local
Bạn cũng có thể sử dụng một tệp cấu hình riêng biệt, chẳng hạn như: /etc/fail2ban/jail.d/wordpress.conf
.
Sau khi bạn đã thực hiện các điều chỉnh, áp dụng các thay đổi.
sudo systemctl restart fail2ban
4. Sau khi khởi động lại, hãy kiểm tra liệu Fail2ban cho WordPress Works:
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:
Sau khi tìm thấy trong danh sách này bị chặn IPS, hãy đảm bảo rằng chúng bị chặn và trong iptables
. Tôi đã gặp tình huống do cấu hình sai, trong Fail2ban để thấy rằng đó là IP bị chặn, nhưng thực tế nó vẫn có thể truy cập wp-login.php
hoặc xmlrpc.php
.
Để kiểm tra xem mọi thứ có hoạt động đúng không, hãy chọn IP bị chặn từ danh sách Fail2Ban và tìm nó trong Iptables.
Thực hiện dòng lệnh:
iptables -L -v -n --line-numbers
Nếu IP xuất hiện bị chặn bởi Fail2Ban cũng được tìm thấy trong danh sách này, điều đó có nghĩa là bạn đã cấu hình Fail2Ban chính xác cho WordPress.
Có liên quan: Cách đặt lại mật khẩu người dùng quản trị trong WordPress. Mà không cần truy cập vào email.
Đồng thời, rất nên kiểm tra nhật ký với các hành động thất bại:
sudo tail -f /var/log/fail2ban.log
Điều đó đang được nói, nếu bạn có bất kỳ mối quan tâm hoặc cần giúp đỡ, họ có thể giúp bạn trong các ý kiến.