เชชเซ‹เช‡เชจเซเชŸ R80.10 API เชคเชชเชพเชธเซ‹. CLI, เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธ เช…เชจเซ‡ เชตเชงเซ เชฆเซเชตเชพเชฐเชพ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ

เชชเซ‹เช‡เชจเซเชŸ R80.10 API เชคเชชเชพเชธเซ‹. CLI, เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธ เช…เชจเซ‡ เชตเชงเซ เชฆเซเชตเชพเชฐเชพ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ

เชฎเชจเซ‡ เช–เชพเชคเชฐเซ€ เช›เซ‡ เช•เซ‡ เชฆเชฐเซ‡เช• เชตเซเชฏเช•เซเชคเชฟ เชœเซ‡เชฎเชฃเซ‡ เช•เซเชฏเชพเชฐเซ‡เชฏ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซเชฏเซเช‚ เช›เซ‡ เชšเซ‡เช• เชชเซ‹เช‡เชจเซเชŸ, เชตเชฟเชถเซ‡ เชซเชฐเชฟเชฏเชพเชฆ เชนเชคเซ€ เช†เชฆเซ‡เชถ เชตเชพเช•เซเชฏเชฎเชพเช‚เชฅเซ€ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชธเช‚เชชเชพเชฆเชฟเชค เช•เชฐเชตเชพเชจเซ€ เช…เชถเช•เซเชฏเชคเชพ. เช† เชคเซ‡ เชฒเซ‹เช•เซ‹ เชฎเชพเชŸเซ‡ เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชตเชฟเชšเชฟเชคเซเชฐ เช›เซ‡ เชœเซ‡เชฎเชฃเซ‡ เช…เช—เชพเช‰ เชธเชฟเชธเซเช•เซ‹ ASA เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซเชฏเซเช‚ เช›เซ‡, เชœเซเชฏเชพเช‚ CLI เชฎเชพเช‚ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชฌเชงเซเช‚ เช—เซ‹เช เชตเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชšเซ‡เช• เชชเซ‹เชˆเชจเซเชŸ เชธเชพเชฅเซ‡ เชคเซ‡ เชฌเซ€เชœเซ€ เชฐเซ€เชคเซ‡ เช›เซ‡ - เชฌเชงเซ€ เชธเซเชฐเช•เซเชทเชพ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชซเช•เซเชค เช—เซเชฐเชพเชซเชฟเช•เชฒ เชˆเชจเซเชŸเชฐเชซเซ‡เชธเชฅเซ€ เชœ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€. เชœเซ‹ เช•เซ‡, เช•เซ‡เชŸเชฒเซ€เช• เชตเชธเซเชคเซเช“ GUI เชฆเซเชตเชพเชฐเชพ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เช…เชธเซเชตเชฟเชงเชพเชœเชจเช• เช›เซ‡ (เชšเซ‡เช• เชชเซ‹เชˆเชจเซเชŸเชจเซ€ เชœเซ‡เชฎ เช…เชจเซเช•เซ‚เชณ เชชเชฃ). เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, 100 เชจเชตเชพ เชนเซ‹เชธเซเชŸ เช…เชฅเชตเชพ เชจเซ‡เชŸเชตเชฐเซเช• เช‰เชฎเซ‡เชฐเชตเชพเชจเซเช‚ เช•เชพเชฐเซเชฏ เชเช• เชฒเชพเช‚เชฌเซ€ เช…เชจเซ‡ เช•เช‚เชŸเชพเชณเชพเชœเชจเช• เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชฎเชพเช‚ เชซเซ‡เชฐเชตเชพเชฏ เช›เซ‡. เชฆเชฐเซ‡เช• เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ‡ เช˜เชฃเซ€ เชตเช–เชค เชฎเชพเช‰เชธ เช•เซเชฒเชฟเช• เช•เชฐเชตเซเช‚ เชชเชกเชถเซ‡ เช…เชจเซ‡ IP เชธเชฐเชจเชพเชฎเซเช‚ เชฆเชพเช–เชฒ เช•เชฐเชตเซเช‚ เชชเชกเชถเซ‡. เชคเซ‡ เชœ เชธเชพเช‡เชŸเซเชธเชจเซเช‚ เชœเซ‚เชฅ เชฌเชจเชพเชตเชตเชพ เช…เชฅเชตเชพ IPS เชนเชธเซเชคเชพเช•เซเชทเชฐเซ‹เชจเซ‡ เชฎเซ‹เชŸเชพ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เชธเช•เซเชทเชฎ/เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชพเชฏ เช›เซ‡. เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชญเซ‚เชฒ เช•เชฐเชตเชพเชจเซ€ เช‰เชšเซเชš เชธเช‚เชญเชพเชตเชจเชพ เช›เซ‡.

เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เชคเชพเชœเซ‡เชคเชฐเชฎเชพเช‚ เชเช• "เชšเชฎเชคเซเช•เชพเชฐ" เชฅเชฏเซ‹. เชจเชตเชพ เชธเช‚เชธเซเช•เชฐเชฃเชจเชพ เชชเซเชฐเช•เชพเชถเชจ เชธเชพเชฅเซ‡ เช—เซˆเชฏเชพ R80 เชคเช• เชœเชพเชนเซ‡เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ API เชตเชชเชฐเชพเชถ, เชœเซ‡ เชธเซเชตเชšเชพเชฒเชฟเชค เชธเซ‡เชŸเชฟเช‚เช—เซเชธ, เชตเชนเซ€เชตเชŸ, เชฆเซ‡เช–เชฐเซ‡เช– เชตเช—เซ‡เชฐเซ‡ เชฎเชพเชŸเซ‡ เชตเชฟเชถเชพเชณ เชคเช•เซ‹ เช–เซ‹เชฒเซ‡ เช›เซ‡. เชนเชตเซ‡ เชคเชฎเซ‡ เช† เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹:

  • เชตเชธเซเชคเซเช“ เชฌเชจเชพเชตเซ‹;
  • เชเช•เซเชธเซ‡เชธ เชธเซ‚เชšเชฟเช“ เช‰เชฎเซ‡เชฐเซ‹ เช…เชฅเชตเชพ เชธเช‚เชชเชพเชฆเชฟเชค เช•เชฐเซ‹;
  • เชฌเซเชฒเซ‡เชกเชจเซ‡ เชธเช•เซเชทเชฎ/เช…เช•เซเชทเชฎ เช•เชฐเซ‹;
  • เชจเซ‡เชŸเชตเชฐเซเช• เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เช—เซ‹เช เชตเซ‹;
  • เชจเซ€เชคเชฟเช“ เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซ‹;
  • เช…เชจเซ‡ เช˜เชฃเซเช‚ เชฌเชงเซเช‚.

เชธเชพเชšเซเช‚ เช•เชนเซเช‚ เชคเซ‹, เชนเชฌเชฐ เชฆเซเชตเชพเชฐเชพ เช† เชธเชฎเชพเชšเชพเชฐ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชธเชพเชฐ เชฅเชฏเชพ เชคเซ‡ เชฎเชจเซ‡ เชธเชฎเชœเชพเชคเซเช‚ เชจเชฅเซ€. เช† เชฒเซ‡เช–เชฎเชพเช‚ เช…เชฎเซ‡ API เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซ‹ เช…เชจเซ‡ เช•เซ‡เชŸเชฒเชพเช‚เช• เชตเซเชฏเชตเชนเชพเชฐเซ เช‰เชฆเชพเชนเชฐเชฃเซ‹ เช†เชชเซ€เชถเซเช‚ เชคเซ‡เชจเซเช‚ เชŸเซ‚เช‚เช•เชฎเชพเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ€เชถเซเช‚. เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชšเซ‡เช•เชชเซ‹เช‡เชจเซเชŸ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ.

เชนเซเช‚ เชคเชฐเชค เชœ เชเช• เช†เชฐเช•เซเชทเชฃ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚ เช•เซ‡ API เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชซเช•เซเชค เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชธเชฐเซเชตเชฐ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡. เชคเซ‡. เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชธเชฐเซเชตเชฐ เชตเชฟเชจเชพ เช—เซ‡เชŸเชตเซ‡เชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเซเช‚ เชนเชœเซ เชชเชฃ เช…เชถเช•เซเชฏ เช›เซ‡.

เชธเชฟเชฆเซเชงเชพเช‚เชคเชฎเชพเช‚ เช† API เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ‹เชฃ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡?

  1. เชธเชฟเชธเซเชŸเชฎ เชเชกเชฎเชฟเชจเชฟเชธเซเชŸเซเชฐเซ‡เชŸเชฐเซเชธ เช•เซ‡ เชœเซ‡เช“ เชจเชฟเชฏเชฎเชฟเชค เชšเซ‡เช• เชชเซ‹เชˆเชจเซเชŸ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เช•เชพเชฐเซเชฏเซ‹เชจเซ‡ เชธเชฐเชณ เช…เชฅเชตเชพ เชธเซเชตเชšเชพเชฒเชฟเชค เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ‡ เช›เซ‡;
  2. เช…เชจเซเชฏ เช‰เช•เซ‡เชฒเซ‹ (เชตเชฐเซเชšเซเชฏเซเช…เชฒเชพเชˆเชเซ‡เชถเชจ เชธเชฟเชธเซเชŸเชฎเซเชธ, เชŸเชฟเช•เชฟเชŸ เชธเชฟเชธเซเชŸเชฎเซเชธ, เช•เชจเซเชซเชฟเช—เชฐเซ‡เชถเชจ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชธเชฟเชธเซเชŸเชฎเซเชธ, เชตเช—เซ‡เชฐเซ‡) เชธเชพเชฅเซ‡ เชšเซ‡เช• เชชเซ‹เชˆเชจเซเชŸเชจเซ‡ เชเช•เซ€เช•เซƒเชค เช•เชฐเชตเชพ เชฎเชพเช—เชคเซ€ เช•เช‚เชชเชจเซ€เช“;
  3. เชธเชฟเชธเซเชŸเชฎ เช‡เชจเซเชŸเชฟเช—เซเชฐเซ‡เชŸเชฐเซเชธ เชœเซ‡ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชจเซ‡ เชฎเชพเชจเช• เชฌเชจเชพเชตเชตเชพ เช…เชฅเชตเชพ เชตเชงเชพเชฐเชพเชจเชพ เชšเซ‡เช• เชชเซ‹เช‡เชจเซเชŸ-เชธเช‚เชฌเช‚เชงเชฟเชค เช‰เชคเซเชชเชพเชฆเชจเซ‹ เชฌเชจเชพเชตเชตเชพ เชฎเชพเช‚เช—เซ‡ เช›เซ‡.

เชฒเชพเช•เซเชทเชฃเชฟเช• เชฏเซ‹เชœเชจเชพ

เชคเซ‡เชฅเซ€, เชšเชพเชฒเซ‹ เชšเซ‡เช• เชชเซ‹เชˆเชจเซเชŸ เชธเชพเชฅเซ‡เชจเซ€ เชฒเชพเช•เซเชทเชฃเชฟเช• เชฏเซ‹เชœเชจเชพเชจเซ€ เช•เชฒเซเชชเชจเชพ เช•เชฐเซ€เช:

เชชเซ‹เช‡เชจเซเชŸ R80.10 API เชคเชชเชพเชธเซ‹. CLI, เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธ เช…เชจเซ‡ เชตเชงเซ เชฆเซเชตเชพเชฐเชพ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ

เชนเช‚เชฎเซ‡เชถเชจเซ€ เชœเซ‡เชฎ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชเช• เช—เซ‡เชŸเชตเซ‡ เช›เซ‡ (SG), เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชธเชฐเซเชตเชฐ (เชเชธเชเชฎเชเชธ) เช…เชจเซ‡ เชเชกเชฎเชฟเชจ เช•เชจเซเชธเซ‹เชฒ (เชธเซเชฎเชพเชฐเซเชŸเช•เซ‹เชจเซเชธเซ‹เชฒ). เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชธเชพเชฎเชพเชจเซเชฏ เช—เซ‡เชŸเชตเซ‡ เช—เซ‹เช เชตเชฃเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช†เชจเชพ เชœเซ‡เชตเซ€ เชฆเซ‡เช–เชพเชฏ เช›เซ‡:

