
Π‘ΠΈΠ³ΡΡΠ΅Π½ ΡΡΠΌ, ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ, ΠΊΠΎΠΉΡΠΎ Π΅ ΡΠ°Π±ΠΎΡΠΈΠ» Ρ , Π΅ ΠΈΠΌΠ°Π» ΠΎΠΏΠ»Π°ΠΊΠ²Π°Π½Π΅ ΠΎΡΠ½ΠΎΡΠ½ΠΎ Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄. Π’ΠΎΠ²Π° Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΡΡΠ΄Π½ΠΎ Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΡΠ° ΡΠ°Π±ΠΎΡΠΈΠ»ΠΈ Ρ Cisco ASA, ΠΊΡΠ΄Π΅ΡΠΎ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠΈΡΠΊΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΎ Π² CLI. ΠΡΠΈ Check Point Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ β Π²ΡΠΈΡΠΊΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΡ Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π½ΡΠΊΠΎΠΈ Π½Π΅ΡΠ° Π½Π΅ ΡΠ° ΡΠ΄ΠΎΠ±Π½ΠΈ Π·Π° ΠΏΡΠ°Π²Π΅Π½Π΅ ΡΡΠ΅Π· GUI (Π΄ΠΎΡΠΈ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΠ΄ΠΎΠ±Π΅Π½, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π½Π° Check Point). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π΄Π°ΡΠ°ΡΠ° Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° 100 Π½ΠΎΠ²ΠΈ Ρ
ΠΎΡΡΠΎΠ²Π΅ ΠΈΠ»ΠΈ ΠΌΡΠ΅ΠΆΠΈ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΡΠ° Π² Π΄ΡΠ»Π³Π° ΠΈ Π΄ΠΎΡΠ°Π΄Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°. ΠΠ° Π²ΡΠ΅ΠΊΠΈ ΠΎΠ±Π΅ΠΊΡ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ Π΄Π° ΡΡΠ°ΠΊΠ½Π΅ΡΠ΅ Ρ ΠΌΠΈΡΠΊΠ°ΡΠ° ΠΈ Π΄Π° Π²ΡΠ²Π΅Π΄Π΅ΡΠ΅ IP Π°Π΄ΡΠ΅ΡΠ°. Π‘ΡΡΠΎΡΠΎ Π²Π°ΠΆΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π³ΡΡΠΏΠΈ ΡΠ°ΠΉΡΠΎΠ²Π΅ ΠΈΠ»ΠΈ ΠΌΠ°ΡΠΎΠ²ΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅/ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° IPS ΡΠΈΠ³Π½Π°ΡΡΡΠΈ. ΠΡΠΈ ΡΠΎΠ²Π° ΠΈΠΌΠ° Π³ΠΎΠ»ΡΠΌΠ° Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡ Π΄Π° Π΄ΠΎΠΏΡΡΠ½Π΅ΡΠ΅ Π³ΡΠ΅ΡΠΊΠ°.
ΠΡΠ½ΠΎΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠΊΠΎΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠΈ "ΡΡΠ΄ΠΎ". Π‘ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Gaia R80 Π±Π΅ Π°Π½ΠΎΠ½ΡΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° API, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡΠ²Π°ΡΡ ΡΠΈΡΠΎΠΊΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Π½Π΅, ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ Ρ.Π½. Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π°:
- ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΎΠ±Π΅ΠΊΡΠΈ;
- Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°ΡΠ΅ access-list-ΠΎΠ²Π΅;
- Π²ΠΊΠ»ΡΡΠ²Π°ΡΠ΅/ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°ΡΠ΅ Π±Π»Π΅ΠΉΠ΄ΠΎΠ²Π΅;
- Π½Π°ΡΡΡΠΎΠΉΠ²Π°ΡΠ΅ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ;
- ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ;
- ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ.
ΠΠΊΠΎ ΡΠ΅ΡΡΠ½ΠΎ, Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ ΠΊΠ°ΠΊ ΡΠ°Π·ΠΈ Π½ΠΎΠ²ΠΈΠ½Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π° ΠΏΠΎΠΊΡΠ°ΠΉ Π₯Π°Π±ΡΠ°. Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π½Π°ΠΊΡΠ°ΡΠΊΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ API ΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Check Point Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅.
ΠΡΠΊΠ°ΠΌ Π΄Π° ΡΡΠΎΡΠ½Ρ, ΡΠ΅ API ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°ΠΌΠΎ Π·Π° Management ΡΡΡΠ²ΡΡ. Π’.Π΅. ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ»ΡΠ·ΠΈΡΠ΅ Π±Π΅Π· Management ΡΡΡΠ²ΡΡ Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΠ° ΠΊΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΡΠΎΠ·ΠΈ API?
- Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° ΠΎΠΏΡΠΎΡΡΡΡ ΠΈΠ»ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Ρ ΡΡΡΠΈΠ½Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Check Point;
- ΠΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Ρ Check Point Ρ Π΄ΡΡΠ³ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ (Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΡΠΈΠΊΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ Π΄Ρ.);
- Π‘ΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ ΠΈΠ»ΠΈ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π°Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Check Point.
Π’ΠΈΠΏΠΎΠ²Π° ΡΡ Π΅ΠΌΠ°
Π ΡΠ°ΠΊΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠΌΠ΅ ΡΠΈΠΏΠΎΠ²Π° ΡΡ Π΅ΠΌΠ° Ρ Check Point:

ΠΠ°ΠΊΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ, ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ»ΡΠ· (SG), ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ ΡΡΡΠ²ΡΡ (SMS) ΠΈ ΠΊΠΎΠ½Π·ΠΎΠ»Π° Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° (SmartConsole). ΠΠ±ΠΈΡΠ°ΠΉΠ½ΠΈΡΡ ΠΏΡΠΎΡΠ΅Ρ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΡΠ»ΡΠ·Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:

Π’.Π΅. ΠΏΡΡΠ²ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΡΠ° Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ SmartConsole, Ρ ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°ΠΌΠ΅ Ρ Management-ΡΡΡΠ²ΡΡΠ° (SMS). ΠΠ° SMS ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°ΡΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΎΠ½Π½ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ) Π½Π° ΡΠ»ΡΠ·Π° (SG).
ΠΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Management API, ΠΏΡΠΈΠ½ΡΠΈΠΏΠ½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠΎΠΏΡΡΠ½Π΅ΠΌ ΠΏΡΡΠ²Π°ΡΠ° ΡΠΎΡΠΊΠ° (ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° SmartConsole) ΠΈ Π΄Π° ΠΏΡΠΈΠ»Π°Π³Π°ΠΌΠ΅ API ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΊΡΠΌ Management-ΡΡΡΠ²ΡΡΠ° (SMS).
ΠΠ°ΡΠΈΠ½ΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° API
ΠΠ° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° API ΠΈΠΌΠ° ΡΠ΅ΡΠΈΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π½Π°ΡΠΈΠ½Π°:
1) Π‘ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° mgmt_cli
ΠΡΠΈΠΌΠ΅Ρ β # mgmt_cli add host name host1 ip-address 192.168.2.100
Π’Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ Π½Π° Management-ΡΡΡΠ²ΡΡΠ° (SMS). ΠΠΈΡΠ»Ρ, ΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡΡ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π΅ ΡΡΠ΅Π½ β ΡΡΠ·Π΄Π°Π²Π° ΡΠ΅ host1 Ρ Π°Π΄ΡΠ΅Ρ 192.168.2.100.
2) ΠΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° API ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΡΡΠ΅Π· clish (Π² ΡΠ΅ΠΆΠΈΠΌ expert)
ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ, Π²ΡΠΈΡΠΊΠΎ ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅, Π΅ Π΄Π° ΡΠ΅ Π»ΠΎΠ³Π½Π΅ΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ (mgmt login) Ρ Π°ΠΊΠ°ΡΠ½Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠΈ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ ΠΏΡΠ΅Π· 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) Π§ΡΠ΅Π· SmartConsole, ΠΎΡΠ²Π°ΡΡΠΉΠΊΠΈ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ CLI
ΠΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅, Π΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ CLI Π½Π°ΠΏΡΠ°Π²ΠΎ ΠΎΡ SmartConsole, ΠΊΠ°ΠΊΡΠΎ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°ΡΠ° ΠΏΠΎ-Π΄ΠΎΠ»Ρ.

Π ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°ΡΠ΅ API ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.
4) Π£Π΅Π± ΡΡΠ»ΡΠ³ΠΈ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° HTTPS Post Π·Π°ΡΠ²ΠΊΠ° (REST API)
Π‘ΠΌΡΡΠ°ΠΌΠ΅, ΡΠ΅ ΡΠΎΠ²Π° Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΠΉ-ΠΏΡΠΎΡΠΏΠ΅ΠΊΡΠΈΠ²Π½ΠΈΡΠ΅ Π½Π°ΡΠΈΠ½Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° "ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ" Π½Π° ΡΠ΅Π»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΠ²ΡΡΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ (ΠΈΠ·Π²ΠΈΠ½Π΅ΡΠ΅ Π·Π° ΡΠ°Π²ΡΠΎΠ»ΠΎΠ³ΠΈΡΡΠ°). ΠΠΎ-Π΄ΠΎΠ»Ρ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ.
ΠΠΊΠΎ ΠΎΠ±ΠΎΠ±ΡΠΈΠΌ:
- API + cli ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠΆΠ΄Π° Π·Π° Ρ ΠΎΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΠ²ΠΈΠΊΠ½Π°Π»ΠΈ Ρ Cisco;
- API + shell Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ ΠΈ ΡΡΡΠΈΠ½Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ;
- REST API Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ.
ΠΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° API
ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, API Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΠΌΡΠ½Ρ ΡΡΡΠ²ΡΡΠΈ Ρ RAM Π½Π°Π΄ 4ΠΠ± ΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Ρ RAM Π½Π°Π΄ 8ΠΠ±. ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ ΡΡΠ°ΡΡΡΠ° Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°: api status
ΠΠΊΠΎ ΡΠ΅ ΠΎΠΊΠ°ΠΆΠ΅, ΡΠ΅ API Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½, Π΅ Π΄ΠΎΡΡΠ° Π»Π΅ΡΠ½ΠΎ Π΄Π° Π³ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΠΏΡΠ΅Π· SmartConsole: Manage & Settings > Blades > Management API > Advanced Settings

Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°ΠΉΡΠ΅ (Publish) ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° api restart.
Web Π·Π°ΡΠ²ΠΊΠΈ + Python
ΠΠ° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° API ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Web Π·Π°ΡΠ²ΠΊΠΈ Ρ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Python ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ requests, json. Π ΠΎΠ±Ρ Π²ΠΈΠ΄ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° web Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ ΡΡΠΈ ΡΠ°ΡΡΠΈ:
1) ΠΠ΄ΡΠ΅Ρ
(https://<ΠΌΠ΅Π½ΠΈΠ΄ΠΆΠΌΡΠ½Ρ ΡΡΡΠ²ΡΡ>:<ΠΏΠΎΡΡ>/web_api/<ΠΊΠΎΠΌΠ°Π½Π΄Π°>)
2) HTTP ΠΠ°Π³Π»Π°Π²ΠΈΡ
content-Type: application/json
x-chkp-sid: <ΡΠ΅ΡΠΈΠΎΠ½Π΅Π½ ID ΡΠΎΠΊΠ΅Π½, ΠΏΠΎΠ»ΡΡΠ΅Π½ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π·Π° Π»ΠΎΠ³ΠΈΠ½>
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 Π°Π΄ΡΠ΅Ρ GAIA
Π©Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠΈΠΏΠΎΠ²ΠΈ Π·Π°Π΄Π°ΡΠΈ, Ρ ΠΊΠΎΠΈΡΠΎ Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΡΠ΅ ΡΡΠ΅ΡΠ°ΠΌΠ΅ ΠΏΡΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Π½Π΅ Π½Π° Check Point.
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))
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Web API ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈ ΠΈΠ·ΡΡΠΈΠ²Π°ΡΠ΅ ΠΌΡΠ΅ΠΆΠΈ, Ρ ΠΎΡΡΠΎΠ²Π΅, ΡΠΎΠ»ΠΈ Π·Π° Π΄ΠΎΡΡΡΠΏ ΠΈ Ρ.Π½. ΠΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π±Π»Π΅ΠΉΠ΄ΠΎΠ²Π΅ ΠΠ½ΡΠΈΠ²ΠΈΡΡΡ, ΠΠ½ΡΠΈΠ±ΠΎΡ, IPS, VPN. ΠΡΠ·ΠΌΠΎΠΆΠ½Π° Π΅ Π΄ΠΎΡΠΈ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π½Π° Π»ΠΈΡΠ΅Π½Π·ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° run-script. Π‘ Π²ΡΠΈΡΠΊΠΈ API ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π½Π° Check Point ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ .
Check Point API + Postman
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Check Point Web API Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Ρ . Postman ΠΈΠΌΠ° Π΄Π΅ΡΠΊΡΠΎΠΏ Π²Π΅ΡΡΠΈΠΈ Π·Π° Windows, Linux ΠΈ MacOS. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΠΈΠΌΠ° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ Π·Π° Google Chrome. ΠΠΈΠ΅ ΡΠ΅ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅. ΠΡΡΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Postman Π² Google Chrome Store ΠΈ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅:

Π‘ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΎΠ·ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°ΠΌΠ΅ Web-Π·Π°ΠΏΡΠΎΡΠΈ ΠΊΡΠΌ API Check Point. ΠΠ° Π΄Π° Π½Π΅ Π·Π°ΠΏΠΎΠΌΠ½ΡΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ API-ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΈΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°ΠΌΠ΅ Ρ.Π½. ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ (ΡΠ°Π±Π»ΠΎΠ½ΠΈ), ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ°Ρ Π²ΡΠΈΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:

ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π·Π° R80.10. Π‘Π»Π΅Π΄ ΠΈΠΌΠΏΠΎΡΡΠ° ΡΠ°Π±Π»ΠΎΠ½ΠΈΡΠ΅ Π½Π° API-ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ ΡΠ΅ ΡΡΠ°Π½Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ:

Π‘ΠΏΠΎΡΠ΅Π΄ ΠΌΠ΅Π½, ΡΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ. ΠΠΎΠΆΠ΅ΠΌ Π΄ΠΎΡΡΠ° Π±ΡΡΠ·ΠΎ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ Check Point API.
Check Point + Ansible
ΠΡΠΊΠ°ΠΌ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Ρ, ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Ansible Π·Π° CheckPoint API. ΠΠΎΠ΄ΡΠ»ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π½ΠΎ Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΠ΄ΠΎΠ±Π΅Π½ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° Π΅ΠΊΠ·ΠΎΡΠΈΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ. ΠΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π½Π° ΠΊΠΎΠΉΡΠΎ ΠΈ Π΄Π° Π΅ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΏΠΎ-Π³ΡΠ²ΠΊΠ°Π²ΠΈ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ·Π²ΠΎΠ΄
Π‘ ΡΠΎΠ²Π° Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠ΅ ΠΏΡΠΈΠΊΠ»ΡΡΠΈΠΌ Π½Π°ΡΠΈΡ ΠΌΠ°Π»ΡΠΊ ΠΎΠ±Π·ΠΎΡ Π½Π° Check Point API. Π‘ΠΏΠΎΡΠ΅Π΄ ΠΌΠ΅Π½, ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π΅ Π΄ΡΠ»Π³ΠΎΠΎΡΠ°ΠΊΠ²Π°Π½Π° ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°. ΠΠΎΡΠ²Π°ΡΠ° Π½Π° API ΠΎΡΠΊΡΠΈΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠΎΠΊΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΠΊΡΠΎ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ, ΡΠ°ΠΊΠ° ΠΈ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ°Π±ΠΎΡΡΡ Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡΠ΅ Π½Π° Check Point. ΠΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ, ΠΎΠ±ΡΠ°ΡΠ½Π° Π²ΡΡΠ·ΠΊΠ° Ρ SIEMβ¦ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π²Π΅ΡΠ΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ.
P.S. ΠΠΎΠ²Π΅ΡΠ΅ ΡΡΠ°ΡΠΈΠΈ Π·Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΊΠ°ΠΊΡΠΎ Π²ΠΈΠ½Π°Π³ΠΈ Π² Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³ ΠΈΠ»ΠΈ Π² Π±Π»ΠΎΠ³Π° Π½Π° .
P.S.S. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΡΠΎΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° Check Point, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅
Π‘Π°ΠΌΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ°ΡΡΠ²Π°Ρ Π² Π°Π½ΠΊΠ΅ΡΠ°ΡΠ°. , ΠΌΠΎΠ»Ρ.
ΠΠ»Π°Π½ΠΈΡΠ°ΡΠ΅ Π»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ API?
70,6%ΠΠ°12
23,5%ΠΠ΅4
5,9%ΠΠ΅ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ1
ΠΠ»Π°ΡΡΠ²Π°Π»ΠΈ 17 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. 3 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΡΠ΅ Π²ΡΠ·Π΄ΡΡΠΆΠ°Ρ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
