chặn tấn công theo thời gian thực nếu 1 IP gửi > 50 request / 10 giây

Ok, giờ mình sẽ làm chặn bot Layer-7 theo thời gian thực, đúng yêu cầu:

  • Nếu 1 IP gửi > 50 request / 10 giây → tự block

  • Tự giảm tải CPU ngay lập tức

  • Không chặn người dùng thật

  • Không chặn Google / Bing / Facebook / Zalo crawler

Chúng ta sẽ dùng iptables + module recent, cực nhẹ (không tốn RAM), chạy realtime.

Copy dán nguyên cụm bên dưới vào SSH:

# Tạo chain riêng
iptables -N HTTP_FLOOD

# Đếm request mỗi IP trong 10 giây, nếu > 50 → DROP
iptables -A HTTP_FLOOD -m recent --name BOT --set
iptables -A HTTP_FLOOD -m recent --name BOT --update --seconds 10 --hitcount 50 -j DROP

# Không áp dụng cho Google/Bing/Facebook/Zalo
iptables -A INPUT -p tcp --dport 80 -m string --string "googlebot" --algo bm -j RETURN
iptables -A INPUT -p tcp --dport 80 -m string --string "bingbot" --algo bm -j RETURN
iptables -A INPUT -p tcp --dport 80 -m string --string "facebookexternalhit" --algo bm -j RETURN
iptables -A INPUT -p tcp --dport 80 -m string --string "zalo" --algo bm -j RETURN

# Áp rule cho toàn traffic web
iptables -I INPUT -p tcp --dport 80 -j HTTP_FLOOD
iptables -I INPUT -p tcp --dport 443 -j HTTP_FLOOD

Lưu lại để không mất sau reboot:

service iptables save

🎯 Giải thích để bạn tự tin:

Tính năngHoạt động
Theo dõi request mỗi IP✅ Yes
Giới hạn: 50 request / 10 giây✅ Yes
Nếu vượt ngưỡng → block ngay✅ Real-time
Người thật truy cập bình thường✅ Không bị ảnh hưởng
SEO Bot (Google, Bing, Facebook)✅ Được whitelisted

Bạn sẽ thấy:

  • lsphp giảm mạnh

  • CPU giảm

  • Web mượt hẳn ngay lập tức

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest
0 Góp ý
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận