ืืขืืจ
ืืงืืจืก ืืื ื ืืืกื ืืช ืืืชืงื ื ืฉื ืืืกื ืืช ELK, ืืืืืื ืฉืืฉ ืืกืคืจ ืขืฆืื ืฉื ืืืืจืื ืื ืืฉื ืื; ื ืฉืงืื ืืช ืจืืื ืืชืฆืืจื.
ืืืื ื ืขืจืื ืชืืื ืืช ืคืขืืื ืขืืืจ ืชืฆืืจืช Logstash:
- ืืืืงื ืื elasticsearch ืืงืื ืืืื ืื (ืืืืงืช ืืคืื ืงืฆืืื ืืืืช ืืืคืชืืืืช ืฉื ืืคืืจื).
- ืื ื ืฉืืงืืื ืืืฆื ืื ื ืืืืืื ืืฉืืื ืืืจืืขืื ื-Logstash, ืืืืืจ ืฉืืื ืืืืืฉื ืืืชื.
- ืื ื ืืืืืจืื ืืช ืืงืื ืืงืืืฅ ืืชืฆืืจื ืฉื Logstash.
- ืื ื ืืืืืจืื ืืช ืืคืื ืืงืืืฅ ืืชืฆืืจื ืฉื Logstash ืืืฆื ื ืืคืื ืืืืื ืืื ืืืืื ืืื ื ืจืืืช ืืืืขืช ืืืืื.
- ืืืืจืช ืืกื ื.
- ืืืืจืช ืืคืื ืื ืืื ื- ElasticSearch.
- Logstash ืืืคืขื.
- ืืืืงืช ืืืืื ืื ืืงืืื ื.
ืืืื ื ืกืชืื ืขื ืื ื ืงืืื ืืืชืจ ืคืืจืื:
ืืืืงืื ืื elasticsearch ืืงืื ืืืื ืื
ืืฉื ืื, ืืชื ืืืื ืืืฉืชืืฉ ืืคืงืืื curl ืืื ืืืืืง ืืืฉื ืื Elasticsearch ืืืืขืจืืช ืฉืื ืคืจืืก Logstash. ืื ืืืืจืช ืืืืืช, ืื ื ืื ืืขืืืจืื ืืช ืืืฉืชืืฉ/ืืกืืกืื ืืืืฆืขืืช curl, ืชืื ืฆืืื ืืฆืืื 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 ~]$
ืื ืืชืืืื ืื ืืชืงืืืช, ืืืชืื ื ืืกืคืจ ืกืืืื ืฉื ืฉืืืืืช: ืชืืืื elasticsearch ืืื ื ืคืืขื, ืืืฆืืื ืืฉืืืื ืฆืืื ื, ืื ืฉืืืฆืืื ืืกืืื ืขื ืืื ืืืืช ืืฉ ืืฉืจืช ืฉืื ืืืชืงื elasticsearch.
ืืืื ื ืกืชืื ืืืฆื ื ืืชื ืืฉืืื ืืืื ืื ื-Logstash ืืืืืช ืืฉ ืฉื ื ืงืืืช ืืืงืืจืช
ืืฉืจืช ืื ืืืื ืฉื ืฆ'ืง ืคืืื ื ืืชื ืืืื ืืฉืืื ืืืืื ื-Logstash ืืจื syslog ืืืืฆืขืืช ืืื ืืฉืืจืืช log_exporter, ืชืืื ืืงืจืื ืขืื ืขื ืื ืืื
cp_log_export ืืืกืฃ ืฉื check_point_syslog target-server < > ืืฆืืืช ืืขื 5555 ืคืจืืืืงืื tcp ืคืืจืื ืื ืจื ืืฆื ืงืจืืื ืืฆื ืืืืื
< > - ืืชืืืช ืืฉืจืช ืขืืื ืจืฅ Logstash, target-port 5555 - ืคืืจื ืืืื ื ืฉืื ืืืืื, ืฉืืืืช ืืืืื ืืจื tcp ืืืืื ืืืขืื ืืช ืืฉืจืช, ืื ืฉืืืงืจืื ืืกืืืืื ืืืชืจ ื ืืื ืืืฉืชืืฉ ื-udp.
ืืืืจืช INPUT ืืงืืืฅ ืืชืฆืืจื ืฉื Logstash
ืืืจืืจืช ืืืื, ืงืืืฅ ืืชืฆืืจื ืืืืงื ืืกืคืจืืื /etc/logstash/conf.d/. ืงืืืฅ ืืชืฆืืจื ืืืจืื ื-3 ืืืงืื ืืขืื ืืฉืืขืืช: INPUT, FILTER, OUTPUT. IN ืงืื ืื ื ืืฆืืื ืื ืืืืคื ืืืขืจืืช ืชืืงื ืืืื ืื, ื ืกื ื ื ืืชืื ืืืืื - ืืืืจ ืืืฆื ืืืืง ืืช ืืืืืขื ืืฉืืืช ืืขืจืืื, ื ืชืคืืงื ืื ื ืืืืืจืื ืืช ืืจื ืืคืื - ืืื ืืืฉืืื ืืืืื ืื ืืื ืืชืืื.
ืจืืฉืืช, ืืืื ื ืืืืจ ืืช INPUT, ื ืืงื ืืืฉืืื ืืื ืืืกืืืื ืฉืืืืืื ืืืืืช - file, tcp ื-exe.
TCP:
input {
tcp {
port => 5555
host => โ10.10.1.205โ
type => "checkpoint"
mode => "server"
}
}
ืืฆื => "ืฉืจืช"
ืืฆืืื ืฉ-Logstash ืืงืื ืืืืืจืื.
ืืฆืืื => 5555
ืืืจื => "10.10.1.205"
ืื ื ืืงืืืื ืืืืืจืื ืืจื ืืชืืืช IP 10.10.1.205 (Logstash), ืืฆืืื 5555 - ืืืฆืืื ืืืืืช ืืืืืช ืืืชืจืช ืขื ืคื ืืืื ืืืช ืืืืช ืืืฉ.
ืืงืื => "ืืืกืื"
ืื ื ืืกืื ืื ืืช ืืืกืื, ื ืื ืืืื ืื ืืฉ ืื ืืกืคืจ ืืืืืจืื ื ืื ืกืื. ืืืืจ ืืื, ืขืืืจ ืื ืืืืืจ ืืชื ืืืื ืืืชืื ืืกื ื ืืฉืื ืืืืฆืขืืช ืืืื ื ืืืืื ืื.
ืงืืืฅ:
input {
file {
path => "/var/log/openvas_report/*"
type => "openvas"
start_position => "beginning"
}
}
ืชืืืืจ ืืืืืจืืช:
ื ืชืื => "/var/log/openvas_report/*"
ืื ื ืืฆืืื ืื ืืช ืืกืคืจืืื ืฉืื ืืฉ ืืงืจืื ืืช ืืงืืฆืื.
ืืงืื => "openvas"
ืกืื ืืืจืืข.
start_position => "ืืชืืื"
ืืขืช ืฉืื ืื ืงืืืฅ, ืืื ืงืืจื ืืช ืื ืืงืืืฅ; ืื ืืชื ืืืืืจ "ืกืืฃ", ืืืขืจืืช ืืืชืื ื ืืจืฉืืืืช ืืืฉืืช ืฉืืืคืืขื ืืกืืฃ ืืงืืืฅ.
ืืืฆืืข:
input {
exec {
command => "ls -alh"
interval => 30
}
}
ืืืืฆืขืืช ืงืื ืื, ืืืคืขืืช ืคืงืืืช ืืขืืคืช (ืืืื!) ืืืคืื ืฉืื ืืืคื ืืืืืขืช ืืืื.
ืคืงืืื => "ls -alh"
ืืคืงืืื ืฉืืคืื ืฉืื ืื ืื ื ืืขืื ืืื ืื.
ืืจืืื => 30
ืืจืืื ืืคืขืืช ืคืงืืื ืืฉื ืืืช.
ืขื ืื ืช ืืงืื ืืืื ืื ืืืืืช ืืืฉ, ืื ื ืจืืฉืืื ืืกื ื TCP ืื UDP, ืชืืื ืืื ืืืืื ืื ื ืฉืืืื ื-Logstash.
ืื ื ืืืืืจืื ืืช ืืคืื ืืงืืืฅ ืืชืฆืืจื ืฉื 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
ืื ื ืจืืืื ืืช ืืชืืฆืื, ืืชืืื ื ื ืืชื ืช ืืืืืฆื:
ืื ืชืขืชืืง ืืืชื ืื ืืืจืื ืื:
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"
}
}
}
ืื ืืืกืื ืืชืื ืขื ืกืื ืืืืกืื, ืื ื ืฉืืืจืื ืืช ืืืืจืืข ืืืกื ืื ืชืื ืื ืฉื elasticsearch, ืฉืืงืื ืืืืืจืื ืืชืืจืื 10.10.1.200 ืืืฆืืื 9200 ืืืจืืจืช ืืืื. ืื ืืกืื ื ืฉืืจ ืืืื ืืงืก ืืกืืื, ืืืงืจื ืื ืื ื ืฉืืืจืื ืืืื ืืงืก "ืืืกืื-" + ืชืืจืื ืืื ื ืืืื. ืื ืืื ืืงืก ืืืื ืืืืื ืงืืืฆื ืืกืืืืช ืฉื ืฉืืืช, ืื ืฉื ืืฆืจ ืืืืคื ืืืืืืื ืืืฉืจ ืฉืื ืืืฉ ืืืคืืข ืืืืืขื; ื ืืชื ืืจืืืช ืืช ืืืืจืืช ืืฉืืืช ืืืกืื ืฉืืื ืืืืคืืืื.
ืื ืืืืจืช ืืืืืช (ื ืกืชืื ืขื ืื ืืืืืจ ืืืชืจ), ืืฉ ืืฆืืื ืืช ืืืืฉืืจืื ืืืชืืื ืืืื ืืงืก ืกืคืฆืืคื, ืืืืืื ืื ืื "tssolution" ืขื ืืกืืกืื "ืืื ืื". ื ืืชื ืืืืืื ืืื ืืืืืืช ืืฉืชืืฉ ืืืชืืืช ืืืื ืื ืจืง ืืืื ืืงืก ืกืคืฆืืคื ืืื ืืืชืจ.
ืืคืขื ืืช 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
ืืชืื ืืช ืชืืืื Logstash:
ืืชืื ืืืืกืืืฉ
ืื ื ืืืืงืื ืฉืืชืืืื ืืชืืื:
sudo systemctl status logstash
ืืื ื ืืืืง ืื ืืฉืงืข ืคืชืื:
netstat -nat |grep 5555
ืืืืงืช ืืืืื ืื ืืงืืื ื.
ืืืจื ืฉืืื ืคืืขื, ืขืืจื ื-Kibana - Discover, ืืืืื ืฉืืื ืืืืืจ ื ืืื, ืืชืืื ื ื ืืชื ืช ืืืืืฆื!
ืื ืืืืื ืื ื ืืฆืืื ืืืงืื ืืื ืื ื ืืืืืื ืืจืืืช ืืช ืื ืืฉืืืช ืืืขืจืืื ืฉืืื!
ืืกืงื ื
ืืืงื ื ืืื ืืืชืื ืงืืืฅ ืชืฆืืจื ืฉื Logstash, ืืืชืืฆืื ืืื ืงืืืื ื ืื ืชื ืฉื ืื ืืฉืืืช ืืืขืจืืื. ืืขืช ื ืืื ืืขืืื ืขื ืืืคืืฉ ืืชืื ืื ืฉืืืช ืกืคืฆืืคืืื. ืืฉืื ืืื ืืงืืจืก ื ืกืชืื ืขื ืืืืื ืืงืืืื ื ืื ืืฆืืจ ืืื ืืืืื ืื ืคืฉืื. ืจืืื ืืืืืืจ ืฉืงืืืฅ ืืชืฆืืจื ืฉื Logstash ืฆืจืื ืืืชืขืืื ืื ืืืื ืืืฆืืื ืืกืืืืื, ืืืฉื, ืืืฉืจ ืื ื ืจืืฆืื ืืืืืืฃ ืขืจื ืฉื ืฉืื ืืืกืคืจ ืืืืื. ืืืืืจืื ืืืืื ื ืขืฉื ืืืช ืืื ืืจืฃ.
ืื ืืืฉืืจื ืืขืืืื ืื
ืืงืืจ: www.habr.com