เชชเซ‹เช‡เชจเซเชŸ R80.10 API เชคเชชเชพเชธเซ‹. CLI, เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธ เช…เชจเซ‡ เชตเชงเซ เชฆเซเชตเชพเชฐเชพ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ

เชคเซ‡. เชชเซเชฐเชฅเชฎ เชคเชฎเชพเชฐเซ‡ เชเชกเชฎเชฟเชจเชฟเชธเซเชŸเซเชฐเซ‡เชŸเชฐเชจเชพ เช•เชฎเซเชชเซเชฏเซเชŸเชฐ เชชเชฐ เชšเชฒเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชธเซเชฎเชพเชฐเซเชŸเช•เซ‹เชจเซเชธเซ‹เชฒ, เชœเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เช…เชฎเซ‡ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซ€เช เช›เซ€เช (เชเชธเชเชฎเชเชธ). เชเชธเชเชฎเชเชธ เชชเชฐ เชธเซเชฐเช•เซเชทเชพ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡ เชชเช›เซ€ เชœ เชฒเชพเช—เซ เชฅเชพเชฏ เช›เซ‡ (เชจเซ€เชคเชฟ เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซ‹) เชฅเซ€ เช—เซ‡เชŸเชตเซ‡ (SG).

เชตเชพเชชเชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ API, เช…เชฎเซ‡ เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชชเซเชฐเชฅเชฎ เชฌเชฟเช‚เชฆเซเชจเซ‡ เช›เซ‹เชกเซ€ เชถเช•เซ€เช เช›เซ€เช (เชธเซเชฎเชพเชฐเซเชŸเช•เซ‹เชจเซเชธเซ‹เชฒ เชฒเซ‹เช‚เชš เช•เชฐเซ‹) เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช API เช†เชฆเซ‡เชถเซ‹ เชธเซ€เชงเชพ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชธเชฐเซเชตเชฐ (SMS) เชชเชฐ.

API เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชฐเซ€เชคเซ‹

API เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช—เซ‹เช เชตเชฃเซ€เชจเซ‡ เชธเช‚เชชเชพเชฆเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชšเชพเชฐ เชฎเซเช–เซเชฏ เชฐเซ€เชคเซ‹ เช›เซ‡:

1) mgmt_cli เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡

เช‰เชฆเชพเชนเชฐเชฃ - # mgmt_cli เชนเซ‹เชธเซเชŸเชจเซเช‚ เชจเชพเชฎ host1 ip-address 192.168.2.100 เช‰เชฎเซ‡เชฐเซ‹
เช† เช†เชฆเซ‡เชถ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชธเชฐเซเชตเชฐ (SMS) เช•เชฎเชพเชจเซเชก เชฒเชพเช‡เชจ เชชเชฐเชฅเซ€ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช†เชฆเซ‡เชถเชจเซเช‚ เชตเชพเช•เซเชฏเชฐเชšเชจเชพ เชธเซเชชเชทเซเชŸ เช›เซ‡ - host1 เช 192.168.2.100 เชธเชฐเชจเชพเชฎเชพ เชธเชพเชฅเซ‡ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡.

2) เช•เซเชฒเชฟเชถ เชฆเซเชตเชพเชฐเชพ API เช†เชฆเซ‡เชถเซ‹ เชฆเชพเช–เชฒ เช•เชฐเซ‹ (เชจเชฟเชทเซเชฃเชพเชค เชฎเซ‹เชกเชฎเชพเช‚)

เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡, เชคเชฎเชพเชฐเซ‡ เชซเช•เซเชค เช†เชฆเซ‡เชถ เชตเชพเช•เซเชฏเชฎเชพเช‚ เชฒเซ‰เช— เช‡เชจ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ (เชเชฎเชœเซ€เชเชฎเชŸเซ€ เชฒเซ‹เช—เชฟเชจ) เช–เชพเชคเชพ เชนเซ‡เช เชณ เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— 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 เชธเซ€เชงเชพ เชฅเซ€ เชธเซเชฎเชพเชฐเซเชŸเช•เซ‹เชจเซเชธเซ‹เชฒ, เชจเซ€เชšเซ‡ เชšเชฟเชคเซเชฐเชฎเชพเช‚ เชฌเชคเชพเชตเซเชฏเชพ เชชเซเชฐเชฎเชพเชฃเซ‡.

เชชเซ‹เช‡เชจเซเชŸ R80.10 API เชคเชชเชพเชธเซ‹. CLI, เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธ เช…เชจเซ‡ เชตเชงเซ เชฆเซเชตเชพเชฐเชพ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ

เช† เชตเชฟเช‚เชกเซ‹เชฎเชพเช‚, เชคเชฎเซ‡ เชคเชฐเชค เชœ API เช†เชฆเซ‡เชถเซ‹ เชฆเชพเช–เชฒ เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

4) เชตเซ‡เชฌ เชธเซ‡เชตเชพเช“. HTTPS เชชเซ‹เชธเซเชŸ เชตเชฟเชจเช‚เชคเซ€ (REST API) เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹

เช…เชฎเชพเชฐเชพ เชฎเชคเซ‡, เช† เชเช• เชธเซŒเชฅเซ€ เช†เชถเชพเชธเซเชชเชฆ เชชเชฆเซเชงเชคเชฟเช“ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชจเชพ เช†เชงเชพเชฐเซ‡ เชคเชฎเชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ "เชฌเชฟเชฒเซเชก" เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชธเชฐเซเชตเชฐ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ (เชŸเซ‹เชŸเซ‹เชฒเซ‹เชœเซ€ เชฎเชพเชŸเซ‡ เชฎเชพเชซ เช•เชฐเชถเซ‹). เชจเซ€เชšเซ‡ เช†เชชเชฃเซ‡ เช† เชชเชฆเซเชงเชคเชฟเชจเซ‡ เชฅเซ‹เชกเซ€ เชตเชงเซ เชตเชฟเช—เชคเชฎเชพเช‚ เชœเซ‹เชˆเชถเซเช‚.

เชธเชพเชฐเชพเช‚เชถ เชฎเชพเชŸเซ‡:

  1. API + cli เชธเชฟเชธเซเช•เซ‹ เชฎเชพเชŸเซ‡ เชŸเซ‡เชตเชพเชฏเซ‡เชฒเชพ เชฒเซ‹เช•เซ‹ เชฎเชพเชŸเซ‡ เชตเชงเซ เชฏเซ‹เช—เซเชฏ;
  2. API + เชถเซ‡เชฒ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹ เชฒเชพเช—เซ เช•เชฐเชตเชพ เช…เชจเซ‡ เชจเชฟเชฏเชฎเชฟเชค เช•เชพเชฐเซเชฏเซ‹ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡;
  3. REST API เช“เชŸเซ‹เชฎเซ‡เชถเชจ เชฎเชพเชŸเซ‡.

API เชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡

เชกเชฟเชซเซ‰เชฒเซเชŸ เชฐเซ‚เชชเซ‡, API 4GB เชฅเซ€ เชตเชงเซ RAM เชธเชพเชฅเซ‡ เช…เชจเซ‡ 8GB เชฅเซ€ เชตเชงเซ RAM เชธเชพเชฅเซ‡ เชธเซเชŸเซ‡เชจเซเชกเช…เชฒเซ‹เชจ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเซ‹ เชธเชพเชฅเซ‡ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชธเชฐเซเชตเชฐเซเชธ เชชเชฐ เชธเช•เซเชทเชฎ เช›เซ‡. เชคเชฎเซ‡ เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเซเชฅเชฟเชคเชฟ เชšเช•เชพเชธเซ€ เชถเช•เซ‹ เช›เซ‹: api เชธเซเชฅเชฟเชคเชฟ

เชœเซ‹ เชคเซ‡ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ api เช…เช•เซเชทเชฎ เช›เซ‡, เชคเซ‹ เชคเซ‡เชจเซ‡ SmartConsole เชฆเซเชตเชพเชฐเชพ เชธเช•เซเชทเชฎ เช•เชฐเชตเซเช‚ เชเช•เชฆเชฎ เชธเชฐเชณ เช›เซ‡: เชฎเซ‡เชจเซ‡เชœ เช•เชฐเซ‹ เช…เชจเซ‡ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ > เชฌเซเชฒเซ‡เชก > เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ API > เชเชกเชตเชพเชจเซเชธ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ

เชชเซ‹เช‡เชจเซเชŸ R80.10 API เชคเชชเชพเชธเซ‹. CLI, เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธ เช…เชจเซ‡ เชตเชงเซ เชฆเซเชตเชพเชฐเชพ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ

เชชเช›เซ€ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ‹ (เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ‹) เชฌเชฆเชฒเซ€ เช…เชจเซ‡ เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเซ‹ api เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ‹.

เชตเซ‡เชฌ เชตเชฟเชจเช‚เชคเซ€เช“ + เชชเชพเชฏเชฅเซ‹เชจ

API เช†เชฆเซ‡เชถเซ‹ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ เชตเซ‡เชฌ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชชเชพเชฏเชฅเซ‹เชจ เช…เชจเซ‡ เชชเซเชธเซเชคเช•เชพเชฒเชฏเซ‹ เชตเชฟเชจเช‚เชคเซ€เช“, 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) เชชเซ‰เชฒเชฟเชธเซ€ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ‹ เช…เชจเซ‡ เชธเซ‡เชŸ เช•เชฐเซ‹, เช†เชฆเซ‡เชถเชจเซ‹ เช…เชฎเชฒ เชคเชชเชพเชธเซ‹ (เชŸเชพเชธเซเช•-เช†เชˆเชกเซ€):

เชธเซเช•เซเชฐเชฟเชชเซเชŸ


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 เชคเชฎเซ‡ เชจเซ‡เชŸเชตเชฐเซเช•, เชนเซ‹เชธเซเชŸ, เชเช•เซเชธเซ‡เชธ เชฐเซ‹เชฒ เชตเช—เซ‡เชฐเซ‡ เช‰เชฎเซ‡เชฐเซ€ เช…เชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชฌเซเชฒเซ‡เชก เช•เชธเซเชŸเชฎเชพเช‡เช เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ เชเชจเซเชŸเชฟเชตเชพเชฏเชฐเชธ, เชเชจเซเชŸเชฟเชฌเซ‹เชŸ, เช†เช‡เชชเซ€เชเชธ, เชตเซ€เชชเซ€เชเชจ. เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฒเชพเช‡เชธเชจเซเชธ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซเช‚ เชชเชฃ เชถเช•เซเชฏ เช›เซ‡ เชฐเชจ-เชธเซเช•เซเชฐเซ€เชชเซเชŸ. เชฌเชงเชพ เชšเซ‡เช• เชชเซ‹เช‡เชจเซเชŸ API เช†เชฆเซ‡เชถเซ‹ เช…เชนเซ€เช‚ เชฎเชณเซ€ เชถเช•เซ‡ เช›เซ‡ เช…เชนเซ€เช‚.

เชชเซ‹เช‡เชจเซเชŸ API + เชชเซ‹เชธเซเชŸเชฎเซ‡เชจ เชคเชชเชพเชธเซ‹

เชตเชพเชชเชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฃ เช…เชจเซเช•เซ‚เชณ เชชเซ‹เช‡เชจเซเชŸ เชตเซ‡เชฌ API เชคเชชเชพเชธเซ‹ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฃเชฎเชพเช‚ เชชเซ‹เชธเซเชŸเชฎเซ‡เชจ. เชชเซ‹เชธเซเชŸเชฎเซ‡เชจ เชชเชพเชธเซ‡ Windows, Linux เช…เชจเซ‡ MacOS เชฎเชพเชŸเซ‡ เชกเซ‡เชธเซเช•เชŸเซ‹เชช เชตเชฐเซเชเชจ เช›เซ‡. เชตเชงเซเชฎเชพเช‚, Google Chrome เชฎเชพเชŸเซ‡ เชเช• เชชเซเชฒเช—เช‡เชจ เช›เซ‡. เช† เชคเซ‡ เช›เซ‡ เชœเซ‡เชจเซ‹ เช†เชชเชฃเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚. เชชเซเชฐเชฅเชฎ เชคเชฎเชพเชฐเซ‡ Google Chrome เชธเซเชŸเซ‹เชฐเชฎเชพเช‚ เชชเซ‹เชธเซเชŸเชฎเซ‡เชจเชจเซ‡ เชถเซ‹เชงเชตเชพเชจเซ€ เช…เชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡:

เชชเซ‹เช‡เชจเซเชŸ R80.10 API เชคเชชเชพเชธเซ‹. CLI, เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธ เช…เชจเซ‡ เชตเชงเซ เชฆเซเชตเชพเชฐเชพ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ

เช† เชฏเซเชŸเชฟเชฒเชฟเชŸเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เช…เชฎเซ‡ เชšเซ‡เช• เชชเซ‹เชˆเชจเซเชŸ API เชชเชฐ เชตเซ‡เชฌ เชตเชฟเชจเช‚เชคเซ€เช“ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ€ เชถเช•เซ€เชถเซเช‚. เชฌเชงเชพ API เช†เชฆเซ‡เชถเซ‹เชจเซ‡ เชฏเชพเชฆ เชจ เชฐเชพเช–เชตเชพ เชฎเชพเชŸเซ‡, เช•เชนเซ‡เชตเชพเชคเชพ เชธเช‚เช—เซเชฐเชนเซ‹ (เชŸเซ‡เชฎเซเชชเซเชฒเซ‡เชŸเซเชธ) เช†เชฏเชพเชค เช•เชฐเชตเชพเชจเซเช‚ เชถเช•เซเชฏ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชคเชฎเชพเชฎ เชœเชฐเซ‚เชฐเซ€ เช†เชฆเซ‡เชถเซ‹ เช›เซ‡:

เชชเซ‹เช‡เชจเซเชŸ R80.10 API เชคเชชเชพเชธเซ‹. CLI, เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธ เช…เชจเซ‡ เชตเชงเซ เชฆเซเชตเชพเชฐเชพ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ

เชคเซ‡ เชคเซเช‚ เช—เซ‹เชคเซ€ เชฒเชˆเชถ เชธเช‚เช—เซเชฐเชน เชฎเชพเชŸเซ‡ R80.10. เช†เชฏเชพเชค เช•เชฐเซเชฏเชพ เชชเช›เซ€, API เช†เชฆเซ‡เชถ เชจเชฎเซ‚เชจเชพเช“ เช…เชฎเชจเซ‡ เช‰เชชเชฒเชฌเซเชง เชฅเชถเซ‡:

เชชเซ‹เช‡เชจเซเชŸ R80.10 API เชคเชชเชพเชธเซ‹. CLI, เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธ เช…เชจเซ‡ เชตเชงเซ เชฆเซเชตเชพเชฐเชพ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ

เชฎเชพเชฐเชพ เชฎเชคเซ‡, เช† เช–เซ‚เชฌ เช…เชจเซเช•เซ‚เชณ เช›เซ‡. เชคเชฎเซ‡ เชšเซ‡เช• เชชเซ‹เชˆเชจเซเชŸ API เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชเชกเชชเชฅเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เชตเชฟเช•เชธเชพเชตเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

เชšเซ‡เช• เชชเซ‹เช‡เชจเซเชŸ + เชœเชตเชพเชฌเซ€เชฌเชฒ

เชนเซเช‚ เช เชชเชฃ เชจเซ‹เช‚เชงเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚ เช•เซ‡ เชคเซเชฏเชพเช‚ เช›เซ‡ Ansible เชฎเซ‹เชกเซเชฏเซเชฒ CheckPoint API เชฎเชพเชŸเซ‡. เชฎเซ‹เชกเซเชฏเซเชฒ เชคเชฎเชจเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเซ‹เชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชตเชฟเชšเชฟเชคเซเชฐ เชธเชฎเชธเซเชฏเชพเช“ เชนเชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชเชŸเชฒเซเช‚ เช…เชจเซเช•เซ‚เชณ เชจเชฅเซ€. เช•เซ‹เชˆเชชเชฃ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเชฎเชพเช‚ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹ เชฒเช–เชตเชพเชฅเซ€ เชตเชงเซ เชฒเชตเชšเซ€เช• เช…เชจเซ‡ เช…เชจเซเช•เซ‚เชณ เช‰เช•เซ‡เชฒเซ‹ เชฎเชณเซ‡ เช›เซ‡.

เชจเชฟเชทเซเช•เชฐเซเชท

เช† เชคเซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚ เช…เชฎเซ‡ เชธเช‚เชญเชตเชคเชƒ เชšเซ‡เช• เชชเซ‹เช‡เชจเซเชŸ API เชจเซ€ เช…เชฎเชพเชฐเซ€ เชŸเซ‚เช‚เช•เซ€ เชธเชฎเซ€เช•เซเชทเชพ เชธเชฎเชพเชชเซเชค เช•เชฐเซ€เชถเซเช‚. เชฎเชพเชฐเชพ เชฎเชคเซ‡, เช† เชธเซเชตเชฟเชงเชพ เช–เซ‚เชฌ เชœ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏเชฅเซ€ เชฐเชพเชน เชœเซ‹เชตเชพเชคเซ€ เช…เชจเซ‡ เชœเชฐเซ‚เชฐเซ€ เชนเชคเซ€. API เชจเชพ เช‰เชฆเชญเชตเชฅเซ€ เชธเชฟเชธเซเชŸเชฎ เชเชกเชฎเชฟเชจเชฟเชธเซเชŸเซเชฐเซ‡เชŸเชฐเซเชธ เช…เชจเซ‡ เชธเชฟเชธเซเชŸเชฎ เช‡เชจเซเชŸเชฟเช—เซเชฐเซ‡เชŸเชฐเซเชธ เชฌเช‚เชจเซ‡ เชฎเชพเชŸเซ‡ เช–เซ‚เชฌ เชœ เชตเซเชฏเชพเชชเช• เชคเช•เซ‹ เช–เซเชฒเซ‡ เช›เซ‡ เชœเซ‡เช“ เชšเซ‡เช• เชชเซ‹เช‡เชจเซเชŸ เชชเซเชฐเซ‹เชกเช•เซเชŸเซเชธ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡. เช“เชฐเซเช•เซ‡เชธเซเชŸเซเชฐเซ‡เชถเชจ, เช“เชŸเซ‹เชฎเซ‡เชถเชจ, SIEM เชชเซเชฐเชคเชฟเชธเชพเชฆ... เช† เชฌเชงเซเช‚ เชนเชตเซ‡ เชถเช•เซเชฏ เช›เซ‡.

เชชเซ€.เชเชธ. เชตเชฟเชถเซ‡ เชตเชงเซ เชฒเซ‡เช–เซ‹ เชšเซ‡เช• เชชเซ‹เช‡เชจเซเชŸ เชนเช‚เชฎเซ‡เชถเชจเซ€ เชœเซ‡เชฎ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เช…เชฎเชพเชฐเชพ เชฌเซเชฒเซ‹เช— เชชเชฐ เชถเซ‹เชงเซ€ เชถเช•เซ‹ เช›เซ‹ เชนเซ‡เชฌเซเชฐ เช…เชฅเชตเชพ เชฌเซเชฒเซ‹เช— เชชเชฐ เชธเชพเช‡เชŸ.

P.S.S. เชšเซ‡เช• เชชเซ‹เช‡เชจเซเชŸ เชธเซ‡เชŸ เช•เชฐเชตเชพ เชธเช‚เชฌเช‚เชงเชฟเชค เชคเช•เชจเซ€เช•เซ€ เชชเซเชฐเชถเซเชจเซ‹ เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชนเซ€เช‚

เชซเช•เซเชค เชจเซ‹เช‚เชงเชพเชฏเซ‡เชฒเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชœ เชธเชฐเซเชตเซ‡เชฎเชพเช‚ เชญเชพเช— เชฒเชˆ เชถเช•เซ‡ เช›เซ‡. เชธเชพเช‡เชจ เช‡เชจ เช•เชฐเซ‹, เชฎเชนเซ‡เชฐเชฌเชพเชจเซ€ เช•เชฐเซ€เชจเซ‡.

เชถเซเช‚ เชคเชฎเซ‡ API เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชตเชฟเชšเชพเชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‹?

  • 70,6%เชนเชพ 12

  • 23,5%เชจเช‚เชฌเชฐ 4

  • 5,9%เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ 1 เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชฐเชนเซเชฏเชพเช‚ เช›เซ‡

17 เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เช เชฎเชค โ€‹โ€‹เช†เชชเซเชฏเซ‹. 3 เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชฆเซ‚เชฐ เชฐเชนเซเชฏเชพ.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