рдкреЛрдЗрдиреНрдЯ R80.10 API рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред CLI, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░ рдердк рдорд╛рд░реНрдлрдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди

рдкреЛрдЗрдиреНрдЯ R80.10 API рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред CLI, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░ рдердк рдорд╛рд░реНрдлрдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди

рдо рд╡рд┐рд╢реНрд╡рд╕реНрдд рдЫреБ рдХрд┐ рд╕рдмреИрдЬрдирд╛рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реЗрдХреЛ рдЫ рдЪреЗрдХ рдкреНрд╡рд╛рдЗрдиреНрдЯ,рдмрд╛рд░реЗ рдЧреБрдирд╛рд╕реЛ рдЖрдПрдХреЛ рдерд┐рдпреЛ рдЖрджреЗрд╢ рд░реЗрдЦрд╛рдмрд╛рдЯ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╕рдореНрдкрд╛рджрди рдЧрд░реНрди рдЕрд╕рдореНрднрд╡ред рдпреЛ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рддрд┐рдиреАрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдЕрдиреМрдареЛ рдЫ рдЬрд╕рд▓реЗ рдкрд╣рд┐рд▓реЗ рд╕рд┐рд╕реНрдХреЛ рдПрдПрд╕рдПрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реЗрдХрд╛ рдЫрдиреН, рдЬрд╣рд╛рдБ рд╕рдмреИ рдХреБрд░рд╛ CLI рдорд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдЪреЗрдХ рдкреЛрдЗрдиреНрдЯрдХреЛ рд╕рд╛рде рдпреЛ рдЕрд░реНрдХреЛ рддрд░рд┐рдХрд╛ рд╣реЛ - рд╕рдмреИ рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдиреНрдЯрд░рдлреЗрд╕рдмрд╛рдЯ рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдЬреЗ рд╣реЛрд╕реН, рдХреЗрд╣рд┐ рдЪреАрдЬрд╣рд░реВ GUI рдорд╛рд░реНрдлрдд рдЧрд░реНрди рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫрдиреН (рдПрдХ рдЪреЗрдХ рдкреЛрдЗрдиреНрдЯрдХреЛ рд░реВрдкрдорд╛ рдкрдирд┐ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ)ред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, 100 рдирдпрд╛рдБ рд╣реЛрд╕реНрдЯ рд╡рд╛ рд╕рдЮреНрдЬрд╛рд▓рд╣рд░реВ рдердкреНрдиреЗ рдХрд╛рд░реНрдп рд▓рд╛рдореЛ рд░ рдХрдард┐рди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рдкрд░рд┐рдгрдд рд╣реБрдиреНрдЫред рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБрдХреЛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдИрд▓реЗ рдзреЗрд░реИ рдкрдЯрдХ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫ рд░ IP рдареЗрдЧрд╛рдирд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрдкрд░реНрдиреЗрдЫред рд╕рд╛рдЗрдЯрд╣рд░реВрдХреЛ рд╕рдореВрд╣ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╡рд╛ IPS рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ рд╕рдХреНрд╖рдо/рдЕрд╕рдХреНрд╖рдо рдкрд╛рд░реНрдиреЗ рдХрд╛рд░реНрдпрдХреЛ рд▓рд╛рдЧрд┐ рдкрдирд┐ рдпрд╣реА рд╣реЛред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдЧрд▓реНрддреА рдЧрд░реНрдиреЗ рдЙрдЪреНрдЪ рд╕рдореНрднрд╛рд╡рдирд╛ рдЫред

