ProHoster > Blog > Bestjoer > Elastysk ûnder slot en kaai: ynskeakelje Elasticsearch-klusterbefeiligingsopsjes foar tagong fan binnen en bûten
Elastysk ûnder slot en kaai: ynskeakelje Elasticsearch-klusterbefeiligingsopsjes foar tagong fan binnen en bûten
Elastic Stack is in bekend ark yn 'e SIEM-systeemmerk (eigentlik net allinich). It kin in protte gegevens fan ferskillende grutte sammelje, sawol gefoelich as net heul gefoelich. It is net hielendal korrekt as tagong ta de Elastic Stack eleminten sels is net beskerme. Standert rinne alle Elastic out-of-the-box eleminten (Elasticsearch, Logstash, Kibana, en Beats samlers) op iepen protokollen. En yn Kibana sels is autentikaasje útskeakele. Al dizze ynteraksjes kinne wurde befeilige en yn dit artikel sille wy jo fertelle hoe't jo dit dwaan. Foar gemak hawwe wy it ferhaal ferdield yn 3 semantyske blokken:
Rol-basearre gegevens tagong model
Gegevensfeiligens binnen in Elasticsearch-kluster
Gegevens befeiligje bûten in Elasticsearch-kluster
Details ûnder de besuniging.
Rol-basearre gegevens tagong model
As jo Elasticsearch ynstallearje en it op gjin inkelde manier ôfstimme, sil tagong ta alle yndeksen foar elkenien iepen wêze. No, of dyjingen dy't krul kinne brûke. Om dit te foarkommen, hat Elasticsearch in rolmodel dat beskikber is te begjinnen mei in Basic-abonnemint (dat is fergees). Skematysk sjocht it der sa út:
Wat stiet op de foto
Brûkers binne elkenien dy't ynlogge kinne mei har referinsjes.
Boarnen binne yndeksen, dokuminten, fjilden, brûkers en oare opslach-entiteiten (it rolmodel foar guon boarnen is allinich beskikber mei betelle abonneminten).
Standert hat Elasticsearch box brûkers, dêr't se oan ferbûn binne box rollen. Sadree't jo befeiligingsynstellingen ynskeakelje, kinne jo se fuortendaliks begjinne te brûken.
Om feiligens yn te skeakeljen yn Elasticsearch-ynstellingen, moatte jo it tafoegje oan it konfiguraasjetriem (standert is dit elasticsearch/config/elasticsearch.yml) nije rigel:
xpack.security.enabled: true
Nei it feroarjen fan it konfiguraasjetriem, starte of opnij Elasticsearch foar de wizigingen om effekt te nimmen. De folgjende stap is it tawizen fan wachtwurden oan doaze brûkers. Litte wy dit ynteraktyf dwaan mei it kommando hjirûnder:
[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]
Wy kontrolearje:
[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
Jo kinne josels op 'e rêch klopje - de ynstellingen oan' e Elasticsearch-kant binne foltôge. No is it tiid om Kibana te konfigurearjen. As jo it no útfiere, sille flaters ferskine, dus it is wichtich om in kaaiwinkel te meitsjen. Dit wurdt dien yn twa kommando's (brûker kibana en it wachtwurd ynfierd by de stap foar oanmeitsjen fan wachtwurd yn Elasticsearch):
As alles goed is, sil Kibana begjinne te freegjen om in oanmelding en wachtwurd. It Basic-abonnemint omfettet in rolmodel basearre op ynterne brûkers. Begjinnend mei Goud kinne jo eksterne autentikaasjesystemen ferbine - LDAP, PKI, Active Directory en Single sign-on systemen.
Tagongsrjochten foar objekten binnen Elasticsearch kinne ek beheind wurde. Om lykwols itselde te dwaan foar dokuminten as fjilden, sille jo in betelle abonnemint nedich hawwe (dizze lúkse begjint mei it Platina-nivo). Dizze ynstellings binne beskikber yn de Kibana ynterface of fia Feiligens API. Jo kinne kontrolearje fia it al bekende menu Dev Tools:
As Elasticsearch yn in kluster rint (wat gewoan is), wurde feiligensynstellingen binnen it kluster wichtich. Foar feilige kommunikaasje tusken knopen brûkt Elasticsearch it TLS-protokol. Om feilige ynteraksje tusken har yn te stellen, hawwe jo in sertifikaat nedich. Wy generearje in sertifikaat en privee kaai yn PEM-formaat:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem
Nei it útfieren fan it kommando hjirboppe, yn 'e map /../elasticsearch argyf sil ferskine elastic-stack-ca.zip. Dêryn fine jo in sertifikaat en in privee kaai mei tafoegings crt и key respektivelik. It is oan te rieden om se op in dielde boarne te setten, dy't tagonklik wêze moat fan alle knooppunten yn it kluster.
Elke node hat no syn eigen sertifikaten en privee kaaien nedich basearre op dy yn 'e dielde map. By it útfieren fan it kommando wurde jo frege om in wachtwurd yn te stellen. Jo kinne ekstra opsjes tafoegje -ip en -dns foar folsleine ferifikaasje fan ynteraktive knopen.
As gefolch fan it útfieren fan it kommando, wy krije in sertifikaat en in privee kaai yn PKCS # 12 opmaak, beskerme troch in wachtwurd. Alles wat oerbliuwt is it oanmakke bestân te ferpleatsen p12 nei de konfiguraasjemap:
D'r is in oare feiligensopsje - IP-adresfiltering (beskikber yn abonneminten fan Gold-nivo). Hjirmei kinne jo wite listen meitsje fan IP-adressen wêrfan jo tagong krije ta knooppunten.
Gegevens befeiligje bûten in Elasticsearch-kluster
Bûten it kluster betsjut it ferbinen fan eksterne ark: Kibana, Logstash, Beats of oare eksterne kliïnten.
Om stipe foar https (ynstee fan http) te konfigurearjen, foegje nije rigels ta oan elasticsearch.yml:
Nei it tafoegjen fan de kaaien binne Elasticsearch-knooppunten klear om te ferbinen fia https. No kinne se lansearre wurde.
De folgjende stap is om in kaai te meitsjen om Kibana te ferbinen en it ta te foegjen oan 'e konfiguraasje. Op grûn fan it sertifikaat dat al yn 'e dielde map leit, sille wy in sertifikaat generearje yn PEM-formaat (PKCS#12 Kibana, Logstash en Beats stypje noch net):
De kaaien binne der, dus alles wat oerbliuwt is de Kibana-konfiguraasje te feroarjen sadat it se begjint te brûken. Yn de kibana.yml konfiguraasje triem, feroarje http nei https en heakje rigels mei SSL ferbining ynstellings. De lêste trije rigels konfigurearje feilige kommunikaasje tusken de browser fan de brûker en Kibana.
Sa binne de ynstellingen foltôge en tagong ta gegevens yn it Elasticsearch-kluster is fersifere.
As jo fragen hawwe oer de mooglikheden fan Elastic Stack oer fergese of betelle abonneminten, tafersjochtaken of it meitsjen fan in SIEM-systeem, lit dan in fersyk nei feedback formulier op ús webside.