ProHoster > Blog > Uprava > Elastic under lock: omogočanje varnostnih možnosti gruče Elasticsearch za dostop od znotraj in zunaj
Elastic under lock: omogočanje varnostnih možnosti gruče Elasticsearch za dostop od znotraj in zunaj
Elastic Stack je dobro poznano orodje na trgu sistemov SIEM (pravzaprav ne samo njih). Zbere lahko veliko podatkov različnih velikosti, občutljivih in manj občutljivih. Ni povsem pravilno, če dostop do samih elementov Elastic Stack ni zaščiten. Privzeto se vsi že pripravljeni elementi Elastic (zbiralniki Elasticsearch, Logstash, Kibana in Beats) izvajajo na odprtih protokolih. In v sami Kibani je preverjanje pristnosti onemogočeno. Vse te interakcije je mogoče zavarovati in v tem članku vam bomo povedali, kako to storiti. Zaradi udobja smo pripoved razdelili na 3 pomenske bloke:
Model dostopa do podatkov na podlagi vlog
Varnost podatkov znotraj gruče Elasticsearch
Zaščita podatkov zunaj gruče Elasticsearch
Detajli pod krojem.
Model dostopa do podatkov na podlagi vlog
Če namestite Elasticsearch in ga ne nastavite na noben način, bo dostop do vseh indeksov odprt vsem. No, ali tisti, ki lahko uporabljajo curl. Da bi se temu izognili, ima Elasticsearch vzornik, ki je na voljo od osnovne naročnine (ki je brezplačna). Shematično je videti nekako takole:
Kaj je na sliki
Uporabniki so vsi, ki se lahko prijavijo s svojimi poverilnicami.
Viri so indeksi, dokumenti, polja, uporabniki in druge entitete za shranjevanje (vzornik za nekatere vire je na voljo samo s plačanimi naročninami).
Elasticsearch ima privzeto uporabniki škatle, na katerega so pritrjeni box vloge. Ko omogočite varnostne nastavitve, jih lahko takoj začnete uporabljati.
Če želite omogočiti varnost v nastavitvah Elasticsearch, jo morate dodati v konfiguracijsko datoteko (privzeto je to elasticsearch/config/elasticsearch.yml) nova vrstica:
xpack.security.enabled: true
Ko spremenite konfiguracijsko datoteko, zaženite ali znova zaženite Elasticsearch, da bodo spremembe začele veljati. Naslednji korak je dodeljevanje gesel uporabnikom predala. Naredimo to interaktivno s spodnjim ukazom:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana]:
Reenter password for [kibana]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
Preverjamo:
[elastic@node1 ~]$ curl -u elastic 'node1:9200/_cat/nodes?pretty'
Enter host password for user 'elastic':
192.168.0.2 23 46 14 0.28 0.32 0.18 dim * node1
Lahko se potrepljate po rami – nastavitve na strani Elasticsearch so končane. Zdaj je čas, da konfigurirate Kibano. Če ga zaženete zdaj, se bodo pojavile napake, zato je pomembno, da ustvarite shrambo ključev. To se naredi z dvema ukazoma (uporabnik kibana in geslo, vneseno v koraku ustvarjanja gesla v Elasticsearch):
Če je vse pravilno, bo Kibana začela zahtevati prijavo in geslo. Osnovna naročnina vključuje vzor, ki temelji na notranjih uporabnikih. Začenši z Goldom, lahko povežete zunanje sisteme za preverjanje pristnosti - LDAP, PKI, Active Directory in sisteme enotne prijave.
Prav tako je mogoče omejiti pravice dostopa do objektov znotraj Elasticsearch. Če želite storiti enako za dokumente ali polja, boste potrebovali plačano naročnino (to razkošje se začne s platinasto stopnjo). Te nastavitve so na voljo v vmesniku Kibana ali prek Varnostni API. Preverite lahko prek že poznanega menija Dev Tools:
Ko se Elasticsearch izvaja v gruči (kar je običajno), postanejo varnostne nastavitve znotraj gruče pomembne. Za varno komunikacijo med vozlišči Elasticsearch uporablja protokol TLS. Za vzpostavitev varne interakcije med njimi potrebujete certifikat. Generiramo potrdilo in zasebni ključ v formatu PEM:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem
Po izvedbi zgornjega ukaza v imeniku /../elasticsearch pojavil se bo arhiv elastic-stack-ca.zip. V njem boste našli potrdilo in zasebni ključ s končnicami crt и ključ oz. Priporočljivo je, da jih postavite na skupni vir, ki mora biti dostopen iz vseh vozlišč v gruči.
Vsako vozlišče zdaj potrebuje lastna potrdila in zasebne ključe, ki temeljijo na tistih v skupnem imeniku. Pri izvajanju ukaza boste pozvani, da nastavite geslo. Dodate lahko dodatni možnosti -ip in -dns za popolno preverjanje medsebojno delujočih vozlišč.
Kot rezultat izvedbe ukaza prejmemo potrdilo in zasebni ključ v formatu PKCS#12, zaščiten z geslom. Vse kar ostane je, da premaknete ustvarjeno datoteko p12 v konfiguracijski imenik:
Obstaja še ena varnostna možnost - filtriranje naslovov IP (na voljo v naročninah od nivoja Gold). Omogoča ustvarjanje belih seznamov naslovov IP, s katerih lahko dostopate do vozlišč.
Zaščita podatkov zunaj gruče Elasticsearch
Zunaj grozda pomeni povezovanje zunanjih orodij: Kibana, Logstash, Beats ali drugih zunanjih odjemalcev.
Če želite konfigurirati podporo za https (namesto za http), dodajte nove vrstice v elasticsearch.yml:
Po dodajanju ključev so vozlišča Elasticsearch pripravljena za povezavo prek https. Zdaj jih je mogoče zagnati.
Naslednji korak je ustvariti ključ za povezavo Kibane in ga dodati v konfiguracijo. Na podlagi potrdila, ki se že nahaja v skupnem imeniku, bomo generirali potrdilo v formatu PEM (PKCS#12 Kibana, Logstash in Beats še ne podpirajo):
Ključi so tam, tako da ostane samo še spremeniti konfiguracijo Kibane, da jih začne uporabljati. V konfiguracijski datoteki kibana.yml spremenite http v https in dodajte vrstice z nastavitvami povezave SSL. Zadnje tri vrstice konfigurirajo varno komunikacijo med brskalnikom uporabnika in Kibano.
S tem so nastavitve zaključene in dostop do podatkov v gruči Elasticsearch šifriran.
Če imate vprašanja o zmožnostih Elastic Stack pri brezplačnih ali plačljivih naročninah, nadzornih nalogah ali ustvarjanju sistema SIEM, pustite zahtevo na obrazec za povratne informacije na naši spletni strani.