рдПрдХ "рдЪрдорддреНрдХрд╛рд░" рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╣рд╛рд▓реИ рднрдпреЛред рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд░рд┐рд▓реАрдЬ рд╕рдВрдЧ Gaia R80 рдЕрд╡рд╕рд░ рдШреЛрд╖рдгрд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ API рдкреНрд░рдпреЛрдЧ, рдЬрд╕рд▓реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реЗрдЯрд┐рдЩрд╣рд░реВ, рдкреНрд░рд╢рд╛рд╕рди, рдирд┐рдЧрд░рд╛рдиреА, тАЛтАЛрдЗрддреНрдпрд╛рджрд┐рдХрд╛ рд▓рд╛рдЧрд┐ рд╡реНрдпрд╛рдкрдХ рдЕрд╡рд╕рд░рд╣рд░реВ рдЦреЛрд▓реНрдЫред рдЕрдм рддрдкрд╛рдИрдВ рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

  • рд╡рд╕реНрддреБрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН;
  • рдкрд╣реБрдБрдЪ рд╕реВрдЪреАрд╣рд░реВ рдердкреНрдиреБрд╣реЛрд╕реН рд╡рд╛ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдиреБрд╣реЛрд╕реН;
  • рдмреНрд▓реЗрдб рд╕рдХреНрд╖рдо / рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрдиреБрд╣реЛрд╕реН;
  • рдиреЗрдЯрд╡рд░реНрдХ рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН;
  • рдиреАрддрд┐рд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН;
  • рд░ рдзреЗрд░реИ рдмрдвреАред

рдЗрдорд╛рдирджрд╛рд░реАрдкреВрд░реНрд╡рдХ рднрдиреНрдиреБрдкрд░реНрджрд╛, рдореИрд▓реЗ рдмреБрдЭрд┐рди рдХрд┐ рдпреЛ рд╕рдорд╛рдЪрд╛рд░ рд╣рдмреНрд░рджреНрд╡рд╛рд░рд╛ рдХрд╕рд░реА рдкрд╛рд░рд┐рдд рднрдпреЛред рдпрд╕ рд▓реЗрдЦрдорд╛ рд╣рд╛рдореА рдПрдкреАрдЖрдИ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд░ рдзреЗрд░реИ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗ рдЫреЛрдЯрдХрд░реАрдорд╛ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗрдЫреМрдВред рд▓рд┐рдкрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЪреЗрдХрдкреЛрдЗрдиреНрдЯ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ.

рдо рддреБрд░реБрдиреНрддреИ рд░рд┐рдЬрд░реНрднреЗрд╕рди рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБ рдХрд┐ API рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╕рд░реНрднрд░рдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рддреАред рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╕рд░реНрднрд░ рдмрд┐рдирд╛ рдЧреЗрдЯрд╡реЗрд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рдЕрдЭреИ рдЕрд╕рдореНрднрд╡ рдЫред

рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛ рдпреЛ API рдХрд╕рд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫ?

  1. рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╢рд╛рд╕рдХрд╣рд░реВ рдЬреЛ рдирд┐рдпрдорд┐рдд рдЪреЗрдХ рдкреЛрдЗрдиреНрдЯ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рд░рд▓ рд╡рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫрдиреН;
  2. рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдирд╣рд░реВ (рднрд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ, рдЯрд┐рдХрдЯ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ, рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ, рдЖрджрд┐) рд╕рдБрдЧ рдЪреЗрдХ рдкреЛрдЗрдиреНрдЯ рдПрдХреАрдХреГрдд рдЧрд░реНрди рдЪрд╛рд╣рдиреЗ рдХрдореНрдкрдиреАрд╣рд░реВ;
  3. рдкреНрд░рдгрд╛рд▓реА рдЗрдиреНрдЯрд┐рдЧреНрд░реЗрдЯрд░рд╣рд░реВ рдЬреЛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдорд╛рдирдХреАрдХрд░рдг рдЧрд░реНрди рд╡рд╛ рдердк рдЪреЗрдХ рдкреЛрдЗрдиреНрдЯ-рд╕рдореНрдмрдиреНрдзрд┐рдд рдЙрддреНрдкрд╛рджрдирд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫрдиреНред

рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛

рддреНрдпрд╕реЛрднрдП, рдЪреЗрдХ рдкреЛрдЗрдиреНрдЯрдХреЛ рд╕рд╛рде рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛рдХреЛ рдХрд▓реНрдкрдирд╛ рдЧрд░реМрдВ:

рдкреЛрдЗрдиреНрдЯ R80.10 API рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред CLI, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░ рдердк рдорд╛рд░реНрдлрдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди

рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рд╣рд╛рдореАрд╕рдБрдЧ рдПрдЙрдЯрд╛ рдЧреЗрдЯрд╡реЗ рдЫ (SG), рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╕рд░реНрднрд░ (рдПрд╕рдПрдордПрд╕) рд░ рдПрдбрдорд┐рди рдХрдиреНрд╕реЛрд▓ (SmartConsole)ред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╕рд╛рдорд╛рдиреНрдп рдЧреЗрдЯрд╡реЗ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

