මෙතෙක් වැඩ කළ සෑම කෙනෙකුම බව මට විශ්වාසයි
"ප්රාතිහාර්යයක්" සාපේක්ෂව මෑතකදී සිදු විය. නව අනුවාදය නිකුත් කිරීමත් සමඟ Gaia R80 අවස්ථාව නිවේදනය කරන ලදී API භාවිතය, එය ස්වයංක්රීය සැකසුම්, පරිපාලනය, අධීක්ෂණය යනාදිය සඳහා පුළුල් අවස්ථා විවෘත කරයි. දැන් ඔබට පුළුවන්:
- වස්තූන් නිර්මාණය කරන්න;
- ප්රවේශ ලැයිස්තු එකතු කිරීම හෝ සංස්කරණය කිරීම;
- තල සක්රිය / අක්රිය කරන්න;
- ජාල අතුරුමුහුණත් වින්යාස කරන්න;
- ප්රතිපත්ති ස්ථාපනය;
- හා බොහෝ දේ.
ඇත්තම කිව්වොත්, හබ්ර් මේ ආරංචිය ගියේ කොහොමද කියලා මට තේරෙන්නේ නැහැ. මෙම ලිපියෙන් අපි API භාවිතා කරන්නේ කෙසේද යන්න කෙටියෙන් විස්තර කර ප්රායෝගික උදාහරණ කිහිපයක් ලබා දෙන්නෙමු. ස්ක්රිප්ට් භාවිතයෙන් CheckPoint සැකසුම්.
API භාවිතා කරන්නේ කළමනාකරණ සේවාදායකය සඳහා පමණක් බව වහාම වෙන් කරවා ගැනීමට මම කැමතියි. එම. කළමනාකරණ සේවාදායකයක් නොමැතිව ගේට්වේ කළමනාකරණය කිරීම තවමත් කළ නොහැක.
ප්රතිපත්තිමය වශයෙන් මෙම API භාවිතා කළ හැක්කේ කාටද?
- සාමාන්ය චෙක් පොයින්ට් වින්යාස කිරීමේ කාර්යයන් සරල කිරීමට හෝ ස්වයංක්රීය කිරීමට අවශ්ය පද්ධති පරිපාලකයින්;
- චෙක් පොයින්ට් වෙනත් විසඳුම් සමඟ ඒකාබද්ධ කිරීමට අවශ්ය සමාගම් (අථත්යකරණ පද්ධති, ටිකට් පද්ධති, වින්යාස කළමනාකරණ පද්ධති, ආදිය);
- සැකසීම් ප්රමිතිකරණය කිරීමට හෝ අතිරේක චෙක් පොයින්ට් ආශ්රිත නිෂ්පාදන නිර්මාණය කිරීමට අවශ්ය පද්ධති ඒකාබද්ධ කරන්නන්.
සාමාන්ය යෝජනා ක්රමය
එබැවින්, අපි චෙක් පොයින්ට් සමඟ සාමාන්ය යෝජනා ක්රමයක් සිතමු:
සුපුරුදු පරිදි අපට දොරටුවක් ඇත (SG), කළමනාකරණ සේවාදායකය (කෙටි පණිවිඩ) සහ පරිපාලක කොන්සෝලය (ස්මාර්ට් කොන්සෝලය) මෙම අවස්ථාවේදී, සාමාන්ය ද්වාර වින්යාස කිරීමේ ක්රියාවලිය මේ ආකාරයෙන් පෙනේ:
එම. මුලින්ම ඔබ පරිපාලකගේ පරිගණකය මත ධාවනය කළ යුතුය ස්මාර්ට් කොන්සෝලය, අපි කළමනාකරණ සේවාදායකයට සම්බන්ධ වන (කෙටි පණිවිඩ) ආරක්ෂක සැකසුම් SMS මත සාදා, පසුව පමණක් යොදනු ලැබේ (ස්ථාපනය කිරීමේ ප්රතිපත්තිය) දොරටුවට (SG).
භාවිතා කිරීම කළමනාකරණ API, අපට මූලික වශයෙන් පළමු කරුණ මඟ හැරිය හැක (SmartConsole දියත් කරන්න) සහ භාවිතා කරන්න API විධාන සෘජුවම කළමනාකරණ සේවාදායකයට (SMS).
API භාවිතා කිරීමට මාර්ග
API භාවිතයෙන් වින්යාසය සංස්කරණය කිරීමට ප්රධාන ක්රම හතරක් ඇත:
1) mgmt_cli උපයෝගීතාව භාවිතා කිරීම
උදාහරණයක් - # mgmt_cli සත්කාරක නාමය එක් කරන්න සත්කාරක1 ip-ලිපිනය 192.168.2.100
මෙම විධානය කළමනාකරණ සේවාදායකය (SMS) විධාන රේඛාවෙන් ක්රියාත්මක වේ. මම හිතන්නේ විධානයේ වාක්ය ඛණ්ඩය පැහැදිලියි - host1 නිර්මාණය කර ඇත්තේ 192.168.2.100 ලිපිනයෙනි.
2) ක්ලිෂ් හරහා API විධාන ඇතුළත් කරන්න (විශේෂඥ මාදිලියේ)
මූලික වශයෙන්, ඔබ කළ යුත්තේ විධාන රේඛාවට ලොග් වීම පමණි (mgmt පිවිසුම) SmartConsole (හෝ root ගිණුම) හරහා සම්බන්ධ වන විට භාවිතා කරන ගිණුම යටතේ. එවිට ඔබට ඇතුල් විය හැක API විධාන (මෙම අවස්ථාවේදී එක් එක් විධානයට පෙර උපයෝගීතාව භාවිතා කිරීමට අවශ්ය නොවේ mgmt_cli) ඔබට අංග සම්පූර්ණ නිර්මාණය කළ හැකිය BASH ස්ක්රිප්ට්. ධාරකය නිර්මාණය කරන ස්ක්රිප්ට් එකක උදාහරණයක්:
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
ඔබ උනන්දුවක් දක්වන්නේ නම්, ඔබට අදාළ වීඩියෝව නැරඹිය හැකිය:
3) CLI කවුළුව විවෘත කිරීමෙන් SmartConsole හරහා
ඔබ කළ යුත්තේ කවුළුව විවෘත කිරීමයි CLI කෙළින්ම සිට ස්මාර්ට් කොන්සෝලය, පහත පින්තූරයේ පෙන්වා ඇති පරිදි.
මෙම කවුළුව තුළ, ඔබට වහාම API විධාන ඇතුළත් කිරීම ආරම්භ කළ හැකිය.
4) වෙබ් සේවා. HTTPS තැපැල් ඉල්ලීම භාවිතා කරන්න (REST API)
අපගේ මතය අනුව, මෙය වඩාත් පොරොන්දු වූ ක්රම වලින් එකකි, මන්ද මත පදනම්ව සම්පූර්ණ යෙදුම් "ගොඩනැගීමට" ඔබට ඉඩ සලසයි කළමනාකරණ සේවාදායක කළමනාකරණය (tautology සඳහා සමාවන්න). පහත අපි මෙම ක්රමය ටිකක් විස්තරාත්මකව බලමු.
සාරාංශ ගත කිරීමට:
- API + cli Cisco භාවිතා කරන පුද්ගලයින් සඳහා වඩාත් සුදුසු ය;
- API + shell ස්ක්රිප්ට් යෙදීම සහ සාමාන්ය කාර්යයන් ඉටු කිරීම සඳහා;
- REST API ස්වයංක්රීයකරණය සඳහා.
API සබල කරමින්
පෙරනිමියෙන්, API 4GB RAM ට වඩා වැඩි කළමනාකරණ සේවාදායකයන් මත සහ 8GB RAM ට වඩා වැඩි ස්වාධීන වින්යාසයන් මත සක්රීය කර ඇත. විධානය භාවිතයෙන් ඔබට තත්වය පරීක්ෂා කළ හැකිය: api තත්ත්වය
Api අක්රිය කර ඇති බව පෙනේ නම්, SmartConsole හරහා එය සක්රිය කිරීම තරමක් පහසුය: කළමනාකරණය සහ සැකසීම් > බ්ලේඩ් > කළමනාකරණ API > උසස් සැකසුම්
ඉන්පසු පළ කරන්න (ප්රකාශයට පත් කරනු ලබයි) වෙනස් කර විධානය ක්රියාත්මක කරන්න api නැවත ආරම්භ කරන්න.
වෙබ් ඉල්ලීම් + පයිතන්
API විධාන ක්රියාත්මක කිරීම සඳහා, ඔබට වෙබ් ඉල්ලීම් භාවිතා කළ හැක Python මීට උදාහරණ සහ පුස්තකාල ඉල්ලීම්, json. සාමාන්යයෙන්, වෙබ් ඉල්ලීමක ව්යුහය කොටස් තුනකින් සමන්විත වේ:
1) ලිපිනය
(https://<managemenet server>:<port>/web_api/<command>)
2) HTTP ශීර්ෂ
content-Type: application/json
x-chkp-sid: <session ID token as returned by the login command>
3) ගෙවීම සඳහා ඉල්ලුම් කරන්න
විවිධ පරාමිති අඩංගු JSON ආකෘතියෙන් පෙළ
විවිධ විධාන ඇමතීම සඳහා උදාහරණයක්:
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
චෙක් පොයින්ට් පරිපාලනය කිරීමේදී ඔබ බොහෝ විට මුහුණ දෙන සාමාන්ය කාර්යයන් කිහිපයක් මෙන්න.
1) අවසර දීමේ සහ පිටවීමේ කාර්යයන් සඳහා උදාහරණ:
පිටපත
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) බ්ලේඩ් සක්රිය කිරීම සහ ජාලය සැකසීම:
පිටපත
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) ෆයර්වෝල් නීති වෙනස් කිරීම:
පිටපත
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) යෙදුම් ස්ථරය එකතු කිරීම:
පිටපත
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) ප්රතිපත්තිය ප්රකාශයට පත් කර සකසන්න, විධානය ක්රියාත්මක කිරීම පරීක්ෂා කරන්න (කාර්ය හැඳුනුම):
පිටපත
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) සත්කාරක එකතු කරන්න:
පිටපත
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) තර්ජන වැළැක්වීමේ ක්ෂේත්රයක් එක් කරන්න:
පිටපත
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) සැසි ලැයිස්තුව බලන්න
පිටපත
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) නව පැතිකඩක් සාදන්න:
පිටපත
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) IPS අත්සන සඳහා ක්රියාව වෙනස් කරන්න:
පිටපත
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) ඔබේ සේවාව එක් කරන්න:
පිටපත
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) ප්රවර්ගයක්, අඩවියක් හෝ කණ්ඩායමක් එක් කරන්න:
පිටපත
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))
ඊට අමතරව, උපකාරයෙන් වෙබ් API ඔබට ජාල, සත්කාරක, ප්රවේශ භූමිකාවන් ආදිය එකතු කිරීමට සහ ඉවත් කිරීමට හැකිය. බ්ලේඩ් අභිරුචිකරණය කළ හැකිය Antivirus, Antibot, IPS, VPN. විධානය භාවිතයෙන් බලපත්ර ස්ථාපනය කිරීමට පවා හැකිය ධාවන පිටපත. සියලුම Check Point API විධාන මෙහි සොයා ගත හැක
Point API + තැපැල්කරු පරීක්ෂා කරන්න
භාවිතා කිරීමට ද පහසු වේ Point Web API පරීක්ෂා කරන්න සමග එක්ව
මෙම උපයෝගීතාව භාවිතයෙන්, අපට Check Point API වෙත වෙබ් ඉල්ලීම් උත්පාදනය කිරීමට හැකි වනු ඇත. සියලුම API විධාන මතක තබා නොගැනීම සඳහා, අවශ්ය සියලුම විධාන දැනටමත් අඩංගු ඊනියා එකතු කිරීම් (සැකිලි) ආනයනය කළ හැකිය:
මගේ මතය අනුව, මෙය ඉතා පහසු ය. Check Point API භාවිතයෙන් ඔබට ඉක්මනින් යෙදුම් සංවර්ධනය කිරීම ආරම්භ කළ හැක.
Check Point + Ansible
තිබෙන බව ද සටහන් කිරීමට කැමැත්තෙමි පිළිතුරු
නිගමනය
අපි Check Point API පිළිබඳ අපගේ කෙටි සමාලෝචනය අවසන් කරනු ඇත්තේ මෙහිදීය. මගේ මතය අනුව, මෙම විශේෂාංගය ඉතා දිගුකාලීන අපේක්ෂිත සහ අවශ්ය විය. API හි මතුවීම, Check Point නිෂ්පාදන සමඟ වැඩ කරන පද්ධති පරිපාලකයින් සහ පද්ධති ඒකාබද්ධ කරන්නන් සඳහා ඉතා පුළුල් අවස්ථා විවෘත කරයි. වාද්ය වෘන්දය, ස්වයංක්රීයකරණය, SIEM ප්රතිපෝෂණ... ඒ සියල්ල දැන් කළ හැකි ය.
PS ගැන තවත් ලිපි
PSS චෙක් පොයින්ට් පිහිටුවීමට අදාළ තාක්ෂණික ප්රශ්න සඳහා, ඔබට හැකිය
සමීක්ෂණයට සහභාගී විය හැක්කේ ලියාපදිංචි පරිශීලකයින්ට පමණි.
ඔබ API භාවිතා කිරීමට අදහස් කරන්නේද?
-
70,6%ඔව්12
-
23,5%4
-
5,9%දැනටමත් 1 භාවිතා කරයි
පරිශීලකයින් 17 දෙනෙක් ඡන්දය දුන්හ. පරිශීලකයින් 3 දෙනෙක් ඡන්දය දීමෙන් වැළකී සිටියහ.
මූලාශ්රය: www.habr.com