Chống brute-force & flood
MyPanel bảo vệ server khỏi dò mật khẩu (brute-force) và dồn request (flood tầng ứng dụng) bằng hai lớp bổ trợ nhau, không cần cài WAF nặng:
- Fail2ban — tự động khoá IP tấn công ở tầng hệ thống.
- Giới hạn tần suất nginx (rate limit) — chặn dồn request cho từng website.
Fail2ban — tự động khoá IP
Phần tiêu đề “Fail2ban — tự động khoá IP”Vào menu Chống brute-force. Panel quản lý Fail2ban trực quan:
- Thẻ tổng quan — Fail2ban đã cài/đang chạy, số jail, tổng số IP đang bị khoá.
- Bảo vệ brute-force 1 chạm — một công tắc bật bộ jail khuyến nghị với tham số an toàn:
sshd— dò mật khẩu SSH.nginx-http-auth— sai mật khẩu HTTP Basic.nginx-limit-req— vượt giới hạn tần suất nginx (gắn với lớp rate-limit bên dưới).nginx-botsearch— quét URL độc.
- Tuỳ chỉnh thời gian khoá (
bantime, vd10m,1h,1d) và số lần sai tối đa (maxretry). - Danh sách IP đang bị khoá theo từng jail, kèm nút Gỡ khoá (khi bạn tự khoá nhầm).
Panel ghi cấu hình vào một file riêng (/etc/fail2ban/jail.d/mypanel.local) — không đụng cấu hình
hệ thống của bạn — rồi reload Fail2ban. Nếu reload lỗi, panel tự khôi phục cấu hình cũ.
Giới hạn tần suất theo website (rate limit)
Phần tiêu đề “Giới hạn tần suất theo website (rate limit)”Trong từng website, mở tab Nginx → Giới hạn tần suất. Bật để chặn dồn request (flood L7) và làm
chậm dò mật khẩu (ví dụ wp-login.php):
- 3 mức dựng sẵn — Nhẹ / Vừa / Chặt — hoặc tự đặt:
- Request động/giây mỗi IP (rate).
- Cho phép dồn tức thời (burst).
- Kết nối đồng thời mỗi IP (conn).
- Asset tĩnh (ảnh, CSS, JS, font…) được loại trừ khỏi đếm, nên tải trang nhiều file không bị
chặn nhầm (mã
429).
Khi vượt giới hạn, nginx trả mã 429 Too Many Requests. Jail nginx-limit-req của Fail2ban đọc
chính các lần 429 này để khoá hẳn IP vi phạm — hai lớp khớp nhau thành một vòng bảo vệ.