Shunze 學園 >資訊設備專區 >Sophos XG > 《分享》API應用範例 哈囉,還沒有註冊或者登入。請你[註冊|登入]
« 上一篇主題 下一篇主題 » 顯示成列印模式 | 增加到我的最愛
發表新主題 發表回覆
作者
主題
shunze
工友伯伯


註冊日期: 2002 04
來自: 潮汐終止之地
文章: 2380

shunze 離線
《分享》API應用範例引用回覆 編輯/刪除文章 搜尋由  發表的其他文章 回報給版主 IP 位置 回此頁最上方

在防止“暴力猜測帳密”上,由於XG只是進行routing,將連線需求轉給後端的server,
所以XG本身並不知道每次連線所輸入的帳號/密碼是否正確?
自然也就無法辦到“輸入錯誤帳密幾次後,封鎖惡意IP”這樣的工作...

但假設後端主機可以主動擷取“輸入錯誤次數過多的IP資訊”,
那XG能否主動去封鎖這樣的惡意IP連線?

答案是可以的!
XG提供API功能,讓後端主機可以透過XML格式,將要阻擋的IP物件直接在XG中建立。
我們只要在防火牆規則中,預先建好阻擋規則,
再由後端主機去維謢這個block IP清單或群組,就可以實現這樣的需求。


使用API功能時,請先確認執行的管理員帳號是否具有物件的寫入權限。



然後再於API Configuration中放行後端主機的使用權限,



這樣就後端主機就可以使用管理員權限帳號來執行API功能了∼


首先,我們可以透過以下指令來查看IP物件清單與格式。

https://XG_IP/webconsole/APIController?reqxml=<Request><Login><Username>admin_account</Username><Password>P@ssw0rd</Password></Login><Get><IPHost><Name></Name><IPFamily></IPFamily><HostType></HostType><IPAddress></IPAddress></IPHost></Get></Request>


若我們要取得Block_IP這個IP List物件的內容,可透過以下指令。
https://XG_IP/webconsole/APIController?reqxml=<Request><Login><Username>admin_account</Username><Password>P@ssw0rd</Password></Login><Get><IPHost><Filter><key name="Name" criteria="like">Block_IP</key></Filter></IPHost></Get></Request>


若Block_IP這個IP List物件不存在,我們可以透過以下指令來建立。
https://XG_IP/webconsole/APIController?reqxml=<Request><Login><Username>admin_account</Username><Password>P@ssw0rd</Password></Login><Set operation="add"><IPHost><Name>Block_IP</Name><IPFamily>IPv4</IPFamily><HostType>IPList</HostType><ListOfIPAddresses>199.199.199.199</ListOfIPAddresses></IPHost></Set></Request>


若Block_IP這個IP List物件已存在,我們可以透過以下指令去更新它的IP內容。
https://XG_IP/webconsole/APIController?reqxml=<Request><Login><Username>admin_account</Username><Password>P@ssw0rd</Password></Login><Set operation="update"><IPHost><Name>Block_IP</Name><IPFamily>IPv4</IPFamily><HostType>IPList</HostType><ListOfIPAddresses>199.199.199.199</ListOfIPAddresses></IPHost></Set></Request>


要刪除Block_IP這個特定IP List物件,則可透過以下指令。
https://XG_IP/webconsole/APIController?reqxml=<Request><Login><Username>admin_account</Username><Password>P@ssw0rd</Password></Login><Remove><IPHost><Name>Block_IP</Name><IPFamily>IPv4</IPFamily><HostType>IPList</HostType></IPHost></Remove></Request>


若我們不想用IP List物件來管理,想要透過IP群組的方式來管理,
將要被封鎖的IP物件直接加到Block_IP_Group群組中,可以透過以下指令來建立隸屬於群組的IP物件。
https://XG_IP/webconsole/APIController?reqxml=<Request><Login><Username>admin_account</Username><Password>P@ssw0rd</Password></Login><Set operation="add"><IPHost><Name>Test_IP</Name><IPFamily>IPv4</IPFamily><HostType>IP</HostType><HostGroupList><HostGroup>Block_IP_Group</HostGroup></HostGroupList><IPAddress>199.199.199.199</IPAddress></IPHost></Set></Request>



有了以上幾個sample指令後,
在後端主機上,我們就可以透過curl(linux主機)或powershell(Windows主機)於XG上直接建立封鎖物件了∼


參考資料
How to use the API



♥順子老婆的網拍,請多關照∼

If you don't like something, change it.
If you can't change it, change your attitude.
Don't complain!




2020-09-11, 12:11 shunze 的個人資料 把 shunze 加入好友列表 發送Email給 shunze 瀏覽 shunze 的網站 MSN : shunze@gmail.com
  « 上一篇主題 下一篇主題 »
發表新主題 發表回覆
跳到:

Powered by: Burning Board 1.1.1 2001 WoltLab GbR