Cách Tắt Mở Rule Firewall Cloudflare bằng API

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

Get API Token Cloudflare
Get API Token Cloudflare

Tại Menu Overview click vào Zone ID: copy dãy số vào Notepad để lát sử dụng

zone id cloudflare

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

thiết lập Rule cloudflare

Mình sẽ tạo 1 Rule Block User-Agent như trong hình:

tạo rule firewall cloudflare

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.

Adblock test (Why?)


Xem Them Chi Tiet

Nhung Mon Do Cong Nghe Duoc Yeu Thich

Do Cong Nghe Phu Kien

0 nhận xét:

Đăng nhận xét