چیک پوائنټ R80.10 API. د CLI، سکریپټونو او نورو له لارې مدیریت

چیک پوائنټ R80.10 API. د CLI، سکریپټونو او نورو له لارې مدیریت

زه ډاډه یم چې هرڅوک چې کله هم ورسره کار کړی وي د چک ټکیپه اړه شکايت درلود د کمانډ لاین څخه د تشکیلاتو ترمیم ناممکن. دا په ځانګړي توګه د هغو کسانو لپاره عجیب دی چې دمخه یې د سیسکو ASA سره کار کړی ، چیرې چې هرڅه په CLI کې تنظیم کیدی شي. د چیک پوائنټ سره دا شاوخوا بله لاره ده - ټول امنیتي ترتیبات په ځانګړي ډول د ګرافیکي انٹرفیس څخه ترسره شوي. په هرصورت، ځینې شیان د GUI له لارې ترسره کول په بشپړ ډول ناشونی دي (حتی یو د چیک پوائنټ په څیر اسانه). د مثال په توګه، د 100 نوي کوربه یا شبکې اضافه کولو دنده په یوه اوږده او ستړي پروسیجر بدلیږي. د هر څیز لپاره تاسو باید څو ځله موږک کلیک وکړئ او IP پته دننه کړئ. ورته د سایټونو ګروپ رامینځته کولو یا د IPS لاسلیکونو فعالولو / غیر فعال کولو لپاره هم ځي. په دې حالت کې، د غلطۍ کولو احتمال ډیر دی.

یوه "معجزه" په دې وروستیو کې واقع شوه. د نوې نسخې په خپرولو سره Gaia R80 فرصت اعلان شو د API کارول، کوم چې د اتوماتیک تنظیماتو ، ادارې ، نظارت او نورو لپاره پراخه فرصتونه خلاصوي. اوس تاسو کولی شئ:

  • توکي جوړول؛
  • د لاسرسي لیستونه اضافه کول یا سمول؛
  • بلیډونه فعال او غیر فعال کړئ؛
  • د شبکې انٹرفیس تنظیم کړئ؛
  • د پالیسیو نصبول؛
  • او ډیر نور.

د ریښتیني کیدو لپاره ، زه نه پوهیږم چې دا خبر څنګه د حبر لخوا تیر شو. پدې مقاله کې به موږ په لنډه توګه تشریح کړو چې څنګه د API کارولو څرنګوالی او څو عملي مثالونه وړاندې کړو. د سکریپټونو په کارولو سره د چیک پوائنټ ترتیبات.

زه غواړم سمدلاسه ریزرویشن وکړم چې API یوازې د مدیریت سرور لپاره کارول کیږي. هغوی. د مدیریت سرور پرته د ګیټس اداره کول لاهم ناممکن دي.

څوک کولی شي دا API په اصولو کې وکاروي؟

  1. د سیسټم مدیران چې غواړي د معمول چیک پوائنټ ترتیب کولو دندې ساده یا اتومات کړي؛
  2. هغه شرکتونه چې غواړي د چیک پوائنټ د نورو حلونو سره مدغم کړي (مجازی سیسټمونه، د ټکټ سیسټمونه، د ترتیب مدیریت سیسټمونه، او نور)؛
  3. د سیسټم ادغام کونکي چې غواړي تنظیمات معیاري کړي یا اضافي چیک پوائنټ پورې اړوند محصولات رامینځته کړي.

عادي سکیم

نو، راځئ چې د چیک پوائنټ سره یو عادي سکیم تصور کړو:

چیک پوائنټ R80.10 API. د CLI، سکریپټونو او نورو له لارې مدیریت

د معمول په څیر موږ دروازه لرو (SGد مدیریت سرور (پیغامونه) او اډمین کنسول (سمارټ کنسول). په دې حالت کې، د معمول دروازې ترتیب کولو پروسه داسې ښکاري:

چیک پوائنټ R80.10 API. د CLI، سکریپټونو او نورو له لارې مدیریت

هغوی. لومړی تاسو اړتیا لرئ د مدیر کمپیوټر چل کړئ سمارټ کنسول، د کوم سره چې موږ د مدیریت سرور سره وصل کیږو (پیغامونه). امنیتي ترتیبات په 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 مستقیم څخه سمارټ کنسوللکه څنګه چې په لاندې انځور کې ښودل شوي.

چیک پوائنټ R80.10 API. د CLI، سکریپټونو او نورو له لارې مدیریت

پدې کړکۍ کې ، تاسو سمدلاسه د API کمانډونو ننوتل پیل کولی شئ.

4) ویب خدمتونه. د HTTPS پوسټ غوښتنه وکاروئ (REST API)

زموږ په نظر، دا یو له خورا ژمنو میتودونو څخه دی، ځکه تاسو ته اجازه درکوي چې پر بنسټ ټول غوښتنلیکونه "جوړ کړئ". د مدیریت سرور مدیریت (د ټوټولوژي لپاره بخښنه غواړم). لاندې به موږ دا طریقه په لږ تفصیل سره وګورو.

د لنډیز لپاره:

  1. API + cli د هغو خلکو لپاره ډیر مناسب چې د سیسکو سره عادت شوي؛
  2. API + شیل د سکریپټونو پلي کولو او د معمول کارونو ترسره کولو لپاره؛
  3. REST API د اتومات کولو لپاره.

د API فعالول

په ډیفالټ سره، API د مدیریت سرورونو کې د 4GB څخه ډیر رام سره او د 8GB څخه ډیر RAM سره سټایلون ترتیب سره فعال شوی. تاسو کولی شئ د کمانډ په کارولو سره وضعیت وګورئ: د api حالت

که دا معلومه شي چې api غیر فعال دی، نو د SmartConsole له لارې دا فعالول خورا اسانه دي: اداره او تنظیمات> بلیډز> مدیریت API> پرمختللي ترتیبات

چیک پوائنټ R80.10 API. د CLI، سکریپټونو او نورو له لارې مدیریت

بیا خپور کړئ (د خپرېدو) بدلون او کمانډ چلوي 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 چیک کړئ سره په ګډه پوسټ مین. پوسټ مین د وینډوز، لینکس او MacOS لپاره ډیسټاپ نسخه لري. سربیره پردې، د ګوګل کروم لپاره یو پلگ ان شتون لري. دا هغه څه دي چې موږ به یې وکاروو. لومړی تاسو اړتیا لرئ په ګوګل کروم پلورنځي کې پوسټ مین ومومئ او نصب یې کړئ:

چیک پوائنټ R80.10 API. د CLI، سکریپټونو او نورو له لارې مدیریت

د دې افادیت په کارولو سره ، موږ به وکولی شو د چیک پوائنټ API ته د ویب غوښتنې رامینځته کړو. د دې لپاره چې د API ټولې کمانډونه په یاد نه وي، دا ممکنه ده چې نومول شوي ټولګې (ټیمپلیټونه) وارد کړئ، کوم چې دمخه ټول اړین حکمونه لري:

چیک پوائنټ R80.10 API. د CLI، سکریپټونو او نورو له لارې مدیریت

دا تاسو به یې ومومئ ټولګه لپاره R80.10. د واردولو وروسته، د API کمانډ ټیمپلیټونه به موږ ته شتون ولري:

چیک پوائنټ R80.10 API. د CLI، سکریپټونو او نورو له لارې مدیریت

زما په اند، دا خورا اسانه دی. تاسو کولی شئ په چټکۍ سره د چیک پوائنټ API په کارولو سره د غوښتنلیکونو پراختیا پیل کړئ.

د چک نقطه + ځواب وړ

زه هم غواړم یادونه وکړم چې شتون لري ناڅاپي موډل د CheckPoint API لپاره. ماډل تاسو ته اجازه درکوي تشکیلات اداره کړئ ، مګر دا د بهرني ستونزو حل کولو لپاره دومره اسانه ندي. په هره برنامه ژبه کې د سکریپټونو لیکل ډیر انعطاف وړ او اسانه حلونه وړاندې کوي.

پایلې

دا هغه ځای دی چې موږ به شاید د چیک پوائنټ API لنډه بیاکتنه پای ته ورسوو. زما په اند، دا فیچر خورا اوږد انتظار او اړین و. د API رامینځته کیدل د سیسټم مدیرانو او سیسټم ادغام کونکو لپاره خورا پراخه فرصتونه خلاصوي څوک چې د چیک پوائنټ محصولاتو سره کار کوي. آرکیسټریشن، اتومات، د SIEM فیډبیک ... دا ټول اوس ممکن دي.

PS په اړه نور مقالې د چک ټکی د تل په څیر تاسو کولی شئ دا زموږ په بلاګ کې ومومئ هبر یا په بلاګ کې سایټ.

PSS د چیک پوائنټ تنظیم کولو پورې اړوند تخنیکي پوښتنو لپاره ، تاسو کولی شئ دلته

یوازې راجستر شوي کاروونکي کولی شي په سروې کې برخه واخلي. ننوزئمهرباني وکړئ

ایا تاسو د API کارولو پلان لرئ؟

  • ۸۵٪هو 12

  • ۸۵٪نه 4

  • ۸۵٪لا دمخه کارول کیږي 1

17 کاروونکو رایه ورکړه. 3 کاروونکي منع شوي.

سرچینه: www.habr.com

Add a comment