Incapsula CLI 建立站台

透過官方開發的API 直接使用命令列建立站台

1.獲取API資訊
2.建立站台
3.編輯源站IP
4.設定白名單IP
5.設定黑名單國家
6.設定DDOS參數
7.更新SSL憑證

1.獲取API資訊
Incapsula API 有三樣東西必須取得 API ID、API KEY、Account ID
Management >> Users >> Add API Key

這時會取得API ID、API KEY
接著取得Account ID,從網址的URL 上可以看到Account ID,這樣三個必要的東西就獲取完成

從Github上獲取Python API
https://github.com/imperva/incapsula-cli
2.建立站台
建立站台

#python incap.py site add blog.imprezagt1031.idv.tw

建立完成後,系統會顯示你建立的Site ID

3.編輯源站IP
首先建立站台後,incapsula 默認會去解析你目前DNS所對應的IP,把對應的IP當成源站IP,此時我們去獲取這個站台的server_id

#curl -X POST "https://my.incapsula.com/api/prov/v1/sites/dataCenters/list?api_key=your-api-key&api_id=your-api-id&site_id=24900397" | jq
{
  "res": "0",
  "DCs": [
    {
      "id": "1838702",      #dc_id
      "enabled": "true",
      "servers": [
        {
          "id": "3236334",  #Server_id
          "enabled": "true",
          "address": "2.2.6.6",
          "isStandby": "false"
        }
      ],
      "name": "New DC",
      "contentOnly": "false"
    }
  ]
}

更換server_id 上的IP 這邊的範例是 從2.2.6.6 更換為3.3.3.3 (設定為Active IP)

#curl -X POST "https://my.incapsula.com/api/prov/v1/sites/dataCenters/servers/edit?api_key=your-api-key&api_id=your-api-id&server_id=3233664&server_address=3.3.3.3"

如果要再新增Server IP 這邊需要有DC_id(設定為Standby IP)

#curl -X POST "https://my.incapsula.com/api/prov/v1/sites/dataCenters/servers/add?api_key=your-api-key&api_id=your-api-id&dc_id=1837168&server_id=3236334&server_address=5.5.5.5&is_standby=yes"

如果需要刪除Server_IP

#curl -X POST "https://my.incapsula.com/api/prov/v1/sites/dataCenters/servers/delete?api_key=your-api-key&api_id=your-api-id&dc_id=1838702&server_id=3233748"

4.設定白名單IP

#python incap.py site acl --ips=100.100.100.100/32 whitelisted_ips 24900397

5.設定黑名單國家
國家參數需要大寫

#python incap.py site acl --countries JP blacklisted_countries site_id

6.設定DDOS參數

#python incap.py site security ddos --activation_mode=on --ddos_traffic_threshold=850 site_id
#python incap.py site add_incaprule 24900397 --name='test100' --filter='Rate >= {post-ip;2} & ( URL == "/login" | URL == "/admin" | URL == "/api")' --action=RULE_ACTION_BLOCK_IP

7.更新SSL憑證

#python incap.py site upcert --private_key="/root/.acme.sh/test.com/test.com.key" "/root/.acme.sh/test.comfullchain.cer" site_id
Facebook Comments