ProHoster > Blog > podávání > Elastic Locked Up: Povolení možností zabezpečení clusteru Elasticsearch pro vnitřní a vnější přístup
Elastic Locked Up: Povolení možností zabezpečení clusteru Elasticsearch pro vnitřní a vnější přístup
Elastic Stack je na trhu SIEM systémů (vlastně nejen jich) známý nástroj. Dokáže shromáždit spoustu různě velkých dat, citlivých i nepříliš citlivých. Není zcela správné, pokud přístup k samotným prvkům Elastic Stack není chráněn. Ve výchozím nastavení všechny prvky v krabici Elastic (sběratelé Elasticsearch, Logstash, Kibana a Beats) fungují na otevřených protokolech. A v samotné Kibaně je ověřování zakázáno. Všechny tyto interakce lze zabezpečit a v tomto článku vám prozradíme, jak na to. Pro větší pohodlí byl příběh rozdělen do 3 sémantických bloků:
Model přístupu k datům
Zabezpečení dat uvnitř clusteru Elasticsearch
Zabezpečení dat mimo cluster Elasticsearch
Detaily pod střihem.
Model přístupu k datům
Pokud si Elasticsearch nainstalujete a nijak ho nevyladíte, přístup ke všem indexům bude otevřený všem. No, nebo ti, kteří mohou používat curl. Aby se tomu zabránilo, Elasticsearch má model role, který je k dispozici počínaje předplatným základní úrovně (které je zdarma). Schematicky to vypadá takto:
Co je na obrázku
Uživatelé jsou všichni, kteří se mohou přihlásit pomocí přihlašovacích údajů.
Zdroje jsou indexy, dokumenty, pole, uživatelé a další entity úložiště (model role pro některé zdroje je k dispozici pouze u placených předplatných).
Elasticsearch má ve výchozím nastavení uživatelé v krabicíchke kterým jsou připojeny krabicové role. Po povolení nastavení zabezpečení je můžete okamžitě začít používat.
Chcete-li povolit zabezpečení v nastavení Elasticsearch, musíte jej přidat do konfiguračního souboru (ve výchozím nastavení je to elasticsearch/config/elasticsearch.yml) nový řádek:
xpack.security.enabled: true
Po změně konfiguračního souboru spusťte nebo restartujte Elasticsearch, aby se změny projevily. Dalším krokem je přiřazení hesel uživatelům v krabicích. Udělejme to interaktivně pomocí příkazu níže:
[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]
Zkontrolujeme:
[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 se plácnout po rameni – nastavení na straně Elasticsearch je hotovo. Nyní je řada na nastavení Kibany. Pokud jej nyní spustíte, dojde k chybám, takže je důležité vytvořit úložiště klíčů. To se provádí dvěma příkazy (user kibana a heslo zadané v kroku vytváření hesel v Elasticsearch):
Pokud je vše v pořádku, Kibana začne žádat o uživatelské jméno a heslo. V základním předplatném je k dispozici model role založený na interních uživatelích. Počínaje Gold můžete připojit externí autentizační systémy - LDAP, PKI, Active Directory a systémy Single sign-on.
Přístupová práva k objektům uvnitř Elasticsearch lze také omezit. Pravda, abyste totéž udělali pro dokumenty nebo pole, budete potřebovat placené předplatné (tento luxus začíná na úrovni Platinum). Tato nastavení jsou dostupná v rozhraní Kibana nebo přes Security API. Můžete zkontrolovat prostřednictvím již známé nabídky Dev Tools:
Když Elasticsearch běží v clusteru (což je běžné), stávají se důležitá nastavení zabezpečení v rámci clusteru. Pro bezpečnou komunikaci mezi uzly používá Elasticsearch protokol TLS. K nastavení zabezpečené komunikace mezi nimi potřebujete certifikát. Vygenerujeme certifikát a soukromý klíč ve formátu PEM:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem
Po provedení výše uvedeného příkazu v adresáři /../elasticsearch objeví se archiv elastický-stack-ca.zip. Uvnitř najdete certifikát a soukromý klíč s příponami crt и klíč respektive. Je žádoucí je rozložit na sdílený prostředek, ke kterému by měl být přístup ze všech uzlů clusteru.
Každý uzel nyní potřebuje své vlastní certifikáty a soukromé klíče založené na těch ve sdíleném adresáři. Po provedení příkazu budete požádáni o nastavení hesla. Pro plné ověření komunikujících uzlů lze přidat další volby -ip a -dns.
V důsledku provedení příkazu obdržíme certifikát a soukromý klíč ve formátu PKCS # 12, chráněný heslem. Zbývá přesunout vygenerovaný soubor p12 do konfiguračního adresáře:
Existuje další možnost zabezpečení - filtrování IP adres (dostupné v předplatném od úrovně Gold). Umožňuje vytvářet bílé seznamy IP adres, ze kterých mají uzly povolen přístup.
Zabezpečení dat mimo cluster Elasticsearch
Mimo cluster znamená připojení externích nástrojů: Kibana, Logstash, Beats nebo jiných externích klientů.
Chcete-li nakonfigurovat podporu pro https (místo http), přidejte nové řádky do elasticsearch.yml:
Po přidání klíčů jsou uzly Elasticsearch připraveny k připojení přes https. Nyní mohou být spuštěny.
Dalším krokem je vytvoření klíče připojení Kibana a jeho přidání do konfigurace. Na základě certifikátu, který se již nachází ve sdíleném adresáři, vygenerujeme certifikát ve formátu PEM (PKCS # 12 Kibana, Logstash a Beats zatím nepodporují):
Klíče tam jsou, takže zbývá změnit konfiguraci Kibana tak, aby je začala používat. V konfiguračním souboru kibana.yml změňte http na https a přidejte řádky s nastavením připojení SSL. Poslední tři řádky nastavují bezpečnou interakci mezi prohlížečem uživatele a Kibanou.
Tím se provede nastavení a přístup k datům v clusteru Elasticsearch je zašifrován.
Máte-li dotazy ohledně funkcí Elastic Stack pro bezplatné nebo placené předplatné, úkoly pro monitorování nebo vytváření systému SIEM, zanechte požadavek na formulář zpětné vazby na našich webových stránkách.