Thoir sĂšil air Point R80.10 API. StiĂšireadh tro CLI, sgriobtaichean agus barrachd

Thoir sĂšil air Point R80.10 API. StiĂšireadh tro CLI, sgriobtaichean agus barrachd

Tha mi cinnteach gu bheil a h-uile duine a tha air a bhith ag obair còmhla a-riamh Rannsaich:, bha gearan air do-dhèanta an rèiteachadh a dheasachadh bhon loidhne-àithne. Tha seo gu sònraichte neònach dhaibhsan a tha air a bhith ag obair le Cisco ASA roimhe seo, far am faodar a h-uile càil a rèiteachadh anns an CLI. Le Check Point tha e an rathad eile - chaidh a h-uile suidheachadh tèarainteachd a dhèanamh a-mhàin bhon eadar-aghaidh grafaigeach. Ach, tha cuid de rudan gu tur mì-ghoireasach a dhèanamh tron ​​​​GUI (eadhon fear cho goireasach ri Check Point's). Mar eisimpleir, bidh an obair gus 100 neach-aoigheachd no lìonra ùr a chuir ris a’ tionndadh gu bhith na phròiseas fada agus duilich. Airson gach nì feumaidh tu briogadh air an luchag grunn thursan agus cuir a-steach an seòladh IP. Tha an aon rud a’ dol airson a bhith a’ cruthachadh buidheann de làraich no tomad comasachadh/comasachadh ainmean-sgrìobhte IPS. Anns a 'chùis seo, tha àrd coltachd mearachd a dhèanamh.

Thachair “mìorbhail” an ìre mhath o chionn ghoirid. Le foillseachadh an dreach ùr Gaia R80 chaidh an cothrom ainmeachadh Cleachdadh API, a tha a’ fosgladh chothroman farsaing airson suidheachaidhean fèin-ghluasadach, rianachd, sgrùdadh, msaa. A-nis faodaidh tu:

  • nithean a chruthachadh;
  • cuir ris no deasaich liostaichean ruigsinneachd;
  • comas / cuir Ă  comas lannan;
  • rèiteachadh eadar-aghaidh lĂŹonra;
  • poileasaidhean a stĂ ladh;
  • agus mòran a bharrachd.

Gus a bhith onarach, chan eil mi a’ tuigsinn mar a chaidh an naidheachd seo seachad le Habr. San artaigil seo bheir sinn cunntas goirid air mar a chleachdas tu an API agus bheir sinn seachad grunn eisimpleirean practaigeach. Roghainnean CheckPoint a’ cleachdadh sgriobtaichean.

Bu mhath leam glèidheadh ​​​​sa bhad nach eil an API air a chleachdadh ach airson an fhrithealaiche Riaghlaidh. An fheadhainn sin. Tha e do-dhèanta fhathast geataichean a riaghladh às aonais frithealaiche Riaghlaidh.

Cò as urrainn an API seo a chleachdadh ann am prionnsapal?

  1. Luchd-rianachd siostaim a tha airson gnÏomhan rèiteachaidh Check Point àbhaisteach a dhèanamh nas sÏmplidhe no fèin-ghluasadach;
  2. Companaidhean a tha airson Check Point fhilleadh a-steach le fuasglaidhean eile (siostaman virtualization, siostaman tiogaidean, siostaman riaghlaidh rèiteachaidh, msaa);
  3. Amaladairean siostaim a tha airson suidheachaidhean a dhèanamh àbhaisteach no toraidhean a bharrachd co-cheangailte ri Check Point a chruthachadh.

Sgeama Ă bhaisteach

Mar sin, smaoinichidh sinn air sgeama Ă bhaisteach le Check Point:

Thoir sĂšil air Point R80.10 API. StiĂšireadh tro CLI, sgriobtaichean agus barrachd

Mar is àbhaist tha geata againn (SG), frithealaiche riaghlaidh (SMS) agus consòil rianachd (Console Smart). Anns a 'chÚis seo, tha am pròiseas rèiteachaidh geata àbhaisteach a' coimhead mar seo:

Thoir sĂšil air Point R80.10 API. StiĂšireadh tro CLI, sgriobtaichean agus barrachd

An fheadhainn sin. An toiseach feumaidh tu ruith air coimpiutair an rianadair Console Smart, leis am bi sinn a’ ceangal ris an t-seirbheisiche Riaghlaidh (SMS). Tha roghainnean tèarainteachd air an dèanamh air an SMS, agus dìreach an uairsin air an cur an sàs (poileasaidh a stàladh) gu geata (SG).

Nuair a bhios tu a 'cleachdadh API riaghlaidh, is urrainn dhuinn gu bunaiteach leum air a’ chiad phuing (cuir air bhog SmartConsole) agus cleachdadh Òrdughan API gu dìreach chun t-seirbheisiche riaghlaidh (SMS).

Dòighean air an API a chleachdadh

Tha ceithir prìomh dhòighean ann air an rèiteachadh a dheasachadh a’ cleachdadh an API:

1) A’ cleachdadh a’ ghoireas mgmt_cli

Eisimpleir - # mgmt_cli cuir ainm aoigheachd aoigheachd1 ip-seòladh 192.168.2.100
Tha an àithne seo air a ruith bhon loidhne-àithne Management Server (SMS). Tha mi a 'smaoineachadh gu bheil co-chòrdadh na h-àithne soilleir - tha host1 air a chruthachadh leis an t-seòladh 192.168.2.100.

2) Cuir a-steach òrdughan API tro clish (ann am modh eòlaiche)

Gu bunaiteach, chan eil agad ach logadh a-steach don loidhne-àithne (mgmt logadh a-steach) fon chunntas a thathas a’ cleachdadh nuair a nì thu ceangal tro SmartConsole (no cunntas freumh). An uairsin faodaidh tu a dhol a-steach Òrdughan API (anns a’ chùis seo chan eil feum air a’ ghoireas a chleachdadh ro gach àithne mgmt_cli). Faodaidh tu a chruthachadh làn-chuimseach Sgriobtaichean BASH. Eisimpleir de sgriobt a bhios an t-òstair a 'cruthachadh:

sgriobt bash

#!/bin/bash

main() {
    clear

    #LOGIN (don't ask for username and password, user is already logged in to Management server as 'root' user)
    mgmt_cli login --root true > id_add_host.txt
    on_error_print_and_exit "Error: Failed to login, check that the server is up and running (run 'api status')"

    #READ HOST NAME
    printf "Enter host name:n"
    read -e host_name
    on_empty_input_print_and_exit "$host_name" "Error: The host's name cannot be empty."

    #READ IP ADDRESS
    printf "nEnter host IP address:n"
    read -e ip
    on_empty_input_print_and_exit "$ip" "Error: The host's IP address cannot be empty."

    #CREATE HOST
    printf "Creating new host: $host_name with IP address: $ipn"
    new_host_response=$(mgmt_cli add host name $host_name ip-address $ip -s id_add_host.txt 2> /dev/null)
    on_error_print_and_exit "Error: Failed to create host object. n$new_host_response"

    #PUBLISH THE CHANGES
    printf "nPublishing the changesn"
    mgmt_cli publish --root true -s id_add_host.txt &> /dev/null
    on_error_print_and_exit "Error: Failed to publish the changes."

    #LOGOUT
    logout
	
	printf "Done.n"
}

logout(){
	mgmt_cli logout --root true -s id_add_host.txt &> /dev/null
}

on_error_print_and_exit(){
    if [ $? -ne 0 ]; then
        handle_error "$1" 
	fi
}

handle_error(){
    printf "n$1n" #print error message
    mgmt_cli discard --root true -s id_add_host.txt &> /dev/null
    logout
    exit 1
}

on_empty_input_print_and_exit(){
	if [ -z "$1" ]; then
		printf "$2n" #print error message
		logout
		exit 0
	fi
}

# Script starts here. Call function "main".
main

Ma tha ùidh agad, faodaidh tu coimhead air a’ bhidio iomchaidh:

Cluich bhidio

3) Tro SmartConsole le bhith a 'fosgladh uinneag CLI

Chan eil agad ach an uinneag fhosgladh CLI dĂŹreach bho Console Smart, mar a chithear san dealbh gu h-ĂŹosal.

Thoir sĂšil air Point R80.10 API. StiĂšireadh tro CLI, sgriobtaichean agus barrachd

Anns an uinneag seo, faodaidh tu tòiseachadh sa bhad air òrdughan API a chuir a-steach.

4) Seirbheisean LĂŹn. Cleachd iarrtas Post HTTPS (REST API)

Nar beachd-sa, is e seo aon de na dòighean as gealltanach, oir a’ leigeil leat “aplacaidean slàn a thogail” stèidhichte air riaghladh frithealaiche stiùiridh (duilich airson an tautology). Gu h-ìosal bheir sinn sùil nas mionaidiche air an dòigh seo.

Airson geĂ rr-chunntas:

  1. API+ cli nas freagarraiche dha daoine a tha cleachdte ri Cisco;
  2. API + slige airson sgriobtaichean a chur an sĂ s agus gnĂŹomhan Ă bhaisteach a choileanadh;
  3. CÒRR API airson fèin-ghluasad.

A 'comasachadh an API

Gu gnàthach, tha an API air a chomasachadh air frithealaichean riaghlaidh le barrachd air 4GB de RAM agus rèiteachadh leotha fhèin le barrachd air 8GB de RAM. Faodaidh tu sgrùdadh a dhèanamh air an inbhe a’ cleachdadh an àithne: inbhe api

Ma thionndaidh e a-mach gu bheil an api ciorramach, tha e gu math furasta a chomasachadh tro SmartConsole: StiĂširich & roghainnean> lannan> API riaghlaidh> roghainnean adhartach

Thoir sĂšil air Point R80.10 API. StiĂšireadh tro CLI, sgriobtaichean agus barrachd

An uairsin foillsich (Foillsich) atharraich agus ruith an àithne ath-thòiseachadh api.

Iarrtasan lĂŹn + Python

Gus òrdughan API a chuir an gnìomh, faodaidh tu iarrtasan lìn a chleachdadh a’ cleachdadh Python agus leabharlannan iarrtasan, json. San fharsaingeachd, tha trì pàirtean ann an structar iarrtas lìn:

1) Seòladh

(https://<managemenet server>:<port>/web_api/<command>) 


2) Cinn-cinn HTTP

content-Type: application/json
x-chkp-sid: <session ID token as returned by the login command>


3) Iarrtas pĂ ighidh pĂ ighidh

Teacs ann an cruth JSON anns a bheil na diofar pharaimearan

Eisimpleir airson diofar òrdughan a ghairm:


def api_call(ip_addr, port, command, json_payload, sid):
    url = 'https://' + ip_addr + ':' + str(port) + '/web_api/' + command
    if sid == “”:
        request_headers = {'Content-Type' : 'application/json'}
    else:
        request_headers = {'Content-Type' : 'application/json', 'X-chkp-sid' : sid}
    r = requests.post(url,data=json.dumps(json_payload), headers=request_headers,verify=False)
    return r.json()                                        
'xxx.xxx.xxx.xxx' -> Ip address GAIA

Seo cuid de na gnìomhan àbhaisteach a choinnicheas tu gu tric nuair a bhios tu a’ rianachd Check Point.

1) Eisimpleir de dhleastanasan Ăšghdarrachaidh is suaicheantais:

Sgriobt


    payload = {‘user’: ‘your_user’, ‘password’ : ‘your_password’}
    response = api_call('xxx.xxx.xxx.xxx', 443, 'login',payload, '')
    return response["sid"]

    response = api_call('xxx.xxx.xxx.xxx', 443,'logout', {} ,sid)
    return response["message"]

2) Tionndaidh air na lannan agus stèidheachadh an lÏonra:

Sgriobt


new_gateway_data = {'name':'CPGleb','anti-bot':True,'anti-virus' : True,'application-control':True,'ips':True,'url-filtering':True,'interfaces':
                    [{'name':"eth0",'topology':'external','ipv4-address': 'xxx.xxx.xxx.xxx',"ipv4-network-mask": "255.255.255.0"},
                     {'name':"eth1",'topology':'internal','ipv4-address': 'xxx.xxx.xxx.xxx',"ipv4-network-mask": "255.255.255.0"}]}
new_gateway_result = api_call('xxx.xxx.xxx.xxx', 443,'set-simple-gateway', new_gateway_data ,sid)
print(json.dumps(new_gateway_result))

3) Ag atharrachadh riaghailtean balla-teine:

Sgriobt


new_access_data={'name':'Cleanup rule','layer':'Network','action':'Accept'}
new_access_result = api_call('xxx.xxx.xxx.xxx', 443,'set-access-rule', new_access_data ,sid)
print(json.dumps(new_access_result))

4) A’ cur ìre tagraidh ris:

Sgriobt


add_access_layer_application={ 'name' : 'application123',"applications-and-url-filtering" : True,"firewall" : False}
add_access_layer_application_result = api_call('xxx.xxx.xxx.xxx', 443,'add-access-layer', add_access_layer_application ,sid)
print(json.dumps(add_access_layer_application_result))

set_package_layer={"name" : "Standard","access":True,"access-layers" : {"add" : [ { "name" : "application123","position" :2}]} ,"installation-targets" : "CPGleb"}
set_package_layer_result = api_call('xxx.xxx.xxx.xxx', 443,'set-package', set_package_layer ,sid)
print(json.dumps(set_package_layer_result))

