زه ډاډه یم چې هرڅوک چې کله هم ورسره کار کړی وي
یوه "معجزه" په دې وروستیو کې واقع شوه. د نوې نسخې په خپرولو سره Gaia R80 فرصت اعلان شو د API کارول، کوم چې د اتوماتیک تنظیماتو ، ادارې ، نظارت او نورو لپاره پراخه فرصتونه خلاصوي. اوس تاسو کولی شئ:
- توکي جوړول؛
- د لاسرسي لیستونه اضافه کول یا سمول؛
- بلیډونه فعال او غیر فعال کړئ؛
- د شبکې انٹرفیس تنظیم کړئ؛
- د پالیسیو نصبول؛
- او ډیر نور.
د ریښتیني کیدو لپاره ، زه نه پوهیږم چې دا خبر څنګه د حبر لخوا تیر شو. پدې مقاله کې به موږ په لنډه توګه تشریح کړو چې څنګه د API کارولو څرنګوالی او څو عملي مثالونه وړاندې کړو. د سکریپټونو په کارولو سره د چیک پوائنټ ترتیبات.
زه غواړم سمدلاسه ریزرویشن وکړم چې API یوازې د مدیریت سرور لپاره کارول کیږي. هغوی. د مدیریت سرور پرته د ګیټس اداره کول لاهم ناممکن دي.
څوک کولی شي دا API په اصولو کې وکاروي؟
- د سیسټم مدیران چې غواړي د معمول چیک پوائنټ ترتیب کولو دندې ساده یا اتومات کړي؛
- هغه شرکتونه چې غواړي د چیک پوائنټ د نورو حلونو سره مدغم کړي (مجازی سیسټمونه، د ټکټ سیسټمونه، د ترتیب مدیریت سیسټمونه، او نور)؛
- د سیسټم ادغام کونکي چې غواړي تنظیمات معیاري کړي یا اضافي چیک پوائنټ پورې اړوند محصولات رامینځته کړي.
عادي سکیم
نو، راځئ چې د چیک پوائنټ سره یو عادي سکیم تصور کړو:
د معمول په څیر موږ دروازه لرو (SGد مدیریت سرور (پیغامونه) او اډمین کنسول (سمارټ کنسول). په دې حالت کې، د معمول دروازې ترتیب کولو پروسه داسې ښکاري:
هغوی. لومړی تاسو اړتیا لرئ د مدیر کمپیوټر چل کړئ سمارټ کنسول، د کوم سره چې موږ د مدیریت سرور سره وصل کیږو (پیغامونه). امنیتي ترتیبات په SMS کې جوړ شوي، او یوازې بیا پلي کیږي (پالیسي نصب کړئ) دروازې ته (SG).
کله چې کارول مدیریت API، موږ کولی شو اساسا لومړی ټکی پریږدو (د SmartConsole لانچ کړئ) او وکاروئ د API حکمونه مستقیم د مدیریت سرور (SMS) ته.
د API کارولو لارې
د API په کارولو سره د تنظیم کولو ترمیم کولو څلور اصلي لارې شتون لري:
1) د mgmt_cli کارولو کارول
بېلګه - # mgmt_cli د کوربه نوم host1 IP پته 192.168.2.100 اضافه کړئ
دا کمانډ د مدیریت سرور (SMS) کمانډ لاین څخه چلیږي. زه فکر کوم چې د قوماندې ترکیب روښانه دی - host1 د 192.168.2.100 پتې سره رامینځته شوی.
2) د کلش له لارې د API کمانډونه دننه کړئ (د ماهر حالت کې)
اساسا، ټول هغه څه چې تاسو یې کولو ته اړتیا لرئ د کمانډ لاین ته ننوتل دي (mgmt ننوتل) د هغه حساب لاندې چې د SmartConsole (یا روټ حساب) له لارې د نښلولو په وخت کې کارول کیږي. بیا تاسو کولی شئ دننه شئ د 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)
زموږ په نظر، دا یو له خورا ژمنو میتودونو څخه دی، ځکه تاسو ته اجازه درکوي چې پر بنسټ ټول غوښتنلیکونه "جوړ کړئ". د مدیریت سرور مدیریت (د ټوټولوژي لپاره بخښنه غواړم). لاندې به موږ دا طریقه په لږ تفصیل سره وګورو.
د لنډیز لپاره:
- API + cli د هغو خلکو لپاره ډیر مناسب چې د سیسکو سره عادت شوي؛
- API + شیل د سکریپټونو پلي کولو او د معمول کارونو ترسره کولو لپاره؛
- REST API د اتومات کولو لپاره.
د API فعالول
په ډیفالټ سره، API د مدیریت سرورونو کې د 4GB څخه ډیر رام سره او د 8GB څخه ډیر RAM سره سټایلون ترتیب سره فعال شوی. تاسو کولی شئ د کمانډ په کارولو سره وضعیت وګورئ: د api حالت
که دا معلومه شي چې api غیر فعال دی، نو د SmartConsole له لارې دا فعالول خورا اسانه دي: اداره او تنظیمات> بلیډز> مدیریت API> پرمختللي ترتیبات
بیا خپور کړئ (د خپرېدو) بدلون او کمانډ چلوي api بیا پیل کړئ.
د ویب غوښتنې + Python
د 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) پالیسي خپره او تنظیم کړئ، د کمانډ اجرا کول چیک کړئ (د دندې id):
سکریپټ
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 تاسو کولی شئ شبکې، کوربه، د لاسرسي رولونه، او نور اضافه او لرې کړئ. بلیډونه دودیز کیدی شي انټي ویروس، انټي بوټ، IPS، VPN. دا حتی ممکنه ده چې د کمانډ په کارولو سره جوازونه نصب کړئ run-script. ټول د چیک پوائنټ API کمانډونه دلته موندل کیدی شي
چیک پوائنټ API + پوسټ مین
د کارولو لپاره هم مناسب د پوائنټ ویب API چیک کړئ سره په ګډه
د دې افادیت په کارولو سره ، موږ به وکولی شو د چیک پوائنټ API ته د ویب غوښتنې رامینځته کړو. د دې لپاره چې د API ټولې کمانډونه په یاد نه وي، دا ممکنه ده چې نومول شوي ټولګې (ټیمپلیټونه) وارد کړئ، کوم چې دمخه ټول اړین حکمونه لري:
زما په اند، دا خورا اسانه دی. تاسو کولی شئ په چټکۍ سره د چیک پوائنټ API په کارولو سره د غوښتنلیکونو پراختیا پیل کړئ.
د چک نقطه + ځواب وړ
زه هم غواړم یادونه وکړم چې شتون لري ناڅاپي
پایلې
دا هغه ځای دی چې موږ به شاید د چیک پوائنټ API لنډه بیاکتنه پای ته ورسوو. زما په اند، دا فیچر خورا اوږد انتظار او اړین و. د API رامینځته کیدل د سیسټم مدیرانو او سیسټم ادغام کونکو لپاره خورا پراخه فرصتونه خلاصوي څوک چې د چیک پوائنټ محصولاتو سره کار کوي. آرکیسټریشن، اتومات، د SIEM فیډبیک ... دا ټول اوس ممکن دي.
PS په اړه نور مقالې
PSS د چیک پوائنټ تنظیم کولو پورې اړوند تخنیکي پوښتنو لپاره ، تاسو کولی شئ
یوازې راجستر شوي کاروونکي کولی شي په سروې کې برخه واخلي.
ایا تاسو د API کارولو پلان لرئ؟
-
۸۵٪هو 12
-
۸۵٪نه 4
-
۸۵٪لا دمخه کارول کیږي 1
17 کاروونکو رایه ورکړه. 3 کاروونکي منع شوي.
سرچینه: www.habr.com