Хамт ажиллаж байсан бүх хүмүүс гэдэгт би итгэлтэй байна
"Гайхамшиг" харьцангуй саяхан болсон. Шинэ хувилбар гарснаар Gaia R80 боломжийг зарлав API хэрэглээ, энэ нь тохиргоо, удирдлага, хяналт гэх мэтийг автоматжуулах өргөн боломжийг нээж өгдөг. Одоо та:
- объект үүсгэх;
- хандалтын жагсаалтыг нэмэх, засах;
- ирийг идэвхжүүлэх / идэвхгүй болгох;
- сүлжээний интерфейсийг тохируулах;
- бодлогыг суулгах;
- ба түүнээс дээш.
Үнэнийг хэлэхэд, энэ мэдээ Хабраар хэрхэн дамжсаныг би ойлгохгүй байна. Энэ нийтлэлд бид API-г хэрхэн ашиглах талаар товч тайлбарлаж, хэд хэдэн практик жишээг өгөх болно. Скрипт ашиглан шалгах цэгийн тохиргоо.
API нь зөвхөн Менежментийн серверт ашиглагдана гэдгийг би даруй захиалмаар байна. Тэдгээр. Удирдлагын сервергүйгээр гарцыг удирдах боломжгүй хэвээр байна.
Энэ API-г зарчмын хувьд хэн ашиглаж чадах вэ?
- Шалгах цэгийн тохиргооны ажлыг хялбарчлах эсвэл автоматжуулахыг хүссэн системийн администраторууд;
- Check Point-ийг бусад шийдлүүдтэй (виртуалчлалын систем, тасалбарын систем, тохиргооны удирдлагын систем гэх мэт) нэгтгэх хүсэлтэй компаниуд;
- Тохиргоог стандартчилах эсвэл Check Point-тэй холбоотой нэмэлт бүтээгдэхүүн бий болгохыг хүссэн системийн интеграторууд.
Ердийн схем
Тиймээс Check Point-ийн ердийн схемийг төсөөлөөд үз дээ:
Бидэнд ердийнх шиг гарц бий (SG), удирдлагын сервер (SMS) болон админ консол (SmartConsole). Энэ тохиолдолд ердийн гарцыг тохируулах процесс дараах байдалтай байна.
Тэдгээр. Эхлээд та администраторын компьютер дээр ажиллах хэрэгтэй SmartConsole, бид удирдлагын сервертэй холбогддог (SMS). Аюулгүй байдлын тохиргоог 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 командуудыг clish-ээр оруулах (шинжээчийн горимд)
Үндсэндээ та командын мөрөнд нэвтрэхэд л хангалттай (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) SmartConsole-ээр дамжуулан CLI цонхыг нээнэ үү
Цонхыг нээхэд л хангалттай CLI -аас шууд SmartConsole, доорх зурагт үзүүлсэн шиг.
Энэ цонхонд та API командуудыг шууд оруулж эхлэх боломжтой.
4) Вэб үйлчилгээ. HTTPS шуудангийн хүсэлтийг ашиглах (REST API)
Бидний бодлоор энэ бол хамгийн ирээдүйтэй аргуудын нэг юм, учир нь дээр үндэслэн бүхэл бүтэн программуудыг "бүтээх" боломжийг танд олгоно удирдлагын серверийн удирдлага (тавтологийн хувьд уучлаарай). Доор бид энэ аргыг бага зэрэг нарийвчлан авч үзэх болно.
Нэгтгэн дүгнэхэд:
- API + cli Cisco-д дассан хүмүүст илүү тохиромжтой;
- API + бүрхүүл скрипт хэрэглэх, ердийн ажлуудыг гүйцэтгэхэд зориулагдсан;
- REST API автоматжуулалтын хувьд.
API-г идэвхжүүлж байна
Анхдагч байдлаар API нь 4 ГБ-аас дээш RAM болон 8 ГБ-аас дээш RAM-тай бие даасан тохиргоотой удирдлагын серверүүд дээр идэвхждэг. Та дараах тушаалыг ашиглан статусыг шалгаж болно. api статус
Хэрэв api идэвхгүй болсон бол SmartConsole-ээр дамжуулан идэвхжүүлэх нь маш хялбар юм. Удирдах & Тохиргоо > Blades > Удирдлагын 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) Бодлогыг нийтэлж, тохируулж, командын гүйцэтгэлийг шалгана уу (task-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. Бүр тушаалыг ашиглан лиценз суулгах боломжтой ажиллуулах-скрипт. Бүх Check Point API тушаалуудыг эндээс олж болно
Check Point API + Postman
Мөн хэрэглэхэд тохиромжтой Check Point Web API -тай хамт
Энэ хэрэгслийг ашигласнаар бид Check Point API-д вэб хүсэлт гаргах боломжтой болно. Бүх API тушаалуудыг санахгүй байхын тулд шаардлагатай бүх командыг агуулсан цуглуулга (загвар) гэж нэрлэгддэг импортлох боломжтой.
Миний бодлоор энэ нь маш тохиромжтой. Та Check Point API ашиглан програмуудыг хурдан эхлүүлэх боломжтой.
Check Point + Ansible
Байдаг гэдгийг бас хэлмээр байна Алгасах
дүгнэлт
Энд бид Check Point API-ийн товч тоймыг дуусгах байх. Миний бодлоор энэ онцлог нь маш удаан хүлээгдэж байсан бөгөөд шаардлагатай байсан. API гарч ирснээр Check Point бүтээгдэхүүнтэй ажилладаг системийн администраторууд болон системийн интеграторуудад маш өргөн боломж нээгдэж байна. Зохион байгуулалт, автоматжуулалт, SIEM-ийн санал хүсэлт... энэ бүхэн одоо боломжтой.
Жич тухай дэлгэрэнгүй нийтлэл
PSS Шалгах цэгийг тохируулахтай холбоотой техникийн асуултуудыг та асууж болно
Зөвхөн бүртгэлтэй хэрэглэгчид санал асуулгад оролцох боломжтой.
Та API ашиглахаар төлөвлөж байна уу?
-
70,6%Тийм 12
-
23,5%Үгүй 4
-
5,9%Аль хэдийн ашиглаж байна1
17 хэрэглэгч санал өгсөн. 3 хэрэглэгч түдгэлзсэн.
Эх сурвалж: www.habr.com