5) Foillsich agus suidhich am poileasaidh, thoir sĂšil air coileanadh na h-Ă ithne (task-id):

Sgriobt


publish_result = api_call('xxx.xxx.xxx.xxx', 443,"publish", {},sid)
print("publish result: " + json.dumps(publish_result))
new_policy = {'policy-package':'Standard','access':True,'targets':['CPGleb']}
new_policy_result = api_call('xxx.xxx.xxx.xxx', 443,'install-policy', new_policy ,sid)
print(json.dumps(new_policy_result)

task_id=(json.dumps(new_policy_result ["task-id"]))
len_str=len(task_id)
task_id=task_id[1:(len_str-1)]
show_task_id ={'task-id':(task_id)}
show_task=api_call('xxx.xxx.xxx.xxx',443,'show-task',show_task_id,sid)
print(json.dumps(show_task))

6) Cuir a-steach aoigheachd:

Sgriobt


new_host_data = {'name':'JohnDoePc', 'ip-address': '192.168.0.10'}
new_host_result = api_call('xxx.xxx.xxx.xxx', 443,'add-host', new_host_data ,sid)
print(json.dumps(new_host_result))

7) Cuir raon casg bagairt ris:

Sgriobt


set_package_layer={'name':'Standard','threat-prevention' :True,'installation-targets':'CPGleb'}
set_package_layer_result = api_call('xxx.xxx.xxx.xxx', 443,'set-package',set_package_layer,sid)
print(json.dumps(set_package_layer_result))

8) Faic liosta nan seiseanan

Sgriobt


new_session_data = {'limit':'50', 'offset':'0','details-level' : 'standard'}
new_session_result = api_call('xxx.xxx.xxx.xxx', 443,'show-sessions', new_session_data ,sid)
print(json.dumps(new_session_result))

9) Cruthaich pròifil Úr:

Sgriobt


add_threat_profile={'name':'Apeiron', "active-protections-performance-impact" : "low","active-protections-severity" : "low or above","confidence-level-medium" : "prevent",
  "confidence-level-high" : "prevent", "threat-emulation" : True,"anti-virus" : True,"anti-bot" : True,"ips" : True,
  "ips-settings" : { "newly-updated-protections" : "staging","exclude-protection-with-performance-impact" : True,"exclude-protection-with-performance-impact-mode" : "High or lower"},
  "overrides" : [ {"protection" : "3Com Network Supervisor Directory Traversal","capture-packets" : True,"action" : "Prevent","track" : "Log"},
                  {"protection" : "7-Zip ARJ Archive Handling Buffer Overflow", "capture-packets" : True,"action" : "Prevent","track" : "Log"} ]}
add_threat_profile_result=api_call('xxx.xxx.xxx.xxx',443,'add-threat-profile',add_threat_profile,sid)
print(json.dumps(add_threat_profile_result))  

10) Atharraich an gnĂŹomh airson ainm-sgrĂŹobhte IPS:

Sgriobt


set_threat_protection={
  "name" : "3Com Network Supervisor Directory Traversal",
  "overrides" : [{ "profile" : "Apeiron","action" : "Detect","track" : "Log","capture-packets" : True},
    { "profile" : "Apeiron", "action" : "Detect", "track" : "Log", "capture-packets" : False} ]}
set_threat_protection_result=api_call('xxx.xxx.xxx.xxx',443,'set-threat-protection',set_threat_protection,sid)
print(json.dumps(set_threat_protection_result))

11) Cuir ris an t-seirbheis agad:

Sgriobt


add_service_udp={    "name" : "Dota2_udp", "port" : '27000-27030',
"keep-connections-open-after-policy-installation" : False,
"session-timeout" : 0, "match-for-any" : True,
"sync-connections-on-cluster" : True,
"aggressive-aging" : {"enable" : True, "timeout" : 360,"use-default-timeout" : False  },
"accept-replies" : False}
add_service_udp_results=api_call('xxx.xxx.xxx.xxx',443,"add-service-udp",add_service_udp,sid)
print(json.dumps(add_service_udp_results))

12) Cuir roinn, lĂ rach no buidheann ris:

Sgriobt


add_application_site_category={  "name" : "Valve","description" : "Valve Games"}
add_application_site_category_results=api_call('xxx.xxx.xxx.xxx',443,"add-application-site-category",add_application_site_category,sid)
print(json.dumps(add_application_site_category_results))

add_application_site={    "name" : "Dota2", "primary-category" : "Valve",  "description" : "Dotka",
  "url-list" : [ "www.dota2.ru" ], "urls-defined-as-regular-expression" : False}
add_application_site_results=api_call('xxx.xxx.xxx.xxx',443,"add-application-site " , 
add_application_site , sid)
print(json.dumps(add_application_site_results))

add_application_site_group={"name" : "Games","members" : [ "Dota2"]}
add_application_site_group_results=api_call('xxx.xxx.xxx.xxx',443,"add-application-site-group",add_application_site_group,sid)
print(json.dumps(add_application_site_group_results))

A bharrachd air an sin, le cuideachadh API lÏn faodaidh tu lÏonraidhean, luchd-aoigheachd, dreuchdan ruigsinneachd, msaa a chuir ris agus a thoirt air falbh. Faodar lannan a ghnàthachadh Antivirus, Antibot, IPS, VPN. Tha e eadhon comasach ceadan a chuir a-steach leis an àithne ruith-sgriobhaidh. Gheibhear a h-uile òrdugh Check Point API an seo an seo.

Check Point API + Postman

Cuideachd goireasach ri chleachdadh Thoir sùil air Point Web API ann an co-bhoinn ri Fear a ’phuistTha dreachan deasg aig Postman airson Windows, Linux agus MacOS. Tha plugan ann cuideachd airson Google Chrome, a chleachdas sinn. An toiseach, lorg Postman ann am Bùth Google Chrome agus stàlaich e:

Thoir sĂšil air Point R80.10 API. StiĂšireadh tro CLI, sgriobtaichean agus barrachd

A’ cleachdadh a’ ghoireas seo, bidh e comasach dhuinn iarrtasan lìn a ghineadh don Check Point API. Gus nach cuimhnich thu air na h-òrdughan API gu lèir, tha e comasach cruinneachaidhean (teamplaidean) ris an canar a thoirt a-steach, anns a bheil na h-òrdughan riatanach uile mar-thà:

Thoir sĂšil air Point R80.10 API. StiĂšireadh tro CLI, sgriobtaichean agus barrachd

tha e gheibh thu chruinneachadh airson R80.10. Às deidh an toirt a-steach, bidh teamplaidean àithne API rim faighinn leinn:

Thoir sĂšil air Point R80.10 API. StiĂšireadh tro CLI, sgriobtaichean agus barrachd

Na mo bheachd-sa, tha seo gu math goireasach. Faodaidh tu tòiseachadh gu sgiobalta air tagraidhean a leasachadh a’ cleachdadh an Check Point API.

Check Point + Ansible

Bu mhath leam a thoirt fa-near cuideachd gu bheil Freagair modal airson CheckPoint API. Leigidh am modal leat rèiteachadh a riaghladh, ach chan eil e cho goireasach airson fuasgladh fhaighinn air duilgheadasan coimheach. Bheir sgrÏobhadh sgriobtaichean ann an cànan prògramadh sam bith fuasglaidhean nas sÚbailte agus nas goireasaiche.

co-dhĂšnadh

Seo far an cuir sinn crìoch air ar lèirmheas goirid air an Check Point API. Na mo bheachd-sa, bha am feart seo air a shùileachadh o chionn fhada agus riatanach. Tha nochdadh an API a’ fosgladh chothroman fìor fharsaing dha luchd-rianachd shiostaman agus integradairean shiostaman a bhios ag obair le toraidhean Check Point. Orcastra, fèin-ghluasad, fios air ais bho SIEM ... tha e comasach a-nis.

PS Tuilleadh artaigilean mu dheidhinn Rannsaich: mar as àbhaist gheibh thu e air ar blog Habr neo air a’ bhlog aig làrach.

PSS Airson ceistean teicnigeach co-cheangailte ri stèidheachadh Check Point, faodaidh tu an seo

Chan fhaod ach luchd-cleachdaidh clĂ raichte pĂ irt a ghabhail san sgrĂšdadh. Soidhnig a-steach, mas e do thoil e.

A bheil thu an dĂšil an API a chleachdadh?

  • 70,6%Seadh12

  • 23,5%Chan eil 4

  • 5,9%A’ cleachdadh mu thrĂ th 1

Bhòt 17 neach-cleachdaidh. Cha do stad 3 neach-cleachdaidh.

Source: www.habr.com

Ceannaich aoigheachd earbsach airson làraich le dìon DDoS, frithealaichean VPS VDS 🔥 Ceannaich aoigheachd làrach-lìn earbsach le dìon DDoS, frithealaichean VPS VDS | ProHoster