Để chống DDOS hiệu quả, bạn có thể sử dụng CloudFlare làm lá chắn cho server. CloudFlare có tiện ích mod_cloudflare cài đặt trên linux cùng với apache sẽ tự động thực hiện điều này.

Thật không may là nếu như mod_cloudflare cài đặt trên máy chủ web backend, sẽ không nhận diện chuẩn được IP thực của client và việc bảo vệ sẽ không hiệu quả.

Để khắc phục điều này, Bạn có thể sử dụng CSF (Config Server Firewall) cài đặt trên máy chủ FrontEnd tự động chạy script để thực hiện điều này.

Cách thực hiện:

Đơn giản nhất là mỗi khi IP được đưa vào Firewall qua LFD (Login Failure Daemon), CSF sẽ chạy script và gửi nó đến CloudFlare thông qua API của CloudFlare.

Đưới đây là Script viết bằng shell trên linux để thực hiện việc này. Lưu nó dưới tên: block_report.sh

#!/bin/bash
ip=$(printf "%q" $1)
no=$(printf "%q" $6)
curl -X POST "https://api.cloudflare.com/client/v4/user/firewall/access_rules/rules" -H "X-Auth-Email: [email protected]" -H "X-Auth-Key: YOURCLOUDFLAREAUTHCODE" -H "Content-Type: application/json" –data '{"mode":"block","configuration":{"target":"ip","value":"'$ip'"},"notes":"fromcsflfd"}'
view raw block_report.sh hosted with ❤ by GitHub

Phân quyền lại cho nó

Thay [email protected] bằng email của bạn trên CloudFlare. Thay YOURCLOUDFLAREAUTHCODE bằng Auth Code của bạn trên CloudFlare->Account->Setting và chọn Global API Key bạn lấy cái này nha

Tiêp theo mở file CSF config: /etc/csf/csf.conf Tìm đến phần BLOCK REPORT và đặt script:
thay /my-script-path bằng đường dẫn tới chỗ của bạn đặt script

# Block Reporting. lfd can run an external script when it performs and IP
# address block following for example a login failure. The following setting
# is to the full path of the external script which must be executable. See
# readme.txt for format details
#
# Leave this setting blank to disable
BLOCK_REPORT = "/my-script-path/block_report.sh"
view raw lfd.conf hosted with ❤ by GitHub

Tiếp theo cần khởi động lại CSF và LFD để các thay đổi được áp dụng.

Leave a Reply

avatar
  Subscribe  
Notify of