ProHoster > Dienoraštis > Administravimas > Elastingas po užraktu ir raktu: įgalinamos Elasticsearch klasterio saugos parinktys, leidžiančios pasiekti prieigą iš vidaus ir išorės
Elastingas po užraktu ir raktu: įgalinamos Elasticsearch klasterio saugos parinktys, leidžiančios pasiekti prieigą iš vidaus ir išorės
Elastic Stack yra gerai žinomas įrankis SIEM sistemų rinkoje (tiesą sakant, ne tik jų). Jis gali rinkti daug įvairaus dydžio duomenų, tiek jautrių, tiek nelabai jautrių. Tai nėra visiškai teisinga, jei prieiga prie pačių Elastic Stack elementų nėra apsaugota. Pagal numatytuosius nustatymus visi „Elastic“ elementai („Elasticsearch“, „Logstash“, „Kibana“ ir „Beats“ kolekcionieriai) veikia atvirais protokolais. O pačioje Kibanoje autentifikavimas išjungtas. Visos šios sąveikos gali būti apsaugotos ir šiame straipsnyje mes jums pasakysime, kaip tai padaryti. Patogumui pasakojimą suskirstėme į 3 semantinius blokus:
Vaidmenimis pagrįstas duomenų prieigos modelis
Duomenų saugumas Elasticsearch klasteryje
Duomenų apsauga už Elasticsearch klasterio ribų
Detalės po pjūviu.
Vaidmenimis pagrįstas duomenų prieigos modelis
Jei įdiegsite „Elasticsearch“ ir jokiu būdu jo nederinsite, prieiga prie visų indeksų bus atvira visiems. Na, arba tie, kurie gali naudoti garbanas. Kad to išvengtų, Elasticsearch turi pavyzdį, kurį galima įsigyti pradedant nuo pagrindinės prenumeratos (kuri yra nemokama). Schematiškai tai atrodo maždaug taip:
Kas nuotraukoje
Vartotojai yra visi, kurie gali prisijungti naudodami savo kredencialus.
Ištekliai yra indeksai, dokumentai, laukai, vartotojai ir kiti saugojimo objektai (kai kurių išteklių pavyzdys pasiekiamas tik su mokama prenumerata).
Pagal numatytuosius nustatymus Elasticsearch turi dėžutės naudotojai, prie kurių jie yra pritvirtinti dėžutės vaidmenys. Įjungę saugos nustatymus, galite nedelsdami pradėti juos naudoti.
Norėdami įjungti apsaugą Elasticsearch nustatymuose, turite įtraukti jį į konfigūracijos failą (pagal numatytuosius nustatymus tai yra elasticsearch/config/elasticsearch.yml) nauja linija:
xpack.security.enabled: true
Pakeitę konfigūracijos failą, paleiskite arba iš naujo paleiskite Elasticsearch, kad pakeitimai įsigaliotų. Kitas žingsnis yra slaptažodžių priskyrimas dėžutės vartotojams. Padarykime tai interaktyviai naudodami toliau pateiktą komandą:
[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]
Mes patikriname:
[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
Galite paglostyti sau nugarą – Elasticsearch pusės nustatymai baigti. Dabar atėjo laikas konfigūruoti „Kibana“. Jei paleisite dabar, atsiras klaidų, todėl svarbu sukurti raktų saugyklą. Tai atliekama dviem komandomis (user kibana ir slaptažodis, įvestas slaptažodžio kūrimo žingsnyje Elasticsearch):
Jei viskas teisinga, Kibana pradės prašyti prisijungimo vardo ir slaptažodžio. Į pagrindinę prenumeratą įtrauktas pavyzdys, pagrįstas vidiniais vartotojais. Pradedant nuo Gold, galite prijungti išorines autentifikavimo sistemas – LDAP, PKI, Active Directory ir Single sign-on sistemas.
Prieigos prie Elasticsearch objektų teisės taip pat gali būti ribojamos. Tačiau norint tą patį padaryti su dokumentais ar laukais, jums reikės mokamos prenumeratos (ši prabanga prasideda nuo platinos lygio). Šie nustatymai pasiekiami Kibana sąsajoje arba per Saugos API. Galite patikrinti per jau pažįstamą kūrėjo įrankių meniu:
Kai Elasticsearch veikia klasteryje (tai yra įprasta), klasterio saugos nustatymai tampa svarbūs. Kad užtikrintų saugų ryšį tarp mazgų, Elasticsearch naudoja TLS protokolą. Norint nustatyti saugią sąveiką tarp jų, jums reikia sertifikato. Sugeneruojame sertifikatą ir privatųjį raktą PEM formatu:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem
Įvykdę aukščiau pateiktą komandą, kataloge /../elasticsearch pasirodys archyvas elastinga-stack-ca.zip. Jo viduje rasite sertifikatą ir privatų raktą su plėtiniais krt и raktas atitinkamai. Patartina juos sudėti į bendrą išteklių, kuris turėtų būti pasiekiamas iš visų klasterio mazgų.
Kiekvienam mazgui dabar reikia savo sertifikatų ir privačių raktų, pagrįstų bendrame kataloge esančiais sertifikatais. Vykdydami komandą būsite paprašyti nustatyti slaptažodį. Norėdami visiškai patikrinti sąveikaujančius mazgus, galite pridėti papildomų parinkčių -ip ir -dn.
Vykdydami komandą gausime sertifikatą ir privatų raktą PKCS#12 formatu, apsaugotą slaptažodžiu. Belieka perkelti sugeneruotą failą p12 į konfigūracijos katalogą:
Yra dar vienas saugumo variantas – IP adresų filtravimas (pasiekiamas prenumeratose nuo auksinio lygio). Leidžia kurti baltuosius IP adresų sąrašus, iš kurių jums leidžiama pasiekti mazgus.
Duomenų apsauga už Elasticsearch klasterio ribų
Už klasterio ribų reiškia išorinių įrankių prijungimą: Kibana, Logstash, Beats ar kitus išorinius klientus.
Norėdami sukonfigūruoti https palaikymą (vietoj http), į elasticsearch.yml pridėkite naujų eilučių:
Pridėjus raktus, Elasticsearch mazgai yra pasirengę prisijungti per https. Dabar juos galima paleisti.
Kitas žingsnis yra sukurti raktą, skirtą Kibana prijungti, ir pridėti jį prie konfigūracijos. Remdamiesi sertifikatu, kuris jau yra bendrame kataloge, sugeneruosime sertifikatą PEM formatu (PKCS#12 Kibana, Logstash ir Beats dar nepalaiko):
Raktai yra, tad belieka pakeisti Kibana konfigūraciją, kad ji pradėtų juos naudoti. Konfigūracijos faile kibana.yml pakeiskite http į https ir pridėkite eilutes su SSL ryšio parametrais. Paskutinės trys eilutės konfigūruoja saugų ryšį tarp vartotojo naršyklės ir „Kibana“.
Taigi nustatymai baigti ir prieiga prie duomenų Elasticsearch klasteryje yra užšifruota.
Jei turite klausimų apie Elastic Stack galimybes, susijusias su nemokama ar mokama prenumerata, stebėjimo užduotimis ar kuriant SIEM sistemą, palikite užklausą atsiliepimo forma mūsų svetainėje.
Daugiau mūsų straipsnių apie Elastic Stack on Habré: