Azkenean
Ikastaroak ez du ELK pilaren instalazioa lantzen, gai honi buruzko artikulu ugari baitago; konfigurazio osagaia hartuko dugu kontuan.
Egin dezagun Logstash konfiguraziorako ekintza-plan bat:
- elasticsearch-ek erregistroak onartuko dituela egiaztatzea (portuaren funtzionaltasuna eta irekitasuna egiaztatzea).
- Gertaerak Logstash-era nola bidal ditzakegun aztertzen dugu, metodo bat aukeratu eta hura inplementatu.
- Sarrera Logstash konfigurazio fitxategian konfiguratzen dugu.
- Irteera Logstash konfigurazio fitxategian konfiguratzen dugu arazketa moduan, erregistro-mezua nolakoa den ulertzeko.
- Iragazkia konfiguratzea.
- Irteera zuzena konfiguratzea ElasticSearch-en.
- Logstash abiarazten da.
- Kibanako erregistroak egiaztatzea.
Ikus ditzagun puntu bakoitza zehatzago:
Elastsearch-ek erregistroak onartuko dituela egiaztatzea
Horretarako, curl komandoa erabil dezakezu Logstash inplementatuta dagoen sistematik Elasticsearch-erako sarbidea egiaztatzeko. Autentifikazioa konfiguratuta baduzu, erabiltzailea/pasahitza ere transferituko dugu curl bidez, aldatu ez baduzu 9200 ataka zehaztuz. Behekoaren antzeko erantzuna jasotzen baduzu, dena ondo dago.
[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 ~]$
Erantzuna jasotzen ez bada, hainbat akats mota egon daitezke: elasticsearch prozesua ez dago martxan, okerreko ataka zehaztuta dago edo portua blokeatuta dago elasticsearch instalatuta dagoen zerbitzarian suebaki batek.
Ikus dezagun Logstash-era erregistroak nola bidal ditzakezun checkpoint suebaki batetik
Check Point kudeaketa zerbitzaritik Logstash-era erregistroak bidal ditzakezu syslog bidez log_exporter utilitatea erabiliz, honi buruz gehiago irakur dezakezu hemen
cp_log_export gehitu izena check_point_syslog target-server < > target-port 5555 protokoloa tcp formatua irakurketa modu generikoa erdi-bateratua
< > - Logstash-ek exekutatzen duen zerbitzariaren helbidea, target-port 5555 - log-ak bidaliko ditugun ataka, tcp bidez erregistroak bidaltzeak zerbitzaria kargatu dezake, beraz, kasu batzuetan zuzenagoa da udp erabiltzea.
INPUT konfiguratzea Logstash konfigurazio fitxategian
Lehenespenez, konfigurazio fitxategia /etc/logstash/conf.d/ direktorioan dago. Konfigurazio fitxategiak 3 zati esanguratsu ditu: INPUT, FILTER, OUTPUT. IN INPUT sistemak nondik hartuko dituen erregistroak adieraziko dugu FILTER analizatu erregistroa - konfiguratu mezua nola banatu eremuetan eta balioetan OUTPUT irteerako korrontea konfiguratzen dugu - non bidaliko diren analizatutako erregistroak.
Lehenik eta behin, konfigura ditzagun INPUT, kontuan izan daitezkeen mota batzuk: fitxategia, tcp eta exe.
Tcp:
input {
tcp {
port => 5555
host => β10.10.1.205β
type => "checkpoint"
mode => "server"
}
}
modua => "zerbitzaria"
Logstash konexioak onartzen ari dela adierazten du.
ataka => 5555
ostalaria => "10.10.1.205"
Konexioak onartzen ditugu 10.10.1.205 (Logstash) IP helbidearen bidez, 5555 ataka - Suebakiaren politikak baimenduta egon behar du ataka.
mota => "kontrol-puntua"
Dokumentua markatzen dugu, oso erosoa sarrerako hainbat konexio badituzu. Ondoren, konexio bakoitzerako zure iragazkia idatz dezakezu if konstrukzio logikoa erabiliz.
File:
input {
file {
path => "/var/log/openvas_report/*"
type => "openvas"
start_position => "beginning"
}
}
Ezarpenen deskribapena:
bidea => "/var/log/openvas_report/*"
Fitxategiak zein direktoriotan irakurri behar diren adierazten dugu.
mota => "openvas"
Gertaera mota.
start_position => "hasiera"
Fitxategi bat aldatzean, fitxategi osoa irakurtzen du; "amaiera" ezartzen baduzu, sistemak fitxategiaren amaieran erregistro berriak agertu arte itxarongo du.
Zuzendaria:
input {
exec {
command => "ls -alh"
interval => 30
}
}
Sarrera hau erabiliz, (soilik!) shell komando bat abiarazten da eta bere irteera erregistro-mezu bihurtzen da.
komandoa => "ls -alh"
Irteera interesatzen zaigun komandoa.
tartea => 30
Aginduak deitzeko tartea segundotan.
Suebakitik erregistroak jasotzeko, iragazki bat erregistratzen dugu tcp edo udp, Logstash-era erregistroak nola bidaltzen diren arabera.
Irteera Logstash konfigurazio fitxategian konfiguratzen dugu arazketa moduan, erregistro-mezua nolakoa den ulertzeko
INPUT konfiguratu ondoren, log-mezua nolakoa izango den eta zer metodo erabili behar diren ulertu behar dugu erregistro-iragazkia (analizatzailea) konfiguratzeko.
Horretarako, emaitza stdout-era ateratzen duen iragazki bat erabiliko dugu jatorrizko mezua ikusteko; momentu honetan konfigurazio fitxategi osoa honela izango da:
input
{
tcp
{
port => 5555
type => "checkpoint"
mode => "server"
host => β10.10.1.205β
}
}
output
{
if [type] == "checkpoint"
{
stdout { codec=> json }
}
}
Exekutatu komandoa egiaztatzeko:
sudo /usr/share/logstash/bin//logstash -f /etc/logstash/conf.d/checkpoint.conf
Emaitza ikusten dugu, argazkia klikagarria da:
Kopiatzen baduzu, itxura hau izango du:
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,
Mezu hauei erreparatuz, ulertzen dugu erregistroek itxura dutela: eremua = balioa edo gakoa = balioa, hau da, kv izeneko iragazkia egokia da. Kasu zehatz bakoitzerako iragazki egokia aukeratzeko, komenigarria litzateke dokumentazio teknikoan haiekin ezagutzea edo lagun bati galdetzea.
Iragazkia konfiguratzea
kv hautatu genuen azken fasean, iragazki honen konfigurazioa jarraian aurkezten da:
filter {
if [type] == "checkpoint"{
kv {
value_split => "="
allow_duplicate_values => false
}
}
}
Eremua eta balioa banatuko dugun ikurra hautatzen dugu - "=". Erregistroan sarrera berdinak baditugu, datu-basean instantzia bakarra gordetzen dugu, bestela balio berdinen array batekin amaituko duzu, hau da, βfoo = some foo=someβ mezua badugu, foo bakarrik idatziko dugu. = batzuk.
Irteera zuzena konfiguratzea ElasticSearch-en
Iragazkia konfiguratuta dagoenean, erregistroak datu-basera igo ditzakezu elastiko bilaketa:
output
{
if [type] == "checkpoint"
{
elasticsearch
{
hosts => ["10.10.1.200:9200"]
index => "checkpoint-%{+YYYY.MM.dd}"
user => "tssolution"
password => "cool"
}
}
}
Dokumentua kontrol-puntu motarekin sinatzen bada, gertaera elasticsearch datu-basean gordetzen dugu, 10.10.1.200 9200 atakan lehenespenez konexioak onartzen dituena. Dokumentu bakoitza indize zehatz batean gordetzen da, kasu honetan "checkpoint-" + uneko ordu-data indizean gordetzen dugu. Indize bakoitzak eremu-multzo jakin bat izan dezake, edo automatikoki sortzen da eremu berri bat mezu batean agertzen denean; eremuen ezarpenak eta haien mota mapetan ikus daitezke.
Autentifikazioa konfiguratuta baduzu (gero ikusiko dugu), indize zehatz batean idazteko kredentzialak zehaztu behar dira, adibide honetan βtssolutionβ da βcoolβ pasahitzarekin. Erabiltzaile-eskubideak bereiz ditzakezu erregistroak indize zehatz batean soilik idazteko eta ez gehiago.
Abiarazi Logstash.
Logstash konfigurazio fitxategia:
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"
}
}
}
Konfigurazio fitxategia zuzena dela egiaztatzen dugu:
/usr/share/logstash/bin//logstash -f checkpoint.conf
Hasi Logstash prozesua:
sudo systemctl hasiera logstash
Prozesua hasi dela egiaztatzen dugu:
sudo systemctl status logstash
Ikus dezagun entxufea piztuta dagoen:
netstat -nat |grep 5555
Kibanako erregistroak egiaztatzea.
Dena martxan jarri ondoren, joan Kibanara - Ezagutu, ziurtatu dena behar bezala konfiguratuta dagoela, argazkia klikagarria dela!
Erregistro guztiak daude eta eremu guztiak eta haien balioak ikus ditzakegu!
Ondorioa
Logstash konfigurazio-fitxategi bat nola idatzi aztertu genuen eta, ondorioz, eremu eta balio guztien analizatzailea lortu genuen. Orain eremu zehatzen bilaketa eta grafikoarekin lan egin dezakegu. Ondoren, ikastaroan Kibana-n bistaratzea aztertuko dugu eta panel sinple bat sortuko dugu. Aipatzekoa da Logstash konfigurazio fitxategia etengabe eguneratu behar dela zenbait egoeratan, adibidez, eremu baten balioa zenbaki batetik hitz batera ordezkatu nahi dugunean. Hurrengo artikuluetan hau etengabe egingo dugu.
Beraz, egon adi (
Iturria: www.habr.com