2. рд▓рд╡рдЪрд┐рдХ рд╕реНрдЯреЕрдХ: рд╕реБрд░рдХреНрд╖рд╛ рдиреЛрдВрджреАрдВрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг. рд▓реЙрдЧрд╕реНрдЯреЕрд╢

2. рд▓рд╡рдЪрд┐рдХ рд╕реНрдЯреЕрдХ: рд╕реБрд░рдХреНрд╖рд╛ рдиреЛрдВрджреАрдВрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг. рд▓реЙрдЧрд╕реНрдЯреЕрд╢

рд╢реЗрд╡рдЯреА рд▓реЗрдЦ рдЖрдкрдг рднреЗрдЯрд▓реЛ ELK рд╕реНрдЯреЕрдХ, рддреНрдпрд╛рдд рдХреЛрдгрддреНрдпрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдЙрддреНрдкрд╛рджрдирд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ. рдЖрдгрд┐ ELK рд╕реНрдЯреЕрдХрд╕рд╣ рдХрд╛рдо рдХрд░рддрд╛рдирд╛ рдЕрднрд┐рдпрдВрддреНрдпрд╛рд▓рд╛ рд╕рд╛рдореЛрд░реЗ рдЬрд╛рд╡реЗ рд▓рд╛рдЧрдгрд╛рд░реЗ рдкрд╣рд┐рд▓реЗ рдХрд╛рдо рдореНрд╣рдгрдЬреЗ рддреНрдпрд╛рдирдВрддрд░рдЪреНрдпрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рд╕рд╛рдареА рдЗрд▓реЕрд╕реНрдЯрд┐рдХрд╕рд░реНрдЪрдордзреНрдпреЗ рд╕реНрдЯреЛрд░реЗрдЬрд╕рд╛рдареА рд▓реЙрдЧ рдкрд╛рдард╡рдгреЗ. рддрдерд╛рдкрд┐, рд╣реА рдХреЗрд╡рд│ рд▓рд┐рдк рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдЖрд╣реЗ, рдЗрд▓рд╛рд╕реНрдЯрд┐рдХрд╕рд░реНрдЪ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлреАрд▓реНрдб рдЖрдгрд┐ рдореВрд▓реНрдпрд╛рдВрд╕рд╣ рджрд╕реНрддрдРрд╡рдЬрд╛рдВрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рд▓реЙрдЧ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ, рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрднрд┐рдпрдВрддреНрдпрд╛рдиреЗ рдПрдВрдб рд╕рд┐рд╕реНрдЯрдордордзреВрди рдкрд╛рдард╡рд▓реЗрд▓рд╛ рд╕рдВрджреЗрд╢ рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рд╡рд┐рдз рд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╣реЗ рдЕрдиреЗрдХ рдкреНрд░рдХрд╛рд░реЗ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ - рдПрдкреАрдЖрдп рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рджрд╕реНрддрдРрд╡рдЬ рдЬреЛрдбрдгрд╛рд░рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реНрд╡рддрдГ рд▓рд┐рд╣рд╛ рдХрд┐рдВрд╡рд╛ рддрдпрд╛рд░ рдЙрдкрд╛рдп рд╡рд╛рдкрд░рд╛. рдпрд╛ рдХреЛрд░реНрд╕рдордзреНрдпреЗ рдЖрдкрдг рдЙрдкрд╛рдп рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрдгрд╛рд░ рдЖрд╣реЛрдд рд▓реЙрдЧрд╕реНрдЯреЕрд╢, рдЬреЛ ELK рд╕реНрдЯреЕрдХрдЪрд╛ рднрд╛рдЧ рдЖрд╣реЗ. рдПрдВрдбрдкреЙрдИрдВрдЯ рд╕рд┐рд╕реНрдЯреАрдордордзреВрди рд▓реЙрдЧрд╕реНрдЯреЕрд╢рд╡рд░ рд▓реЙрдЧ рдХрд╕реЗ рдкрд╛рдард╡рддрд╛ рдпреЗрддреАрд▓ рддреЗ рдЖрдореНрд╣реА рдкрд╛рд╣реВ рдЖрдгрд┐ рдирдВрддрд░ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХрд╕рд░реНрдЪ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЖрдгрд┐ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рд╕реЗрдЯ рдХрд░реВ. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдЗрдирдХрдорд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореНрд╣рдгреВрди рдЪреЗрдХ рдкреЙрдЗрдВрдЯ рдлрд╛рдпрд░рд╡реЙрд▓ рд╡рд░реВрди рд▓реЙрдЧ рдШреЗрддреЛ.

рдХреЛрд░реНрд╕рдордзреНрдпреЗ ELK рд╕реНрдЯреЕрдХрдЪреА рд╕реНрдерд╛рдкрдирд╛ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдирд╛рд╣реА, рдХрд╛рд░рдг рдпрд╛ рд╡рд┐рд╖рдпрд╛рд╡рд░ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рд▓реЗрдЦ рдЖрд╣реЗрдд; рдЖрдореНрд╣реА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдШрдЯрдХрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реВ.

рдЪрд▓рд╛ рд▓реЙрдЧрд╕реНрдЯреЕрд╢ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╕рд╛рдареА рдХреГрддреА рдпреЛрдЬрдирд╛ рдмрдирд╡реВ:

  1. elasticsearch рд▓реЙрдЧ рд╕реНрд╡реАрдХрд╛рд░реЗрд▓ рд╣реЗ рддрдкрд╛рд╕рдгреЗ (рдкреЛрд░реНрдЯрдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрдгрд┐ рдореЛрдХрд│реЗрдкрдгрд╛ рддрдкрд╛рд╕рдгреЗ).
  2. рдЖрдореНрд╣реА рд▓реЙрдЧрд╕реНрдЯреЕрд╢рд╡рд░ рдЗрд╡реНрд╣реЗрдВрдЯ рдХрд╕реЗ рдкрд╛рдард╡реВ рд╢рдХрддреЛ, рдПрдХ рдкрджреНрдзрдд рдирд┐рд╡рдбреВ рд╢рдХрддреЛ рдЖрдгрд┐ рддреЗ рдХрд╕реЗ рдЕрдВрдорд▓рд╛рдд рдЖрдгреВ рд╢рдХрддреЛ рдпрд╛рд╡рд░ рдЖрдореНрд╣реА рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЛ.
  3. рдЖрдореНрд╣реА рд▓реЙрдЧрд╕реНрдЯреЕрд╢ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдЗрдирдкреБрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рддреЛ.
  4. рд▓реЙрдЧ рдореЗрд╕реЗрдЬ рдХрд╕рд╛ рджрд┐рд╕рддреЛ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рдбреАрдмрдЧ рдореЛрдбрдордзреНрдпреЗ рд▓реЙрдЧрд╕реНрдЯреЕрд╢ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рддреЛ.
  5. рдлрд┐рд▓реНрдЯрд░ рд╕реЗрдЯ рдХрд░рдд рдЖрд╣реЗ.
  6. ElasticSearch рдордзреНрдпреЗ рдпреЛрдЧреНрдп рдЖрдЙрдЯрдкреБрдЯ рд╕реЗрдЯ рдХрд░рдгреЗ.
  7. рд▓реЙрдЧрд╕реНрдЯреЕрд╢ рд▓реЙрдиреНрдЪ рдЭрд╛рд▓рд╛.
  8. рдХрд┐рдмрд╛рдирд╛ рдордзреАрд▓ рд▓реЙрдЧ рддрдкрд╛рд╕рдд рдЖрд╣реЗ.

рдЪрд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреВрдХрдбреЗ рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╡рд╛рд░ рдкрд╛рд╣реВ:

elasticsearch рд▓реЙрдЧ рд╕реНрд╡реАрдХрд╛рд░реЗрд▓ рд╣реЗ рддрдкрд╛рд╕рдгреЗ

рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЬреНрдпрд╛ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рд▓реЙрдЧрд╕реНрдЯреЕрд╢ рдЙрдкрдпреЛрдЬрд┐рдд рдЖрд╣реЗ рддреНрдпрд╛ рдкреНрд░рдгрд╛рд▓реАрд╡рд░реВрди рдЗрд▓рд╛рд╕реНрдЯрд┐рдХрд╕рд░реНрдЪрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рдХрд░реНрд▓ рдХрдорд╛рдВрдб рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛. рдЬрд░ рддреБрдореНрд╣реА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЕрд╕реЗрд▓, рддрд░ рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдХрд░реНрддрд╛/рдкрд╛рд╕рд╡рд░реНрдб рджреЗрдЦреАрд▓ рдХрд░реНрд▓рджреНрд╡рд╛рд░реЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рддреЛ, рдЬрд░ рддреБрдореНрд╣реА рддреЛ рдмрджрд▓рд▓рд╛ рдирд╕реЗрд▓ рддрд░ рдкреЛрд░реНрдЯ 9200 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЛ. рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдЦрд╛рд▓реАрд▓ рдкреНрд░рддрд┐рд╕рд╛рджрд╛рд╕рд╛рд░рдЦрд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рдорд┐рд│рд╛рд▓рд╛ рддрд░ рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЖрд╣реЗ.

