老版本使用雷池社區版的時候都需要在界面操作,但是網絡攻擊往往都是無規律的,每次都手動操作非常累
前一段時間雷池社區版剛好開放了OPEN API 功能,可以支持大家使用API的方式進行管理了
但是沒有相關文檔非常難受,一直沒有使用相關功能
前幾天的7.2版本又公開api文檔,誠意滿滿
這次專門做一個自動拉黑的腳本,分享給大家
關于如何使用open可以參考這個文檔:
OPEN API使用教程 | 雷池 SafeLine
說一下思路
-
先手動創建一個ip組,設置為黑名單,手動獲取ip組的id
-
開啟高頻攻擊封禁功能,方便篩選出多次攻擊的ip(可以設置大一些,多獲取一些惡意ip)
-
使用接口獲取高頻攻擊的ip
-
把獲取的高頻攻擊ip放入ip組
前置工作:
1.成一個TOKEN,用于專門的自動化使用
token:07ztvayj0rQl3GnMZ32F21LaJz0MvbtJ
2.添加一個自動拉黑的ip組,用于后續的自定義拉黑
3.增加一個黑名單,匹配目標為上文創建的ip組
實現腳本:
-
手動設置一個高頻攻擊規則,封禁時間這里設置10分鐘(目的只是獲取高頻攻擊的ip)
-
使用 找到接口文檔內的獲取高頻攻擊的接口
如果不好找可以頁面f12 看看哪一個,然后進頁面搜索
示例代碼是:
import requests
import jsonheader = {"X-SLCE-API-TOKEN": "xxxxx"
}
#添加站點的URL
url = 'https://xxxx:9443/api/open/records/acl?page=1&page_size=20'r=requests.get(url=url,headers=header,verify=False)
print(r.text)
把對結果獲取ip的邏輯加上,讓其輸出一個ip列表
當前邏輯是對第一頁的url請求進行輸出,大家根據實際請求調整
r=r.json()["data"]["data"]
ip_list=[]
for i in r:ip = i['ip']ip_list.append(ip)
自動獲取ip完成后只要再調用寫入ip組的接口即可
找到編輯接口
分析接口信息,只需要這樣設置
ipgroup_url='https://101.126.66.231:9443/api/open/ipgroup'data={"id": 3,"reference": "","comment": "自動拉黑IP組","ips": ip_list}
data = json.dumps(data)
r=requests.put(url=ipgroup_url,data=data,headers=header,verify=False)
就寫完了最基本的查詢+添加入黑名單
測試如下
如果需要優化功能,比如確保每次增加的ip都是新的ip ,就需要先調用一次查詢ip組拿到原來的ip列表了
查看ip組信息的接口