ProHoster > Blog > Administrácia > Elastic under lock and key: aktivácia možností zabezpečenia klastra Elasticsearch pre prístup zvnútra aj zvonku
Elastic under lock and key: aktivácia možností zabezpečenia klastra Elasticsearch pre prístup zvnútra aj zvonku
Elastic Stack je na trhu SIEM systémov (vlastne nielen ich) známy nástroj. Dokáže zhromaždiť množstvo údajov rôznej veľkosti, citlivých aj málo citlivých. Nie je úplne správne, ak prístup k samotným prvkom Elastic Stack nie je chránený. Všetky prednastavené prvky Elastic (Elasticsearch, Logstash, Kibana a zberatelia Beats) štandardne bežia na otvorených protokoloch. A v samotnej Kibane je autentifikácia zakázaná. Všetky tieto interakcie je možné zabezpečiť a v tomto článku vám povieme, ako na to. Pre pohodlie sme rozdelili príbeh do 3 sémantických blokov:
Model prístupu k údajom založený na rolách
Bezpečnosť údajov v rámci klastra Elasticsearch
Zabezpečenie údajov mimo klastra Elasticsearch
Detaily pod strihom.
Model prístupu k údajom založený na rolách
Ak si Elasticsearch nainštalujete a nijako ho nevyladíte, prístup ku všetkým indexom bude otvorený pre všetkých. No, alebo tí, ktorí môžu použiť curl. Aby sa tomu zabránilo, Elasticsearch má model, ktorý je k dispozícii od základného predplatného (ktoré je bezplatné). Schematicky to vyzerá asi takto:
Čo je na obrázku
Používatelia sú všetci, ktorí sa môžu prihlásiť pomocou svojich prihlasovacích údajov.
Prostriedky sú indexy, dokumenty, polia, používatelia a ďalšie entity úložiska (model úlohy pre niektoré zdroje je k dispozícii len s platenými odbermi).
V predvolenom nastavení má Elasticsearch používateľov boxov, ku ktorému sú pripojené krabicové role. Keď povolíte nastavenia zabezpečenia, môžete ich okamžite začať používať.
Ak chcete povoliť zabezpečenie v nastaveniach Elasticsearch, musíte ho pridať do konfiguračného súboru (v predvolenom nastavení je to elasticsearch/config/elasticsearch.yml) Nový riadok:
xpack.security.enabled: true
Po zmene konfiguračného súboru spustite alebo reštartujte Elasticsearch, aby sa zmeny prejavili. Ďalším krokom je prideľovanie hesiel používateľom schránky. Urobme to interaktívne pomocou príkazu nižšie:
[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]
skontrolujte:
[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
Môžete sa potľapkať po pleci – nastavenia na strane Elasticsearch sú dokončené. Teraz je čas nakonfigurovať Kibana. Ak ho teraz spustíte, objavia sa chyby, preto je dôležité vytvoriť úložisko kľúčov. To sa vykonáva pomocou dvoch príkazov (user kibana a heslo zadané v kroku vytvorenia hesla v Elasticsearch):
Ak je všetko správne, Kibana začne žiadať prihlasovacie meno a heslo. Základné predplatné zahŕňa model založený na interných používateľoch. Počnúc Gold môžete pripojiť externé autentifikačné systémy - LDAP, PKI, Active Directory a Single sign-on systémy.
Prístupové práva k objektom vo vnútri Elasticsearch môžu byť tiež obmedzené. Aby ste však urobili to isté pre dokumenty alebo polia, budete potrebovať platené predplatné (tento luxus začína na úrovni Platinum). Tieto nastavenia sú dostupné v rozhraní Kibana alebo cez Security API. Môžete to skontrolovať prostredníctvom už známej ponuky Dev Tools:
Keď Elasticsearch beží v klastri (čo je bežné), stávajú sa dôležité nastavenia zabezpečenia v rámci klastra. Pre bezpečnú komunikáciu medzi uzlami používa Elasticsearch protokol TLS. Na nastavenie bezpečnej interakcie medzi nimi potrebujete certifikát. Vygenerujeme certifikát a súkromný kľúč vo formáte PEM:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem
Po vykonaní vyššie uvedeného príkazu v adresári /../elasticsearch objaví sa archív elastický-stack-ca.zips. V jeho vnútri nájdete certifikát a súkromný kľúč s rozšíreniami crt и kľúč resp. Je vhodné umiestniť ich na zdieľaný prostriedok, ktorý by mal byť dostupný zo všetkých uzlov v klastri.
Každý uzol teraz potrebuje svoje vlastné certifikáty a súkromné kľúče na základe tých v zdieľanom adresári. Pri vykonávaní príkazu sa zobrazí výzva na nastavenie hesla. Môžete pridať ďalšie voľby -ip a -dns na kompletné overenie interagujúcich uzlov.
V dôsledku vykonania príkazu dostaneme certifikát a súkromný kľúč vo formáte PKCS#12, chránený heslom. Zostáva len presunúť vygenerovaný súbor p12 do konfiguračného adresára:
Existuje ďalšia možnosť zabezpečenia - filtrovanie IP adries (dostupné v predplatných od úrovne Gold). Umožňuje vám vytvárať biele zoznamy adries IP, z ktorých máte povolený prístup k uzlom.
Zabezpečenie údajov mimo klastra Elasticsearch
Mimo klastra znamená pripojenie externých nástrojov: Kibana, Logstash, Beats alebo iných externých klientov.
Ak chcete nakonfigurovať podporu pre https (namiesto http), pridajte nové riadky do elasticsearch.yml:
Po pridaní kľúčov sú uzly Elasticsearch pripravené na pripojenie cez https. Teraz môžu byť spustené.
Ďalším krokom je vytvorenie kľúča na pripojenie Kibany a jeho pridanie do konfigurácie. Na základe certifikátu, ktorý sa už nachádza v zdieľanom adresári, vygenerujeme certifikát vo formáte PEM (PKCS#12 Kibana, Logstash a Beats zatiaľ nepodporujú):
Kľúče tam sú, takže ostáva už len zmeniť konfiguráciu Kibany tak, aby ich začala používať. V konfiguračnom súbore kibana.yml zmeňte http na https a pridajte riadky s nastaveniami pripojenia SSL. Posledné tri riadky konfigurujú zabezpečenú komunikáciu medzi prehliadačom používateľa a Kibanou.
Tým sú nastavenia dokončené a prístup k údajom v klastri Elasticsearch je zašifrovaný.
Ak máte otázky týkajúce sa možností Elastic Stack na bezplatných alebo platených odberoch, monitorovacích úlohách alebo vytváraní systému SIEM, zanechajte žiadosť na forma spätnej väzby na našej webovej stránke.