[elastic@elasticsearch ~]$ curl -u <<user_name>> : <<password>> -sS -XGET "<<ip_address_elasticsearch>>:9200"
{
  "name" : "elastic-1",
  "cluster_name" : "project",
  "cluster_uuid" : "sQzjTTuCR8q4ZO6DrEis0A",
  "version" : {
    "number" : "7.4.1",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "fc0eeb6e2c25915d63d871d344e3d0b45ea0ea1e",
    "build_date" : "2019-10-22T17:16:35.176724Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
[elastic@elasticsearch ~]$

рдкреНрд░рддрд┐рд╕рд╛рдж рди рдорд┐рд│рд╛рд▓реНрдпрд╛рд╕, рдЕрдиреЗрдХ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рддреНрд░реБрдЯреА рдЕрд╕реВ рд╢рдХрддрд╛рдд: рдЗрд▓рд╛рд╕реНрдЯрд┐рдХрд╕рд░реНрдЪ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд╛рд▓реВ рдирд╛рд╣реА, рдЪреБрдХреАрдЪреЗ рдкреЛрд░реНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ рдХрд┐рдВрд╡рд╛ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХрд╕рд░реНрдЪ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдлрд╛рдпрд░рд╡реЙрд▓рджреНрд╡рд╛рд░реЗ рдкреЛрд░реНрдЯ рдЕрд╡рд░реЛрдзрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ.

рдЪреЗрдХ рдкреЙрдИрдВрдЯ рдлрд╛рдпрд░рд╡реЙрд▓рд╡рд░реВрди рддреБрдореНрд╣реА рд▓реЙрдЧрд╕реНрдЯреЕрд╢рд▓рд╛ рд▓реЙрдЧ рдХрд╕реЗ рдкрд╛рдард╡реВ рд╢рдХрддрд╛ рддреЗ рдкрд╛рд╣реВ

рдЪреЗрдХ рдкреЙрдЗрдВрдЯ рдореЕрдиреЗрдЬрдореЗрдВрдЯ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реВрди рддреБрдореНрд╣реА log_exporter рдпреБрдЯрд┐рд▓рд┐рдЯреА рд╡рд╛рдкрд░реВрди syslog рджреНрд╡рд╛рд░реЗ Logstash рд▓рд╛ рд▓реЙрдЧ рдкрд╛рдард╡реВ рд╢рдХрддрд╛, рддреБрдореНрд╣реА рддреНрдпрд╛рдмрджреНрджрд▓ рдпреЗрдереЗ рдЕрдзрд┐рдХ рд╡рд╛рдЪреВ рд╢рдХрддрд╛ рд▓реЗрдЦ, рдпреЗрдереЗ рдЖрдкрдг рдлрдХреНрдд рдХрдорд╛рдВрдб рд╕реЛрдбреВ рдЬреА рдкреНрд░рд╡рд╛рд╣ рддрдпрд╛рд░ рдХрд░рддреЗ:

cp_log_export рдирд╛рд╡ рдЬреЛрдбрд╛ check_point_syslog target-server < > рд▓рдХреНрд╖реНрдп-рдкреЛрд░реНрдЯ 5555 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ tcp рд╕реНрд╡рд░реВрдк рдЬреЗрдиреЗрд░рд┐рдХ рд░реАрдб-рдореЛрдб рдЕрд░реНрдз-рдпреБрдирд┐рдлрд╛рдЗрдб

< > - рдЬреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рд▓реЙрдЧрд╕реНрдЯреЕрд╢ рдЪрд╛рд▓рддреЛ рддреНрдпрд╛рдЪрд╛ рдкрддреНрддрд╛, рдЯрд╛рд░реНрдЧреЗрдЯ-рдкреЛрд░реНрдЯ 5555 - рдкреЛрд░реНрдЯ рдЬреНрдпрд╛рд╡рд░ рдЖрдореНрд╣реА рд▓реЙрдЧ рдкрд╛рдард╡реВ, tcp рджреНрд╡рд╛рд░реЗ рд▓реЙрдЧ рдкрд╛рдард╡рд▓реНрдпрд╛рдиреЗ рд╕рд░реНрд╡реНрд╣рд░ рд▓реЛрдб рд╣реЛрдК рд╢рдХрддреЛ, рдореНрд╣рдгреВрди рдХрд╛рд╣реА рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ udp рд╡рд╛рдкрд░рдгреЗ рдЕрдзрд┐рдХ рдпреЛрдЧреНрдп рдЖрд╣реЗ.

рд▓реЙрдЧрд╕реНрдЯреЕрд╢ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ INPUT рд╕реЗрдЯ рдХрд░рдгреЗ

2. рд▓рд╡рдЪрд┐рдХ рд╕реНрдЯреЕрдХ: рд╕реБрд░рдХреНрд╖рд╛ рдиреЛрдВрджреАрдВрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг. рд▓реЙрдЧрд╕реНрдЯреЕрд╢

рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рддрдкрдгреЗ, рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ /etc/logstash/conf.d/ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдЕрд╕рддреЗ. рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ 3 рдЕрд░реНрдердкреВрд░реНрдг рднрд╛рдЧ рдЕрд╕рддрд╛рдд: INPUT, FILTER, OUTPUT. IN рдЗрдирдкреБрдЯ рдЖрдореНрд╣реА рд╕реВрдЪрд┐рдд рдХрд░рддреЛ рдХреА рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ рдХреБрдареВрди рдШреЗрдИрд▓ FILTER рд▓реЙрдЧ рдкрд╛рд░реНрд╕ рдХрд░рд╛ - рдореЗрд╕реЗрдЬрд▓рд╛ рдлреАрд▓реНрдб рдЖрдгрд┐ рд╡реНрд╣реЕрд▓реНрдпреВрдЬрдордзреНрдпреЗ рдХрд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рд╛рдпрдЪреЗ рддреЗ рд╕реЗрдЯ рдХрд░рд╛ рдЖрдЙрдЯрдкреБрдЯ рдЖрдореНрд╣реА рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╡рд╛рд╣ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рддреЛ - рдЬрд┐рдереЗ рдкрд╛рд░реНрд╕ рдХреЗрд▓реЗрд▓реЗ рд▓реЙрдЧ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рддреАрд▓.

рдкреНрд░рдердо, INPUT рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реВрдпрд╛, рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рд╛рдВрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдпрд╛ - рдлрд╛рдЗрд▓, tcp рдЖрдгрд┐ exe.

Tcp:

input {
tcp {
    port => 5555
    host => тАЬ10.10.1.205тАЭ
    type => "checkpoint"
    mode => "server"
}
}

рдореЛрдб => "рд╕рд░реНрд╡реНрд╣рд░"
рд▓реЙрдЧрд╕реНрдЯреЕрд╢ рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░рдд рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ.

рдкреЛрд░реНрдЯ => 5555
рд╣реЛрд╕реНрдЯ => тАЬрезреж.резреж.рез.реирежрелтАЭ
рдЖрдореНрд╣реА IP рдкрддреНрддрд╛ 10.10.1.205 (рд▓реЙрдЧрд╕реНрдЯреЕрд╢), рдкреЛрд░реНрдЯ 5555 рджреНрд╡рд╛рд░реЗ рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░рддреЛ - рдлрд╛рдпрд░рд╡реЙрд▓ рдзреЛрд░рдгрд╛рджреНрд╡рд╛рд░реЗ рдкреЛрд░реНрдЯрд▓рд╛ рдкрд░рд╡рд╛рдирдЧреА рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдЯрд╛рдЗрдк => "рдЪреЗрдХрдкреЙрдИрдВрдЯ"
рдЖрдореНрд╣реА рджрд╕реНрддрдРрд╡рдЬ рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХрд░рддреЛ, рдЬрд░ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЕрдиреЗрдХ рдЗрдирдХрдорд┐рдВрдЧ рдХрдиреЗрдХреНрд╢рди рдЕрд╕рддреАрд▓ рддрд░ рддреЗ рдЕрддрд┐рд╢рдп рд╕реЛрдпреАрдЪреЗ рдЖрд╣реЗ. рддреНрдпрд╛рдирдВрддрд░, рдкреНрд░рддреНрдпреЗрдХ рдХрдиреЗрдХреНрд╢рдирд╕рд╛рдареА рддреБрдореНрд╣реА logical if construct рд╡рд╛рдкрд░реВрди рддреБрдордЪрд╛ рд╕реНрд╡рддрдГрдЪрд╛ рдлрд┐рд▓реНрдЯрд░ рд▓рд┐рд╣реВ рд╢рдХрддрд╛.

рдлрд╛рдЗрд▓рдГ

input {
  file {
    path => "/var/log/openvas_report/*"
    type => "openvas"
    start_position => "beginning"
    }
}

рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдЪреЗ рд╡рд░реНрдгрди:
рдорд╛рд░реНрдЧ => "/var/log/openvas_report/*"
рдЖрдореНрд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реВрдЪрд┐рдд рдХрд░рддреЛ рдЬреНрдпрд╛рдордзреНрдпреЗ рдлрд╛рдЗрд▓реНрд╕ рд╡рд╛рдЪрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ.

рдкреНрд░рдХрд╛рд░ => "рдУрдкрдирд╡реНрд╣рд╛рд╕"
рдХрд╛рд░реНрдпрдХреНрд░рдорд╛рдЪрд╛ рдкреНрд░рдХрд╛рд░.

start_position => "рд╕реБрд░реБрд╡рд╛рдд"
рдлрд╛рдЗрд▓ рдмрджрд▓рддрд╛рдирд╛, рддреА рд╕рдВрдкреВрд░реНрдг рдлрд╛рдЗрд▓ рд╡рд╛рдЪрддреЗ; рддреБрдореНрд╣реА "рдПрдВрдб" рд╕реЗрдЯ рдХреЗрд▓реНрдпрд╛рд╕, рд╕рд┐рд╕реНрдЯрдо рдлрд╛рдЗрд▓рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рдирд╡реАрди рд░реЗрдХреЙрд░реНрдб рджрд┐рд╕рдгреНрдпрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ.

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд:

input {
  exec {
    command => "ls -alh"
    interval => 30
  }
}

рдпрд╛ рдЗрдирдкреБрдЯрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди, рдПрдХ (рдлрдХреНрдд!) рд╢реЗрд▓ рдХрдорд╛рдВрдб рд▓рд╛рдБрдЪ рдХреЗрд▓реА рдЬрд╛рддреЗ рдЖрдгрд┐ рддреНрдпрд╛рдЪреЗ рдЖрдЙрдЯрдкреБрдЯ рд▓реЙрдЧ рд╕рдВрджреЗрд╢рд╛рдд рдмрджрд▓рд▓реЗ рдЬрд╛рддреЗ.

рдЖрджреЗрд╢ => "ls -alh"
рдХрдорд╛рдВрдб рдЬреНрдпрд╛рдЪреЗ рдЖрдЙрдЯрдкреБрдЯ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕реНрд╡рд╛рд░рд╕реНрдп рдЖрд╣реЗ.

рдордзреНрдпрд╛рдВрддрд░ => рейреж
рдХрдорд╛рдВрдб рдЗрдирд╡реНрд╣реЛрдХреЗрд╢рди рдЗрдВрдЯрд░рд╡реНрд╣рд▓ рд╕реЗрдХрдВрджрд╛рдд.

рдлрд╛рдпрд░рд╡реЙрд▓ рд╡рд░реВрди рд▓реЙрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдлрд┐рд▓реНрдЯрд░рдЪреА рдиреЛрдВрджрдгреА рдХрд░рддреЛ рдЯреАрд╕реАрдкреА рдХрд┐рдВрд╡рд╛ udp, рд▓реЙрдЧрд╕реНрдЯреЕрд╢рд▓рд╛ рд▓реЙрдЧ рдХрд╕реЗ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рддрд╛рдд рдпрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди.

рд▓реЙрдЧ рдореЗрд╕реЗрдЬ рдХрд╕рд╛ рджрд┐рд╕рддреЛ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рдбреАрдмрдЧ рдореЛрдбрдордзреНрдпреЗ рд▓реЙрдЧрд╕реНрдЯреЕрд╢ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рддреЛ

рдЖрдореНрд╣реА INPUT рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдЖрдореНрд╣рд╛рд▓рд╛ рд▓реЙрдЧ рд╕рдВрджреЗрд╢ рдХрд╕рд╛ рджрд┐рд╕реЗрд▓ рдЖрдгрд┐ рд▓реЙрдЧ рдлрд┐рд▓реНрдЯрд░ (рдкрд╛рд░реНрд╕рд░) рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдгрддреНрдпрд╛ рдкрджреНрдзрддреА рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдкрд╛рд╣рд┐рдЬреЗрдд рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдореВрд│ рд╕рдВрджреЗрд╢ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рдХрд╛рд▓ stdout рдордзреНрдпреЗ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдгрд╛рд░реЗ рдлрд┐рд▓реНрдЯрд░ рд╡рд╛рдкрд░реВ; рдпрд╛ рдХреНрд╖рдгреА рд╕рдВрдкреВрд░реНрдг рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рдпрд╛рд╕рд╛рд░рдЦреА рджрд┐рд╕реЗрд▓:

input 
{
         tcp 
         {
                port => 5555
  	  	type => "checkpoint"
    		mode => "server"
                host => тАЬ10.10.1.205тАЭ
   	 }
}

output 
{
	if [type] == "checkpoint" 
       {
		stdout { codec=> json }
	}
}

рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡рд╛:
sudo /usr/share/logstash/bin//logstash -f /etc/logstash/conf.d/checkpoint.conf
рдЖрдореНрд╣реА рдкрд░рд┐рдгрд╛рдо рдкрд╛рд╣рддреЛ, рдЪрд┐рддреНрд░ рдХреНрд▓рд┐рдХ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдЖрд╣реЗ:

2. рд▓рд╡рдЪрд┐рдХ рд╕реНрдЯреЕрдХ: рд╕реБрд░рдХреНрд╖рд╛ рдиреЛрдВрджреАрдВрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг. рд▓реЙрдЧрд╕реНрдЯреЕрд╢

рддреБрдореНрд╣реА рддреЗ рдХреЙрдкреА рдХреЗрд▓реНрдпрд╛рд╕ рддреЗ рдЕрд╕реЗ рджрд┐рд╕реЗрд▓:

action="Accept" conn_direction="Internal" contextnum="1" ifdir="outbound" ifname="bond1.101" logid="0" loguid="{0x5dfb8c13,0x5,0xfe0a0a0a,0xc0000000}" origin="10.10.10.254" originsicname="CN=ts-spb-cpgw-01,O=cp-spb-mgmt-01.tssolution.local.kncafb" sequencenum="8" time="1576766483" version="5" context_num="1" dst="10.10.10.10" dst_machine_name="[email protected]" layer_name="TSS-Standard Security" layer_name="TSS-Standard Application" layer_uuid="dae7f01c-4c98-4c3a-a643-bfbb8fcf40f0" layer_uuid="dbee3718-cf2f-4de0-8681-529cb75be9a6" match_id="8" match_id="33554431" parent_rule="0" parent_rule="0" rule_action="Accept" rule_action="Accept" rule_name="Implicit Cleanup" rule_uid="6dc2396f-9644-4546-8f32-95d98a3344e6" product="VPN-1 & FireWall-1" proto="17" s_port="37317" service="53" service_id="domain-udp" src="10.10.1.180" ","type":"qqqqq","host":"10.10.10.250","@version":"1","port":50620}{"@timestamp":"2019-12-19T14:50:12.153Z","message":"time="1576766483" action="Accept" conn_direction="Internal" contextnum="1" ifdir="outbound" ifname="bond1.101" logid="0" loguid="{0x5dfb8c13,

рд╣реЗ рдореЗрд╕реЗрдЬ рдкрд╛рд╣рддрд╛, рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдордЬрддреЗ рдХреА рд▓реЙрдЧ рдЕрд╕реЗ рджрд┐рд╕рддрд╛рдд: рдлреАрд▓реНрдб = рд╡реНрд╣реЕрд▓реНрдпреВ рдХрд┐рдВрд╡рд╛ рдХреА = рд╡реНрд╣реЕрд▓реНрдпреВ, рдореНрд╣рдгрдЬреЗ kv рдирд╛рд╡рд╛рдЪрд╛ рдлрд┐рд▓реНрдЯрд░ рдпреЛрдЧреНрдп рдЖрд╣реЗ. рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд░рдгрд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдлрд┐рд▓реНрдЯрд░ рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА, рддрд╛рдВрддреНрд░рд┐рдХ рджрд╕реНрддрдРрд╡рдЬрд╛рдд рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╢реА рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдгреЗ рдХрд┐рдВрд╡рд╛ рдПрдЦрд╛рджреНрдпрд╛ рдорд┐рддреНрд░рд╛рд▓рд╛ рд╡рд┐рдЪрд╛рд░рдгреЗ рд╣реА рдЪрд╛рдВрдЧрд▓реА рдХрд▓реНрдкрдирд╛ рдЕрд╕реЗрд▓.

рдлрд┐рд▓реНрдЯрд░ рд╕реЗрдЯ рдХрд░рдд рдЖрд╣реЗ

рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдЖрдореНрд╣реА kv рдирд┐рд╡рдбрд▓реЗ, рдпрд╛ рдлрд┐рд▓реНрдЯрд░рдЪреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЦрд╛рд▓реА рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЖрд╣реЗ:

filter {
if [type] == "checkpoint"{
	kv {
		value_split => "="
		allow_duplicate_values => false
	}
}
}

рдЖрдореНрд╣реА рдЪрд┐рдиреНрд╣ рдирд┐рд╡рдбрддреЛ рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рдЖрдореНрд╣реА рдлреАрд▓реНрдб рдЖрдгрд┐ рдореВрд▓реНрдп рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реВ - тАЬ=тАЭ. рдЬрд░ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рд▓реЙрдЧрдордзреНрдпреЗ рдПрдХрд╕рд╛рд░рдЦреНрдпрд╛ рдиреЛрдВрджреА рдЕрд╕рддреАрд▓, рддрд░ рдЖрдореНрд╣реА рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдлрдХреНрдд рдПрдХрдЪ рдЙрджрд╛рд╣рд░рдг рдЬрддрди рдХрд░рддреЛ, рдЕрдиреНрдпрдерд╛ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рд╕рдорд╛рди рдореВрд▓реНрдпрд╛рдВрдЪрд╛ рдЕреЕрд░реЗ рдЕрд╕реЗрд▓, рдореНрд╣рдгрдЬреЗрдЪ рдЖрдордЪреНрдпрд╛рдХрдбреЗ тАЬfoo = some foo=someтАЭ рдЕрд╕рд╛ рд╕рдВрджреЗрд╢ рдЕрд╕рд▓реНрдпрд╛рд╕ рдЖрдореНрд╣реА рдлрдХреНрдд foo рд▓рд┐рд╣реВ. = рдХрд╛рд╣реА.

ElasticSearch рдордзреНрдпреЗ рдпреЛрдЧреНрдп рдЖрдЙрдЯрдкреБрдЯ рд╕реЗрдЯ рдХрд░рдгреЗ

рдПрдХрджрд╛ рдлрд┐рд▓реНрдЯрд░ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реНрдпрд╛рд╡рд░, рддреБрдореНрд╣реА рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд▓реЙрдЧ рдЕрдкрд▓реЛрдб рдХрд░реВ рд╢рдХрддрд╛ рд▓рд╡рдЪрд┐рдХ:

output 
{
if [type] == "checkpoint"
{
 	elasticsearch 
        {
		hosts => ["10.10.1.200:9200"]
		index => "checkpoint-%{+YYYY.MM.dd}"
    		user => "tssolution"
    		password => "cool"
  	}
}
}

рдЬрд░ рджрд╕реНрддрдРрд╡рдЬрд╛рд╡рд░ рдЪреЗрдХрдкреЙрдИрдВрдЯ рдкреНрд░рдХрд╛рд░рд╛рд╕рд╣ рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдХреЗрд▓реА рдЕрд╕реЗрд▓, рддрд░ рдЖрдореНрд╣реА рдЗрд▓рд╛рд╕реНрдЯрд┐рдХрд╕рд░реНрдЪ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдЗрд╡реНрд╣реЗрдВрдЯ рд╕реЗрд╡реНрд╣ рдХрд░рддреЛ, рдЬреЗ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдкреЛрд░реНрдЯ 10.10.1.200 рд╡рд░ 9200 рд░реЛрдЬреА рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░рддреЗ. рдкреНрд░рддреНрдпреЗрдХ рджрд╕реНрддрдРрд╡рдЬ рдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдд рдЬрддрди рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд рдЖрдореНрд╣реА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ "рдЪреЗрдХрдкреЙрдИрдВрдЯ-" + рд╡рд░реНрддрдорд╛рди рд╡реЗрд│ рддрд╛рд░реАрдЦ рдЬрддрди рдХрд░рддреЛ. рдкреНрд░рддреНрдпреЗрдХ рдЗрдВрдбреЗрдХреНрд╕рдордзреНрдпреЗ рдлреАрд▓реНрдбрдЪрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЪ рдЕрд╕реВ рд╢рдХрддреЛ рдХрд┐рдВрд╡рд╛ рд╕рдВрджреЗрд╢рд╛рдд рдирд╡реАрди рдлреАрд▓реНрдб рджрд┐рд╕рд▓реНрдпрд╛рд╡рд░ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рддреЗ; рдлреАрд▓реНрдб рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреЗ рдкреНрд░рдХрд╛рд░ рдореЕрдкрд┐рдВрдЧрдордзреНрдпреЗ рдкрд╛рд╣рд┐рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд.

рдЬрд░ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЕрд╕реЗрд▓ (рдЖрдореНрд╣реА рддреЗ рдирдВрддрд░ рдкрд╛рд╣реВ), рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рд╡рд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдХреНрд░реЗрдбреЗрдиреНрд╢рд┐рдпрд▓реНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдордзреНрдпреЗ рддреЗ "cool" рдкрд╛рд╕рд╡рд░реНрдбрд╕рд╣ "tssolution" рдЖрд╣реЗ. рддреБрдореНрд╣реА рдХреЗрд╡рд│ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рд╡рд░ рд▓реЙрдЧ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╡реЗрдЧрд│реЗ рдХрд░реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдЖрдгрдЦреА рдирд╛рд╣реА.

рд▓реЙрдЧрд╕реНрдЯреЕрд╢ рд▓рд╛рдБрдЪ рдХрд░рд╛.

рд▓реЙрдЧрд╕реНрдЯреЕрд╢ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓:

input 
{
         tcp 
         {
                port => 5555
  	  	type => "checkpoint"
    		mode => "server"
                host => тАЬ10.10.1.205тАЭ
   	 }
}

filter {
        if [type] == "checkpoint"{
	kv {
		value_split => "="
		allow_duplicate_values => false
	}
        }
}

output 
{
if [type] == "checkpoint"
{
 	elasticsearch 
        {
		hosts => ["10.10.1.200:9200"]
		index => "checkpoint-%{+YYYY.MM.dd}"
    		user => "tssolution"
    		password => "cool"
  	}
}
}

рдЖрдореНрд╣реА рдЕрдЪреВрдХрддреЗрд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рддрдкрд╛рд╕рддреЛ:
/usr/share/logstash/bin//logstash -f checkpoint.conf
2. рд▓рд╡рдЪрд┐рдХ рд╕реНрдЯреЕрдХ: рд╕реБрд░рдХреНрд╖рд╛ рдиреЛрдВрджреАрдВрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг. рд▓реЙрдЧрд╕реНрдЯреЕрд╢

рд▓реЙрдЧрд╕реНрдЯреЕрд╢ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрд░реВ рдХрд░рд╛:
sudo systemctl рд╕реНрдЯрд╛рд░реНрдЯ рд▓реЙрдЧрд╕реНрдЯреЕрд╢

рдЖрдореНрд╣реА рддрдкрд╛рд╕рддреЛ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрд░реВ рдЭрд╛рд▓реА рдЖрд╣реЗ:
sudo systemctl рд╕реНрдерд┐рддреА рд▓реЙрдЧрд╕реНрдЯреЕрд╢

2. рд▓рд╡рдЪрд┐рдХ рд╕реНрдЯреЕрдХ: рд╕реБрд░рдХреНрд╖рд╛ рдиреЛрдВрджреАрдВрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг. рд▓реЙрдЧрд╕реНрдЯреЕрд╢

рд╕реЙрдХреЗрдЯ рд╡рд░ рдЖрд╣реЗ рдХрд╛ рддреЗ рддрдкрд╛рд╕реВрдпрд╛:
netstat -nat |grep 5555

2. рд▓рд╡рдЪрд┐рдХ рд╕реНрдЯреЕрдХ: рд╕реБрд░рдХреНрд╖рд╛ рдиреЛрдВрджреАрдВрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг. рд▓реЙрдЧрд╕реНрдЯреЕрд╢

рдХрд┐рдмрд╛рдирд╛ рдордзреАрд▓ рд▓реЙрдЧ рддрдкрд╛рд╕рдд рдЖрд╣реЗ.

рд╕рд░реНрд╡рдХрд╛рд╣реА рдЪрд╛рд▓реВ рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░, рдХрд┐рдмрд╛рдирд╛ рд╡рд░ рдЬрд╛ - рд╢реЛрдзрд╛, рд╕рд░реНрд╡рдХрд╛рд╣реА рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЖрд╣реЗ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рд╛, рдЪрд┐рддреНрд░ рдХреНрд▓рд┐рдХ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдЖрд╣реЗ!

2. рд▓рд╡рдЪрд┐рдХ рд╕реНрдЯреЕрдХ: рд╕реБрд░рдХреНрд╖рд╛ рдиреЛрдВрджреАрдВрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг. рд▓реЙрдЧрд╕реНрдЯреЕрд╢

рд╕рд░реНрд╡ рд▓реЙрдЧ рдард┐рдХрд╛рдгреА рдЖрд╣реЗрдд рдЖрдгрд┐ рдЖрдореНрд╣реА рд╕рд░реНрд╡ рдлреАрд▓реНрдб рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреА рдореВрд▓реНрдпреЗ рдкрд╛рд╣реВ рд╢рдХрддреЛ!

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

рдЖрдореНрд╣реА рд▓реЙрдЧрд╕реНрдЯреЕрд╢ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рдХрд╢реА рд▓рд┐рд╣рд╛рдпрдЪреА рддреЗ рдкрд╛рд╣рд┐рд▓реЗ рдЖрдгрд┐ рдкрд░рд┐рдгрд╛рдореА рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рд░реНрд╡ рдлреАрд▓реНрдб рдЖрдгрд┐ рдореВрд▓реНрдпрд╛рдВрдЪрд╛ рдкрд╛рд░реНрд╕рд░ рдорд┐рд│рд╛рд▓рд╛. рдЖрддрд╛ рдЖрдореНрд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлреАрд▓реНрдбрд╕рд╛рдареА рд╢реЛрдз рдЖрдгрд┐ рдкреНрд▓реЙрдЯрд┐рдВрдЧрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░реВ рд╢рдХрддреЛ. рдкреБрдвреЗ рдХреЛрд░реНрд╕рдордзреНрдпреЗ рдЖрдкрдг рдХрд┐рдмрд╛рдирд╛рдордзреАрд▓ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рди рдкрд╛рд╣реВ рдЖрдгрд┐ рдПрдХ рд╕рд╛рдзрд╛ рдбреЕрд╢рдмреЛрд░реНрдб рддрдпрд╛рд░ рдХрд░реВ. рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдХреА рд▓реЙрдЧрд╕реНрдЯреЕрд╢ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрдордзреНрдпреЗ рд╕рддрдд рдЕрдкрдбреЗрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рдлреАрд▓реНрдбрдЪреЗ рдореВрд▓реНрдп рдПрдХрд╛ рд╕рдВрдЦреНрдпреЗрд╡рд░реВрди рд╢рдмреНрджрд╛рдд рдмрджрд▓рд╛рдпрдЪреЗ рдЕрд╕рддреЗ. рдкреБрдвреАрд▓ рд▓реЗрдЦрд╛рдВрдордзреНрдпреЗ рдЖрдкрдг рд╣реЗ рд╕рддрдд рдХрд░реВ.

рддреНрдпрд╛рдореБрд│реЗ рдЯреНрдпреВрди рд░рд╛рд╣рд╛рддрд╛рд░, рдлреЗрд╕рдмреБрдХ, VK, рдЯреАрдПрд╕ рд╕реЛрд▓реНрдпреВрд╢рди рдмреНрд▓реЙрдЧ), рдпрд╛рдВрдбреЗрдХреНрд╕ рдЭреЗрди.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