ProHoster > Blog > uprava > Elastic under lock: omogućavanje sigurnosnih opcija klastera Elasticsearch za pristup iznutra i izvana
Elastic under lock: omogućavanje sigurnosnih opcija klastera Elasticsearch za pristup iznutra i izvana
Elastic Stack je dobro poznat alat na tržištu SIEM sustava (zapravo, ne samo njih). Može prikupiti mnogo podataka različitih veličina, osjetljivih i manje osjetljivih. Nije sasvim ispravno ako pristup samim elementima Elastic Stack nije zaštićen. Prema zadanim postavkama, svi Elastic elementi izvan okvira (Elasticsearch, Logstash, Kibana i Beats kolektori) rade na otvorenim protokolima. A u samoj Kibani autentifikacija je onemogućena. Sve ove interakcije mogu se osigurati, au ovom članku ćemo vam reći kako to učiniti. Radi praktičnosti, podijelili smo narativ u 3 semantička bloka:
Model pristupa podacima temeljen na ulogama
Sigurnost podataka unutar Elasticsearch klastera
Osiguranje podataka izvan Elasticsearch klastera
Detalji ispod kroja.
Model pristupa podacima temeljen na ulogama
Ako instalirate Elasticsearch i ne podešavate ga ni na koji način, pristup svim indeksima će biti otvoren za sve. Pa, ili oni koji mogu koristiti curl. Kako bi se to izbjeglo, Elasticsearch ima uzor koji je dostupan počevši od Basic pretplate (koja je besplatna). Shematski to izgleda otprilike ovako:
Što je na slici
Korisnici su svi koji se mogu prijaviti pomoću svojih vjerodajnica.
Resursi su indeksi, dokumenti, polja, korisnici i drugi entiteti za pohranu (uzor za neke resurse dostupan je samo uz plaćene pretplate).
Prema zadanim postavkama Elasticsearch ima korisnici kutija, na koji su priloženi okvir uloge. Nakon što omogućite sigurnosne postavke, možete ih odmah početi koristiti.
Da biste omogućili sigurnost u postavkama Elasticsearcha, morate ga dodati u konfiguracijsku datoteku (prema zadanim postavkama to je elasticsearch/config/elasticsearch.yml) nova linija:
xpack.security.enabled: true
Nakon promjene konfiguracijske datoteke, pokrenite ili ponovno pokrenite Elasticsearch kako bi promjene stupile na snagu. Sljedeći korak je dodjeljivanje lozinki korisnicima box-a. Učinimo to interaktivno pomoću donje naredbe:
[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]
Provjeravamo:
[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
Možete se potapšati po ramenu – postavke na Elasticsearch strani su završene. Sada je vrijeme da konfigurirate Kibanu. Ako ga sada pokrenete, pojavit će se pogreške, stoga je važno izraditi pohranu ključeva. To se radi pomoću dvije naredbe (korisnik kibana i lozinka unesena u koraku kreiranja lozinke u Elasticsearch):
Ako je sve ispravno, Kibana će početi tražiti prijavu i lozinku. Osnovna pretplata uključuje uzor temeljen na internim korisnicima. Počevši od Golda, možete povezati vanjske sustave provjere autentičnosti - LDAP, PKI, Active Directory i sustave jedinstvene prijave.
Prava pristupa objektima unutar Elasticsearcha također mogu biti ograničena. Međutim, da biste učinili isto za dokumente ili polja, trebat će vam plaćena pretplata (ovaj luksuz počinje s Platinum razinom). Ove postavke dostupne su u Kibana sučelju ili putem Sigurnosni API. Možete provjeriti kroz već poznati izbornik Dev Tools:
Kada se Elasticsearch izvodi u klasteru (što je uobičajeno), sigurnosne postavke unutar klastera postaju važne. Za sigurnu komunikaciju između čvorova Elasticsearch koristi TLS protokol. Za postavljanje sigurne interakcije između njih potreban vam je certifikat. Generiramo certifikat i privatni ključ u PEM formatu:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem
Nakon izvršenja gornje naredbe, u direktoriju /../elasticsearch pojavit će se arhiva elastic-stack-ca.zip. Unutar njega pronaći ćete certifikat i privatni ključ s nastavcima crt и ključ odnosno. Preporučljivo je staviti ih na zajednički resurs, koji bi trebao biti dostupan sa svih čvorova u klasteru.
Svaki čvor sada treba vlastite certifikate i privatne ključeve temeljene na onima u zajedničkom direktoriju. Prilikom izvršavanja naredbe od vas će se tražiti da postavite lozinku. Možete dodati dodatne opcije -ip i -dns za potpunu provjeru čvorova u interakciji.
Kao rezultat izvršenja naredbe dobit ćemo certifikat i privatni ključ u PKCS#12 formatu, zaštićen lozinkom. Sve što preostaje je premjestiti generiranu datoteku p12 u konfiguracijski direktorij:
Postoji još jedna sigurnosna opcija - filtriranje IP adresa (dostupno u pretplatama od zlatne razine). Omogućuje vam stvaranje bijelih popisa IP adresa s kojih vam je dopušten pristup čvorovima.
Osiguranje podataka izvan Elasticsearch klastera
Izvan klastera znači povezivanje vanjskih alata: Kibana, Logstash, Beats ili drugih vanjskih klijenata.
Za konfiguriranje podrške za https (umjesto http), dodajte nove retke u elasticsearch.yml:
Nakon dodavanja ključeva, čvorovi Elasticsearch spremni su za povezivanje putem https-a. Sada se mogu pokrenuti.
Sljedeći korak je stvoriti ključ za povezivanje Kibane i dodati ga u konfiguraciju. Na temelju certifikata koji se već nalazi u dijeljenom direktoriju, generirat ćemo certifikat u PEM formatu (PKCS#12 Kibana, Logstash i Beats još ne podržavaju):
Ključevi su tu, preostaje samo promijeniti konfiguraciju Kibane da ih počne koristiti. U konfiguracijskoj datoteci kibana.yml promijenite http u https i dodajte retke s postavkama SSL veze. Posljednja tri retka konfiguriraju sigurnu komunikaciju između preglednika korisnika i Kibane.
Time su postavke završene i pristup podacima u klasteru Elasticsearch je kriptiran.
Ako imate pitanja o mogućnostima Elastic Stacka na besplatnim ili plaćenim pretplatama, nadzornim zadacima ili stvaranju SIEM sustava, ostavite zahtjev na obrazac za povratne informacije na našoj web stranici.