Sử dụng API để khởi động Rule Cloudflare chống DDOS.
Get API Token Cloudflare và ZoneID
Trước tiên cần get API Global của tài khoản CloudFlare:
Tại Menu Overview click vào Get your API token -> Chọn Global API Key -> View -> Nhập Password -> Copy Token vào Notepad để lát sử dụng. Đây còn gọi là Authen Key
Tại Menu Overview click vào Zone ID: copy dãy số vào Notepad để lát sử dụng
Get các RULE đang trên tài khoản Cloudflare
Tốt nhất là nên thiết lập Rule trên giao diện trước: Menu Security -> WAF -> Firewall Rule
Mình sẽ tạo 1 Rule Block User-Agent như trong hình:
Tiếp theo dùng lệnh Curl để Get ID và thông tin các Rule đã thiết lập.
curl -X GET \
"https://api.cloudflare.com/client/v4/zones/[Zone ID]/firewall/rules" \
-H "X-Auth-Email: email đănh nhập Cloudflare" \
-H "X-Auth-Key: [API Token]"
Ví dụ:
curl -X GET \
"https://api.cloudflare.com/client/v4/zones/9572d3eddf3475ca760b419a63e79536/firewall/rules" \
-H "X-Auth-Email: [email protected]" \
-H "X-Auth-Key: 89d37c93f93aac745180247542d8xxxxxxx96b"
Kết quả:
curl -X GET \
"https://api.cloudflare.com/client/v4/zones/9572d3eddf3475ca760b419a63e79536/firewall/rules" \
-H "X-Auth-Email: [email protected]" \
-H "X-Auth-Key: 89d37c93f93aac745180247542d8xxxxxxx96b"
{
"result": [
{
{
"id": "aa345072f8244340b3264167ba51662b",
"paused": true,
"description": "Block User-Agent",
"action": "block",
"priority": 46,
"filter": {
"id": "efcd9a8a55f34fea8e43a98765e463d2",
"expression": "(http.user_agent contains \"DDoS\") or (http.user_agent contains \"Darryl\") or (http.user_agent contains \"censys\") or (http.user_agent contains \"shodan\") or (http.user_agent contains \"shodan\")",
"paused": true
},
"created_on": "2022-06-16T06:09:59Z",
"modified_on": "2022-08-18T12:12:42Z"
}
Cần ghi lại các thông tin sau để có thể tự động bật/tắt các Rule bằng API của Cloudflare
- “id”: “aa345072f8244340b3264167ba51662b”, : <RULE_ID>
- “paused”: false, : false là Rule đang được bật, true là Rule đang tắt
- “description”: “Block User-Agent”, : Đặt tên cho Rule
- “id”: “efcd9a8a55f34fea8e43a98765e463d2”, : <FILTER_ID>
Bật Rule Firewall Cloudflare bằng API
Sau khi đã có đầy đủ thông tin về ID Rule, ID Filter, chúng ta dùng lệnh PUT để cập nhật trạng thái cho Rule Firewall Cloudflare
Cấu trúc của lệnh PUT như sau:
curl -X PUT \
"https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/firewall/rules/<RULE_ID>" \
-H "X-Auth-Email: email đănh nhập Cloudflare" \
-H "X-Auth-Key: [API Token]"\
-H "Content-Type: application/json" \
-d '{
"paused": false,
"description": "Đặt tên cho Rule",
"action": "allow",
"priority": 1,
"filter": {
"id": "<FILTER_ID>",
"expression": "(http.user_agent contains \"DDoS\"),
"paused": false,
"description": "Đặt tên cho Rule"
}
}'
Ví dụ: để bật Rule này lên ta chỉnh lại giá trị của paused từ true thành false. Tức là chuyển từ tắt sang mở. Nên nhớ có 2 giá trị paused nhé.
curl -X PUT "https://api.cloudflare.com/client/v4/zones/9572d3eddf3475ca760b419a63e79536/firewall/rules/aa345072f8244340b3264167ba51662b" \
-H "X-Auth-Email: [email protected]" \
-H "X-Auth-Key: 89d37c93f93aac745180247542d8xxxxxxx96b" \
-H "Content-Type: application/json" \
--data '{
"action": "block",
"priority": 46,
"paused":false,
"description": "Block User-Agent",
"filter": {
"id": "efcd9a8a55f34fea8e43a98765e463d2",
"expression": "(http.user_agent contains \"DDoS\") or (http.user_agent contains \"Darryl\") or (http.user_agent contains \"censys\") or (http.user_agent contains \"shodan\") or (http.user_agent contains \"shodan\")",
"paused": false,
"description": "Block User Agent"
}
}'
Kết quả thấy trả về “success”: true, là thành công.
curl -X PUT "https://api.cloudflare.com/client/v4/zones/9572d3eddf3475ca760b419a63e79535/firewall/rules/aa345072f8244340b3264167ba51662b" \
-H "X-Auth-Email: [email protected]" \
-H "X-Auth-Key: 89d37c93f93aac745180247542d8xxxxxxx96b" \
-H "Content-Type: application/json" \
--data '{
"action": "block",
"priority": 47,
"paused":false,
"description": "Block User-Agent",
"filter": {
"id": "efcd9a8a55f34fea8e43a98765e463d2",
"expression": "(http.user_agent contains \"DDoS\") or (http.user_agent contains \"Darryl\") or (http.user_agent contains \"censys\") or (http.user_agent contains \"shodan\") or (http.user_agent contains \"shodan\")",
"paused": false,
"description": "Block User Agent"
}
}'
{
"result": {
"id": "aa345072f8244340b3264167ba51662b",
"paused": false,
"description": "Block User-Agent",
"action": "block",
"priority": 47,
"filter": {
"id": "efcd9a8a55f34fea8e43a98765e463d2",
"expression": "(http.user_agent contains \"DDoS\") or (http.user_agent contains \"Darryl\") or (http.user_agent contains \"censys\") or (http.user_agent contains \"shodan\") or (http.user_agent contains \"shodan\")",
"paused": false
},
"created_on": "2022-08-18T12:05:32Z",
"modified_on": "2022-08-30T15:11:46Z",
"index": 1
},
"success": true,
"errors": [],
"messages": []
}
Trong bài tiếp theo chúng ta sẽ nghiên cứu tự Enable Rule Cloudflare khi CPU tăng cao và tự Disable Rule khi CPU đã hạ xuống. Tránh trường hợp bị DDoS làm sụp Server.
Xem Them Chi Tiet
Nhung Mon Do Cong Nghe Duoc Yeu Thich
Do Cong Nghe Phu Kien
0 Comments:
Đăng nhận xét