рдкреЛрдЗрдиреНрдЯ R80.10 API рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред CLI, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░ рдердк рдорд╛рд░реНрдлрдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди

рддреАред рдкрд╣рд┐рд▓реЗ рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рд╢рд╛рд╕рдХрдХреЛ рдХрдореНрдкреНрдпреБрдЯрд░рдорд╛ рдЪрд▓рд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ SmartConsole, рдЬрд╕рдХреЛ рд╕рд╛рде рд╣рд╛рдореА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╕рд░реНрднрд░рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрдЫреМрдВ (рдПрд╕рдПрдордПрд╕)ред рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдПрд╕рдПрдордПрд╕рдорд╛ рдмрдирд╛рдЗрдиреНрдЫ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдорд╛рддреНрд░ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫ (рдиреАрддрд┐ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН) рдЧреЗрдЯрд╡реЗ (SG).

рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди API, рд╣рд╛рдореА рдореВрд▓ рд░реВрдкрдорд╛ рдкрд╣рд┐рд▓реЛ рдмрд┐рдиреНрджреБ рдЫреЛрдбреНрди рд╕рдХреНрдЫреМрдВ (рд╕реНрдорд╛рд░реНрдЯ рдХрдиреНрд╕реЛрд▓ рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН) рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН API рдЖрджреЗрд╢рд╣рд░реВ рд╕реАрдзрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╕рд░реНрднрд░ (SMS) рдорд╛ред

API рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛рд╣рд░реВ

API рдХреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╕рдореНрдкрд╛рджрди рдЧрд░реНрди рдЪрд╛рд░ рдореБрдЦреНрдп рддрд░рд┐рдХрд╛рд╣рд░реВ рдЫрдиреН:

1) mgmt_cli рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ

рдЙрджрд╛рд╣рд░рдг - # mgmt_cli рд╣реЛрд╕реНрдЯ рдирд╛рдо host1 ip-рдареЗрдЧрд╛рдирд╛ 192.168.2.100 рдердкреНрдиреБрд╣реЛрд╕реН
рдпреЛ рдЖрджреЗрд╢ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╕рд░реНрднрд░ (SMS) рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирдмрд╛рдЯ рдЪрд▓рд╛рдЗрдПрдХреЛ рдЫред рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрдорд╛рдгреНрдбрдХреЛ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рд╕реНрдкрд╖реНрдЯ рдЫ - host1 рдареЗрдЧрд╛рдирд╛ 192.168.2.100 рд╕рдБрдЧ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред

2) clish рдорд╛рд░реНрдлрдд API рдЖрджреЗрд╢рд╣рд░реВ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдореЛрдбрдорд╛)

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рддрдкрд╛рдИрд▓реЗ рдЧрд░реНрдиреБ рдкрд░реНрдиреЗ рднрдиреЗрдХреЛ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирдорд╛ рд▓рдЧ рдЗрди рдЧрд░реНрдиреБ рд╣реЛ (mgmt рд▓рдЧрдЗрди) рдЦрд╛рддрд╛ рдЕрдиреНрддрд░реНрдЧрдд рдЬреБрди SmartConsole (рд╡рд╛ рд░реВрдЯ рдЦрд╛рддрд╛) рдорд╛рд░реНрдлрдд рдЬрдбрд╛рди рдЧрд░реНрджрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рддреНрдпрд╕рдкрдЫрд┐ рддрдкрд╛рдЗрдБ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ API рдЖрджреЗрд╢рд╣рд░реВ (рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдЖрджреЗрд╢ рдЕрдШрд┐ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрди mgmt_cli)ред рддрдкрд╛рдИрдВ рдкреВрд░реНрдг рдмрдиреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ 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 рд╕реАрдзрд╛ рджреЗрдЦрд┐ SmartConsole, рддрд▓ рдЪрд┐рддреНрд░рдорд╛ рджреЗрдЦрд╛рдЗрдПрдХреЛ рд░реВрдкрдорд╛ред

рдкреЛрдЗрдиреНрдЯ R80.10 API рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред CLI, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░ рдердк рдорд╛рд░реНрдлрдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди

рдпрд╕ рд╡рд┐рдиреНрдбреЛрдорд╛, рддрдкрд╛рдЗрдБ рддреБрд░реБрдиреНрддреИ API рдЖрджреЗрд╢рд╣рд░реВ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрди рд╕реБрд░реБ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

4) рд╡реЗрдм рд╕реЗрд╡рд╛рд╣рд░реВред HTTPS рдкреЛрд╕реНрдЯ рдЕрдиреБрд░реЛрдз рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН (REST API)

рд╣рд╛рдореНрд░реЛ рд╡рд┐рдЪрд╛рд░рдорд╛, рдпреЛ рд╕рдмреИрднрдиреНрджрд╛ рдЖрд╢рд╛рдЬрдирдХ рд╡рд┐рдзрд┐рд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рд╣реЛ, рдХрд┐рдирднрдиреЗ рдорд╛ рдЖрдзрд╛рд░рд┐рдд рд╕рдореНрдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ "рдирд┐рд░реНрдорд╛рдг" рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╕рд░реНрднрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рдЯрд╛рдЯреЛрд▓реЛрдЬреАрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рдл рдЧрд░реНрдиреБрд╣реЛрд╕реН)ред рддрд▓ рд╣рд╛рдореА рдпрд╕ рд╡рд┐рдзрд┐рд▓рд╛рдИ рдереЛрд░реИ рд╡рд┐рд╕реНрддрд╛рд░рдорд╛ рд╣реЗрд░реНрдиреЗрдЫреМрдВред

рд╕рдВрдХреНрд╖реЗрдк рдЧрд░реНрди:

  1. API + cli рд╕рд┐рд╕реНрдХреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд;
  2. API + рд╢реЗрд▓ рд▓рд┐рдкрд┐рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди рд░ рдирд┐рдпрдорд┐рдд рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐;
  3. REST API рд╕реНрд╡рдЪрд╛рд▓рдирдХреЛ рд▓рд╛рдЧрд┐ред

API рд╕рдХреНрд╖рдо рдЧрд░реНрджреИ

рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, RAM рдХреЛ 4GB рднрдиреНрджрд╛ рдмрдвреА рд░ 8GB RAM рднрдиреНрджрд╛ рдмрдвреАрдХреЛ рд╕рд╛рде рд╕реНрдЯреНрдпрд╛рдиреНрдбрдЕрд▓реЛрди рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВ рднрдПрдХрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ API рд╕рдХреНрд╖рдо рдЧрд░рд┐рдПрдХреЛ рдЫред рддрдкрд╛рдИрдВ рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрдерд┐рддрд┐ рдЬрд╛рдБрдЪ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ: рдПрдкреАрдЖрдИ рд╕реНрдерд┐рддрд┐

рдпрджрд┐ рдпреЛ рдкрддреНрддрд╛ рд▓рд╛рдЧреНрдпреЛ рдХрд┐ рдПрдкреАрдЖрдИ рдЕрд╕рдХреНрд╖рдо рдЧрд░рд┐рдПрдХреЛ рдЫ, рддрдм рдпрд╕рд▓рд╛рдИ SmartConsole рдорд╛рд░реНрдлрдд рд╕рдХреНрд╖рдо рдЧрд░реНрди рдПрдХрджрдо рд╕рдЬрд┐рд▓реЛ рдЫ: рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд░ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ > рдмреНрд▓реЗрдб > рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди API > рдЙрдиреНрдирдд рд╕реЗрдЯрд┐рдЩрд╣рд░реВ

рдкреЛрдЗрдиреНрдЯ R80.10 API рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред CLI, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░ рдердк рдорд╛рд░реНрдлрдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди

рддреНрдпрд╕рдкрдЫрд┐ рдкреНрд░рдХрд╛рд╢рд┐рдд (рдкреНрд░рдХрд╛рд╢рд┐рдд) рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН рдПрдкреАрдЖрдИ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН.

рд╡реЗрдм рдЕрдиреБрд░реЛрдзрд╣рд░реВ + рдкрд╛рдЗрдерди

API рдЖрджреЗрд╢рд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди, рддрдкрд╛рдЗрдБ рд╡реЗрдм рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЕрдЬрдЧрд░ рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдЕрдиреБрд░реЛрдзрд╣рд░реВ, JSONред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рд╡реЗрдм рдЕрдиреБрд░реЛрдзрдХреЛ рд╕рдВрд░рдЪрдирд╛рдорд╛ рддреАрди рднрд╛рдЧрд╣рд░реВ рд╣реБрдиреНрдЫрдиреН:

рез)рдареЗрдЧрд╛рдирд╛

(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))

резреи) рд╡рд░реНрдЧ, рд╕рд╛рдЗрдЯ рд╡рд╛ рд╕рдореВрд╣ рдердкреНрдиреБрд╣реЛрд╕реН:

рд▓рд┐рдкрд┐


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 рдЖрджреЗрд╢рд╣рд░реВ рдпрд╣рд╛рдБ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫ рдпрд╣рд╛рдБ.

рдкреЛрдЗрдиреНрдЯ API + рдкреЛрд╕реНрдЯрдореНрдпрд╛рди рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдкрдирд┐ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрд┐рдиреНрджреБ рд╡реЗрдм API рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд╕рдВрдЧ рд╕рдВрдпреЛрдЬрди рдорд╛ рд╣реБрд▓рд╛рдХреАред Postman рд╕рдБрдЧ Windows, Linux рд░ MacOS рдХреЛ рд▓рд╛рдЧрд┐ рдбреЗрд╕реНрдХрдЯрдк рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдЫрдиреНред рдердк рд░реВрдкрдорд╛, рддреНрдпрд╣рд╛рдБ Google Chrome рдХреЛ рд▓рд╛рдЧреА рдПрдХ рдкреНрд▓рдЧрдЗрди рдЫред рдпреЛ рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВред рдкрд╣рд┐рд▓реЗ рддрдкрд╛рдИрдВрд▓реЗ рдЧреБрдЧрд▓ рдХреНрд░реЛрдо рд╕реНрдЯреЛрд░рдорд╛ рдкреЛрд╕реНрдЯрдореНрдпрд╛рди рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:

рдкреЛрдЗрдиреНрдЯ R80.10 API рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред CLI, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░ рдердк рдорд╛рд░реНрдлрдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди

рдпреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рд╣рд╛рдореА рдЪреЗрдХ рдкреЛрдЗрдиреНрдЯ API рдорд╛ рд╡реЗрдм рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗрдЫреМрдВред рд╕рдмреИ рдПрдкреАрдЖрдИ рдЖрджреЗрд╢рд╣рд░реВ рдпрд╛рдж рдирдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдерд╛рдХрдерд┐рдд рд╕рдВрдЧреНрд░рд╣рд╣рд░реВ (рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВ) рдЖрдпрд╛рдд рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫ, рдЬрд╕рдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рдмреИ рдЖрд╡рд╢реНрдпрдХ рдЖрджреЗрд╢рд╣рд░реВ рдЫрдиреН:

рдкреЛрдЗрдиреНрдЯ R80.10 API рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред CLI, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░ рдердк рдорд╛рд░реНрдлрдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди

рдпреЛ рдЫ рддрдкрд╛рдИрдВ рднреЗрдЯреНрдЯрд╛рдЙрдиреБрд╣реБрдиреЗрдЫ рд╕рдВрдЧреНрд░рд╣ рд▓рд╛рдЧрд┐ R80.10ред рдЖрдпрд╛рдд рдЧрд░реЗрдкрдЫрд┐, API рдЖрджреЗрд╢ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВ рд╣рд╛рдореАрд▓рд╛рдИ рдЙрдкрд▓рдмреНрдз рд╣реБрдиреЗрдЫрдиреН:

рдкреЛрдЗрдиреНрдЯ R80.10 API рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред CLI, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░ рдердк рдорд╛рд░реНрдлрдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди

рдореЗрд░реЛ рд╡рд┐рдЪрд╛рд░рдорд╛, рдпреЛ рдзреЗрд░реИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫред рддрдкрд╛рдИрдВрд▓реЗ рдЪреЗрдХ рдкреНрд╡рд╛рдЗрдиреНрдЯ API рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди рджреНрд░реБрдд рд░реВрдкрдорд╛ рд╕реБрд░реБ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдЬрд╛рдБрдЪ рдмрд┐рдиреНрджреБ + рдЙрддреНрддрд░рдпреЛрдЧреНрдп

рддреНрдпрд╣рд╛рдБ рд░рд╣реЗрдХреЛ рдкрдирд┐ рдо рдиреЛрдЯ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБ рдЕрдЬреНрдЮрд╛рдд рдореЛрдбреНрдпреБрд▓ CheckPoint API рдХреЛ рд▓рд╛рдЧрд┐ред рдореЛрдбреНрдпреБрд▓рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рддрд░ рдпреЛ рд╡рд┐рджреЗрд╢реА рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рддреНрдпрддрд┐ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫреИрдиред рдХреБрдиреИ рдкрдирд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рдорд╛ рд▓рд┐рдкрд┐ рд▓реЗрдЦреНрджрд╛ рдердк рд▓рдЪрд┐рд▓реЛ рд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

рдпреЛ рдЬрд╣рд╛рдБ рд╣рд╛рдореА рд╕рдореНрднрд╡рддрдГ рдЪреЗрдХ рдкреЛрдЗрдиреНрдЯ API рдХреЛ рд╣рд╛рдореНрд░реЛ рдЫреЛрдЯреЛ рд╕рдореАрдХреНрд╖рд╛ рд╕рдорд╛рдкреНрдд рдЧрд░реНрдиреЗрдЫреМрдВред рдореЗрд░реЛ рд╡рд┐рдЪрд╛рд░рдорд╛, рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рдзреЗрд░реИ рд▓рд╛рдореЛ-рдкреНрд░рддреАрдХреНрд╖рд┐рдд рд░ рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛред API рдХреЛ рдЙрджрдпрд▓реЗ рдЪреЗрдХ рдкреНрд╡рд╛рдЗрдиреНрдЯ рдЙрддреНрдкрд╛рджрдирд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╢рд╛рд╕рдХрд╣рд░реВ рд░ рдкреНрд░рдгрд╛рд▓реА рдПрдХреАрдХрд░рдгрдХрд░реНрддрд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рдлрд░рд╛рдХрд┐рд▓реЛ рдЕрд╡рд╕рд░рд╣рд░реВ рдЦреЛрд▓реНрдЫред рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди, рд╕реНрд╡рдЪрд╛рд▓рди, SIEM рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛... рдпреЛ рд╕рдмреИ рдЕрдм рд╕рдореНрднрд╡ рдЫред

PS рдмрд╛рд░реЗ рдердк рд▓реЗрдЦ рдЪреЗрдХ рдкреНрд╡рд╛рдЗрдиреНрдЯ рдЬрд╣рд┐рд▓реЗ рдкрдирд┐ рддрдкрд╛рдИрд▓реЗ рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧрдорд╛ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ Habr рд╡рд╛ рдмреНрд▓рдЧ рдорд╛ рдорд╛ рд╕рд╛рдЗрдЯ.

PSS рдЪреЗрдХ рдкреЛрдЗрдиреНрдЯ рд╕реЗрдЯрдЕрдк рдЧрд░реНрди рд╕рдореНрдмрдиреНрдзрд┐рдд рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВ рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдпрд╣рд╛рдБ

рджрд░реНрддрд╛ рднрдПрдХрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорд╛рддреНрд░ рд╕рд░реНрд╡реЗрдХреНрд╖рдгрдорд╛ рднрд╛рдЧ рд▓рд┐рди рд╕рдХреНрдЫрдиреНред рд╕рд╛рдЗрди рдЗрди рдЧрд░реНрдиреБрд╣реЛрд╕реНрдХреГрдкрдпрд╛

рдХреЗ рддрдкрд╛рдЗрдБ API рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрд╣реБрдиреБрд╣реБрдиреНрдЫ?

  • 70,6%рд╣реЛ 12

  • 23,5%рдирдореНрдмрд░ реореж

  • 5,9%рдкрд╣рд┐рд▓реЗ рдиреИ 1 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ

17 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорддрджрд╛рди рдЧрд░реЗред реи рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рд░реЛрдХрд┐рдПред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди