2. Elastic stack: Π°Π½Π°Π»ΠΈΠ· Π½Π° security Π»ΠΎΠ³ΠΎΠ². Logstash

2. Elastic stack: Π°Π½Π°Π»ΠΈΠ· Π½Π° security Π»ΠΎΠ³ΠΎΠ². Logstash

Π’ ΠΏΡ€Π΅Π΄Ρ…ΠΎΠ΄Π½Π°Ρ‚Π° статията с ΠΊΠΎΠ³ΠΎ сС Π·Π°ΠΏΠΎΠ·Π½Π°Ρ…ΠΌΠ΅ с ELK стСк, ΠΎΡ‚ ΠΊΠΎΠΈ софтуСрни ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ сС ΡΡŠΡΡ‚ΠΎΠΈ. И ΠΏΡŠΡ€Π²Π°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π°, с която сС сблъсква ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с ELK стСка, Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅ Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² Elasticsearch Π·Π° послСдващ Π°Π½Π°Π»ΠΈΠ·. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° просто ΠΊΠ°Π·Π°Π½ΠΎ, Elasticsearch ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π° ΠΈ стойности, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ трябва Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ инструмСнти, Π·Π° Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΠΎΡ‚ ΠΊΡ€Π°ΠΉΠ½ΠΈΡ‚Π΅ систСми. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎ няколко Π½Π°Ρ‡ΠΈΠ½Π° β€” Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ собствСна ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, която Ρ‡Ρ€Π΅Π· API Ρ‰Π΅ добавя Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π² Π±Π°Π·Π°Ρ‚Π°, ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π²Π΅Ρ‡Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π’ Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ курс Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Logstash, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ част ΠΎΡ‚ ELK стСка. Π©Π΅ Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΠΌ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ ΠΎΡ‚ ΠΊΡ€Π°ΠΉΠ½ΠΈΡ‚Π΅ систСми Π² Logstash ΠΈ слСд Ρ‚ΠΎΠ²Π° Ρ‰Π΅ настройвамС конфигурационния Ρ„Π°ΠΉΠ» Π·Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ ΠΈ прСнасочванС Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Elasticsearch. Π—Π° Ρ‚Π°Π·ΠΈ Ρ†Π΅Π» ΠΊΠ°Ρ‚ΠΎ входяща систСма Π²Π·ΠΈΠΌΠ°ΠΌΠ΅ Π»ΠΎΠ³ΠΎΠ²Π΅ ΠΎΡ‚ Π·Π°Ρ‰ΠΈΡ‚Π½Π°Ρ‚Π° стСна Check Point.

Π’ Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° курса Π½Π΅ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ инсталиранСто Π½Π° ELK стСка, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎ количСство статии ΠΏΠΎ Ρ‚Π°Π·ΠΈ Ρ‚Π΅ΠΌΠ°, Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ конфигурационния аспСкт.

Π©Π΅ ΡΡŠΡΡ‚Π°Π²ΠΈΠΌ ΠΏΠ»Π°Π½ Π·Π° дСйствиС ΠΏΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° Logstash:

  1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π»ΠΈ Elasticsearch Ρ‰Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π»ΠΎΠ³ΠΎΠ²Π΅ (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π° работоспособност ΠΈ отворСност Π½Π° ΠΏΠΎΡ€Ρ‚Π°).
  2. Π Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΠΌ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π² Logstash, ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π°ΠΌΠ΅ Π³ΠΎ.
  3. НастройвамС Input Π² конфигурационния Ρ„Π°ΠΉΠ» Π½Π° Logstash.
  4. НастройвамС Output Π² конфигурационния Ρ„Π°ΠΉΠ» Π½Π° Logstash Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, Π·Π° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π»ΠΎΠ³ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ.
  5. НастройвамС Filter.
  6. НастройвамС ΠΊΠΎΡ€Π΅ΠΊΡ‚Π΅Π½ Output Π² Elasticsearch.
  7. Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ Logstash.
  8. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΠΌΠ΅ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ Π² Kibana.

НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ всСки ΠΏΡƒΠ½ΠΊΡ‚:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π»ΠΈ Elasticsearch Ρ‰Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π»ΠΎΠ³ΠΎΠ²Π΅

Π—Π° Ρ†Π΅Π»Ρ‚Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ с ΠΊΠΎΠΌΠ°Π½Π΄Π° curl Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ Elasticsearch ΠΎΡ‚ систСмата, Π² която Π΅ Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Logstash. Ако ΠΈΠΌΠ°Ρ‚Π΅ настроСна автСнтификация, Ρ‚ΠΎΠ³Π°Π²Π° ΡΡŠΡ‰ΠΎ Ρ‡Ρ€Π΅Π· curl ΠΏΡ€Π΅Π΄Π°Π²Π°ΠΌΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»/ΠΏΠ°Ρ€ΠΎΠ»Π°, посочвамС ΠΏΠΎΡ€Ρ‚ 9200, Π°ΠΊΠΎ Π½Π΅ стС Π³ΠΎ промСняли. Ако ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° посочСния ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ, Π·Π½Π°Ρ‡ΠΈ всичко Π΅ Π½Π°Ρ€Π΅Π΄.

[elastic@elasticsearch ~]$ curl -u <> : <> -sS -XGET "<>: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 ~]$

Ако ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΡŠΡ‚ Π½Π΅ Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° няколко Π²ΠΈΠ΄Π° Π³Ρ€Π΅ΡˆΠΊΠΈ: ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ elasticsearch Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ, ΡƒΠΊΠ°Π·Π°Π½ Π΅ Π½Π΅Π²Π°Π»ΠΈΠ΄Π΅Π½ ΠΏΠΎΡ€Ρ‚ ΠΈΠ»ΠΈ ΠΏΠΎΡ€Ρ‚ΡŠΡ‚ Π΅ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ ΠΎΡ‚ Π·Π°Ρ‰ΠΈΡ‚Π½Π°Ρ‚Π° стСна Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ Π΅ инсталиран elasticsearch.

НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΠΌ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ Π² Logstash ΠΏΡ€Π΅Π· Π·Π°Ρ‰ΠΈΡ‚Π½Π°Ρ‚Π° стСна Check Point.

Π‘ ΡΡŠΡ€Π²ΡŠΡ€Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Check Point ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ Π»ΠΎΠ³ΠΎΠ²Π΅ Π² Logstash Ρ‡Ρ€Π΅Π· syslog, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° log_exporter, ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π·Π° нСя Ρ‚ΡƒΠΊ. статията, Ρ‚ΡƒΠΊ оставямС само ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°, която създава ΠΏΠΎΡ‚ΠΎΠΊΠ°:

cp_log_export add name check_point_syslog target-server <> target-port 5555 protocol tcp format generic read-mode semi-unified

<> β€” Π°Π΄Ρ€Π΅ΡΡŠΡ‚ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Logstash, target-port 5555 β€” ΠΏΠΎΡ€Ρ‚ΡŠΡ‚, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅, ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅ ΠΏΠΎ tcp ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€ΠΈ ΡΡŠΡ€Π²ΡŠΡ€Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π² някои случаи Π΅ ΠΏΠΎ-ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° udp.

НастройвамС INPUT Π² конфигурационния Ρ„Π°ΠΉΠ» Π½Π° Logstash.

2. Elastic stack: Π°Π½Π°Π»ΠΈΠ· Π½Π° security Π»ΠΎΠ³ΠΎΠ². Logstash

По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ конфигурационният Ρ„Π°ΠΉΠ» сС Π½Π°ΠΌΠΈΡ€Π° Π² дирСкторията /etc/logstash/conf.d/. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡΡ‚ Ρ„Π°ΠΉΠ» сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚ Ρ‚Ρ€ΠΈ логичСски части: INPUT, FILTER, OUTPUT. Π’ INPUT ΡƒΠΊΠ°Π·Π²Π°ΠΌΠ΅ ΠΎΡ‚ΠΊΡŠΠ΄Π΅ систСмата Ρ‰Π΅ Π²Π·Π΅ΠΌΠ° Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅, Π² FILTER парсинг Π½Π° Π»ΠΎΠ³Π° β€” настройвамС ΠΊΠ°ΠΊ Π΄Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ»Π΅Ρ‚Π° ΠΈ стойности, Π² OUTPUT настройвамС изходящия ΠΏΠΎΡ‚ΠΎΠΊ β€” къдС парснатитС Π»ΠΎΠ³ΠΎΠ²Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½ΠΈ.

ΠŸΡŠΡ€Π²ΠΎ Ρ‰Π΅ настроим INPUT, Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ някои Ρ‚ΠΈΠΏΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ β€” file, tcp ΠΈ exe.

Tcp:

input {
tcp {
    port => 5555
    host => "10.10.1.205"
    type => "checkpoint"
    mode => "server"
}
}

mode => Β«serverΒ»
ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Logstash ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π²Ρ€ΡŠΠ·ΠΊΠΈ.

port => 5555
host => "10.10.1.205"
ΠŸΡ€ΠΈΠ΅ΠΌΠ°ΠΌΠ΅ Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΏΠΎ IP адрСса 10.10.1.205 (Logstash), ΠΏΠΎΡ€Ρ‚ 5555 β€” ΠΏΠΎΡ€Ρ‚ΡŠΡ‚ трябва Π΄Π° бъдС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ ΠΎΡ‚ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π½Π°Ρ‚Π° стСна.

type => Β«checkpointΒ»
ΠœΠ°Ρ€ΠΊΠΈΡ€Π°ΠΌΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π² случай, Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚Π΅ няколко входящи Π²Ρ€ΡŠΠ·ΠΊΠΈ. По-късно Π·Π° всяка Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ свой собствСн Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° логичСската конструкция if.

File:

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

ОписаниС Π½Π° настройкитС:
path => Β«/var/log/openvas_report/*Β»
ΠŸΠΎΡΠΎΡ‡Π²Π°ΠΌΠ΅ дирСкторията, Π² която трябва Π΄Π° сС Ρ‡Π΅Ρ‚Π°Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅.

type => "openvas"
Π’ΠΈΠΏ Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ.

start_position => "Π½Π°Ρ‡Π°Π»ΠΎ"
ΠŸΡ€ΠΈ промяна Π½Π° Ρ„Π°ΠΉΠ»Π°, сС Ρ‡Π΅Ρ‚Π΅ цСлия Ρ„Π°ΠΉΠ»; Π°ΠΊΠΎ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ΠΎ "ΠΊΡ€Π°ΠΉ", систСмата ΠΎΡ‡Π°ΠΊΠ²Π° Π½ΠΎΠ²ΠΈ записи Π² края Π½Π° Ρ„Π°ΠΉΠ»Π°.

Exec:

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

По Ρ‚ΠΎΠ·ΠΈ Π²Ρ…ΠΎΠ΄ сС стартира (само!) shell ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈ нСйният ΠΈΠ·Ρ…ΠΎΠ΄ сС ΠΎΠ±Π³Ρ€ΡŠΡ‰Π° Π² Π»ΠΎΠ³ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅.

command => "ls -alh"
Команда, Ρ‡ΠΈΠΉΡ‚ΠΎ ΠΈΠ·Ρ…ΠΎΠ΄ Π½ΠΈ интСрСсува.

interval => 30
Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Π² сСкунди.

Π—Π° Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ΠΌ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ ΠΎΡ‚ Π·Π°Ρ‰ΠΈΡ‚Π½Π°Ρ‚Π° стСна, опрСдСлямС Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ tcp ΠΈΠ»ΠΈ udp, Π² зависимост ΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ Π² Logstash.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌΠ΅ Output Π² конфигурационния Ρ„Π°ΠΉΠ» Π½Π° Logstash Π² Ρ€Π΅ΠΆΠΈΠΌ дСбъг, Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π»ΠΎΠ³ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ.

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌΠ΅ 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
Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°, ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°Ρ‚Π° Π΅Clickable:

2. Elastic stack: Π°Π½Π°Π»ΠΈΠ· Π½Π° security Π»ΠΎΠ³ΠΎΠ². Logstash

Ако ΠΊΠΎΠΏΠΈΡ€Π°ΠΌΠ΅ Ρ‚ΠΎΠ²Π°, Ρ‰Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

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="ts-spb-dc-01@tssolution.local" 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,

Π“Π»Π΅Π΄Π°ΠΉΠΊΠΈ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅, Ρ‡Π΅ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ са във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚: ΠΏΠΎΠ»Π΅ = стойност ΠΈΠ»ΠΈ key = value, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠΆΠ΄Π° Ρ„ΠΈΠ»Ρ‚ΡŠΡ€, Π½Π°Ρ€Π΅Ρ‡Π΅Π½ kv. Π—Π° Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅ΠΌ правилния Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ Π·Π° всСки ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ случай, Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° сС Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΠΌ с тях Π² тСхничСската докумСнтация ΠΈΠ»ΠΈ Π΄Π° ΠΏΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ приятСл.

НастройвамС Filter

На ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ Π΅Ρ‚Π°ΠΏ ΠΈΠ·Π±Ρ€Π°Ρ…ΠΌΠ΅ kv, слСдващата конфигурация Π½Π° Ρ‚ΠΎΠ·ΠΈ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ Π΅:

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

Π˜Π·Π±ΠΈΡ€Π°ΠΌΠ΅ символа, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ раздСлямС ΠΏΠΎΠ»Π΅Ρ‚ΠΎ ΠΈ стойността β€” β€œ=”. Ако ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈ записи Π² Π»ΠΎΠ³Π°, Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ Π² Π±Π°Π·Π°Ρ‚Π° само Π΅Π΄ΠΈΠ½ СкзСмпляр, ΠΈΠ½Π°Ρ‡Π΅ Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ масив ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈ стойности, Ρ‚.Π΅., Π°ΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ β€œfoo = some foo=some”, записвамС само foo = some.

НастройвамС ΠΊΠΎΡ€Π΅ΠΊΡ‚Π΅Π½ Output Π² ElasticSearch

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ Ρ„ΠΈΠ»Ρ‚ΡŠΡ€ΡŠΡ‚ Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΠΌ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ Π² Π±Π°Π·Π°Ρ‚Π°. elasticsearch:

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

Ако Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ Π΅ подписан с Ρ‚ΠΈΠΏΠ° checkpoint, ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π² Π±Π°Π·Π°Ρ‚Π° elasticsearch, която ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π²Ρ€ΡŠΠ·ΠΊΠΈ Π½Π° 10.10.1.200 Π½Π° ΠΏΠΎΡ€Ρ‚ 9200 ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. ВсСки Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ индСкс, Π² Ρ‚ΠΎΠ·ΠΈ случай Π² индСкс β€žcheckpoint-” + Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π²Π° Π΄Π°Ρ‚Π°. ВсСки индСкс ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΠΎΠ»Π΅Ρ‚Π°, ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ сС създава ΠΏΡ€ΠΈ появата Π½Π° Π½ΠΎΠ²ΠΎ ΠΏΠΎΠ»Π΅ Π² ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ, настройкитС Π½Π° ΠΏΠΎΠ»Π΅Ρ‚Π° ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС видят Π² mappings.

Ако ΠΈΠΌΠ°Ρ‚Π΅ настроСна аутСнтификация (която Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-късно), Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ посочСни ΠΊΡ€Π΅Π΄Π΅Π½Ρ†ΠΈΠΈ Π·Π° запис Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ индСкс, Π² Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ²Π° Π΅ β€žtssolutionβ€œ с ΠΏΠ°Ρ€ΠΎΠ»Π° β€žcoolβ€œ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²Π°Ρ‚Π° Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π·Π° запис Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ само Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ индСкс, Π° Π½Π΅ Π² Π΄Ρ€ΡƒΠ³.

Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ Logstash.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡΡ‚ Ρ„Π°ΠΉΠ» Π½Π° Logstash:

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. Elastic stack: Π°Π½Π°Π»ΠΈΠ· Π½Π° security Π»ΠΎΠ³ΠΎΠ². Logstash

Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ процСса Logstash:
sudo systemctl start logstash

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΠΌΠ΅ Π΄Π°Π»ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π΅ стартирал:
sudo systemctl status logstash

2. Elastic stack: Π°Π½Π°Π»ΠΈΠ· Π½Π° security Π»ΠΎΠ³ΠΎΠ². Logstash

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΠΌΠ΅ Π΄Π°Π»ΠΈ ΡΠΎΠΊΠ΅Ρ‚ΡŠΡ‚ Π΅ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½:
netstat -nat |grep 5555

2. Elastic stack: Π°Π½Π°Π»ΠΈΠ· Π½Π° security Π»ΠΎΠ³ΠΎΠ². Logstash

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΠΌΠ΅ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ Π² Kibana.

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ всичко Π΅ пуснато, Π²Π»ΠΈΠ·Π°ΠΌΠ΅ Π² Kibana β€” Discover ΠΈ сС увСрявамС, Ρ‡Π΅ всичко Π΅ настроСно ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΅ ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌo!

2. Elastic stack: Π°Π½Π°Π»ΠΈΠ· Π½Π° security Π»ΠΎΠ³ΠΎΠ². Logstash

Всички Π»ΠΎΠ³ΠΎΠ²Π΅ са Π½Π° място ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ всички ΠΏΠΎΠ»Π΅Ρ‚Π° ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ стойности!

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π Π°Π·Π³Π»Π΅Π΄Π°Ρ…ΠΌΠ΅ ΠΊΠ°ΠΊ Π΄Π° пишСм ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅Π½ Ρ„Π°ΠΉΠ» Π·Π° Logstash ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ парсСр Π·Π° всички ΠΏΠΎΠ»Π΅Ρ‚Π° ΠΈ стойности. Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π°. Π’ слСдващитС части Π½Π° курса Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ визуализацията Π² Kibana ΠΈ Ρ‰Π΅ създадСм прост Π΄Π°ΡˆΠ±ΠΎΡ€Π΄. Врябва Π΄Π° спомСнСм, Ρ‡Π΅ конфигурационният Ρ„Π°ΠΉΠ» Π½Π° Logstash трябва Π΄Π° сС дописва постоянно Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ситуации, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π°Ρ‚ΠΎ искамС Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈΠΌ стойност Π½Π° ΠΏΠΎΠ»Π΅ ΠΎΡ‚ число Π½Π° Π΄ΡƒΠΌΠ°. Π’ слСдващитС статии Ρ‰Π΅ Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌ постоянно.

Π’Π°ΠΊΠ° Ρ‡Π΅ слСдСтС Π·Π° обновлСнията (Telegram, Facebook, VK, TS Solution Blog), ЯндСкс.Π”Π·Π΅Π½.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster