
Elastic Stack on tuntud tööriist SIEM-sĂŒsteemide turul (tegelikult mitte ainult nende jaoks). See suudab koguda palju erinevaid andmeid, sealhulgas tundlikke ja vĂ€hem tundlikke. Pole tĂ€iesti Ă”ige, kui Elastic Stacki elementide juurdepÀÀs ei oleks kaitstud. Vaikimisi töötavad kĂ”ik Elastici (Elasticsearch, Logstash, Kibana ja Beats kollektorid) komponendid avatud protokollide kaudu. Ja Kibanas on autentimine vĂ€lja lĂŒlitatud. KĂ”iki neid interaktsioone saab turvata ja selles artiklis rÀÀgime, kuidas seda teha. Mugavuse huvides oleme loo jaganud kolmeks sisuliseks osaks:
- Andmete juurdepÀÀsu rollimudel
- Andmete turvalisus Elasticsearch klastris
- Andmete turvalisus Elasticsearch klastrist vÀljaspool
Ăksikasjad allpool.
Andmete juurdepÀÀsu rollimudel
Kui installida Elasticsearch ja mitte midagi seadistada, on juurdepÀÀs kÔigile indeksitele avatud kÔigile soovijatele. VÔi vÀhemalt neile, kes oskavad curl'i kasutada. Selle vÀltimiseks on Elasticsearchis rollimudel, mis on saadaval alates Basic tasemest (see on tasuta). Skeemiliselt nÀeb see vÀlja umbes nii:

Mis pildil
- Kasutajad on kÔik, kes saavad autentida oma kasutajatunnustega.
- Roll on Ôiguste kogum.
- Ăigused on privileegide kogum.
- Privileegid on lubade kogum kirjutamiseks, lugemiseks, eemaldamiseks jne. ()
- Ressursid on indeksid, dokumendid, vÀljad, kasutajad ja muud salvestuse subjektid (rollimudel on mÔnede ressursside jaoks saadaval ainult tasulistes tellimustes).
Elasticsearchis on vaikimisi olemas , millega on seotud . PĂ€rast turvaseadete lubamist saab neid kohe kasutada.
Elasticsearchi turvalisuse aktiveerimiseks tuleb konfigureerimise failile (vaikimisi on see elasticsearch/config/elasticsearch.yml) lisada uus rida:
xpack.security.enabled: truePÀrast konfigureerimise faili muutmist kÀivitame vÔi taaskÀivitame Elasticsearchi, et muudatused jÔustuksid. JÀrgmine samm on vaikimisi kasutajate paroolide mÀÀramine. Teeme seda interaktiivselt, kasutades allolevat kÀsku:
[elastic@node1 ~]$ .\/elasticsearch\/bin\/elasticsearch-setup-passwords interactive
Algatudeer the reserved users: elastic, apm_system, kibana, logstash_system, beats_system, remote_monitoring_user.
Sisen siseneid, kui see edeneb.
Palun kinnita, et soovid jÀtkata [y\/N]y
Sisestage parool [elastic]:
Kinnita parool [elastic]:
Sisestage parool [apm_system]:
Kinnita parool [apm_system]:
Sisestage parool [kibana]:
Kinnita parool [kibana]:
Sisestage parool [logstash_system]:
Kinnita parool [logstash_system]:
Sisestage parool [beats_system]:
Kinnita parool [beats_system]:
Sisestage parool [remote_monitoring_user]:
Kinnita parool [remote_monitoring_user]:
Parool on muudetud kasutajale [apm_system]
Parool on muudetud kasutajale [kibana]
Parool on muudetud kasutajale [logstash_system]
Parool on muudetud kasutajale [beats_system]
Parool on muudetud kasutajale [remote_monitoring_user]
Parool on muudetud kasutajale [elastic]
Kontrollime:
[elastic@node1 ~]$ curl -u elastic 'node1:9200\/_cat\/_nodes?pretty'
Sisestage hosti parool kasutaja 'elastic' jaoks:
192.168.0.2 23 46 14 0.28 0.32 0.18 dim * node1
VĂ”ite ennast Ă”lalt patsutada â Elasticsearchi seadistamine on tehtud. NĂŒĂŒd on aeg seadistada Kibana. Kui te kĂ€ivitate selle nĂŒĂŒd, tulevad vead, seega on oluline luua vĂ”tmehoidla. See toimub kahe kĂ€suga (kasutaja kibana ja parool, mis sisestati paroolide loomise sammul Elasticsearchis):
[elastic@node1 ~]$ .\/kibana\/bin\/kibana-keystore add elasticsearch.username
[elastic@node1 ~]$ .\/kibana\/bin\/kibana-keystore add elasticsearch.passwordKui kĂ”ik on Ă”igesti â Kibana hakkab kĂŒsima sisselogimist ja parooli. Basic tasemel tellimuses on saadaval rollimudel sisemiste kasutajate pĂ”hjal. Alates Gold tasemest saab ĂŒhendada vĂ€liseid autentimissĂŒsteeme â LDAP, PKI, Active Directory ja Single sign-on sĂŒsteemid.

Ka Elasticsearchis olevate objektide juurdepÀÀsu Ă”igused on vĂ”imalik piirata. Kuid dokumentide vĂ”i vĂ€ljade osas sama tegemiseks on vajalik tasuline tellimus (see luksus algab Platinum tasemelt). Need seaded on saadaval Kibana liideses vĂ”i lĂ€bi . Seda saab kontrollida juba tuttavas Dev Tools menĂŒĂŒs:
Rolli loomine
PUT \/_security\/role\/ruslan_i_ludmila_role
{
"cluster": [],
"indices": [
{
"names": [ "ruslan_i_ludmila" ],
"privileges": ["read", "view_index_metadata"]
}
]
}Kasutaja loomine
POST \/_security\/user\/pushkin
{
"password" : "nataliaonelove",
"roles" : [ "ruslan_i_ludmila_role", "kibana_user" ],
"full_name" : "Alexander Pushkin",
"email" : "pushkin@lyceum.edu",
"metadata" : {
"hometown" : "Saint-Petersburg"
}
}Andmete turvalisus Elasticsearch klastris
Kui Elasticsearch töötab klastris (see on tavaline), muutuvad klastri sisemised turvaseaded oluliseks. Node'ide vahelise turvalise suhtluse tagamiseks kasutab Elasticsearch TLS-protokolli. Nende vahelise turvalise suhtluse seadistamiseks on vajalik sertifikaat. Loome PEM-formaadis sertifikaadi ja privaatvÔtme:
[elastic@node1 ~]$ .\/elasticsearch\/bin\/elasticsearch-certutil ca --pemPĂ€rast ĂŒlaltoodud kĂ€sku ilmub kausta /../elasticsearch arhiv elastic-stack-ca.zip. Selle sees on leitud sertifikaat ja privaatvĂ”ti laienditega crt ja key vastavalt. Soovitav oleks need jagatud ressursile ĂŒles laadida, kuhu peaks olema juurdepÀÀs kĂ”igilt klastrite sĂ”lmedelt.
Iga sĂ”lme jaoks on nĂŒĂŒd vajalikud oma sertifikaadid ja privaatvĂ”tmed, mis pĂ”hinevad nendel, mis asuvad jagatud kaustas. KĂ€sku tĂ€ites palutakse sisestada parool. Saate lisada ka tĂ€iendavad valikud âip ja âdns tĂ€iesti valmis vahetatavate sĂ”lmede valideerimiseks.
[elastic@node1 ~]$ .\/elasticsearch\/bin\/elasticsearch-certutil cert --ca-cert \/shared_folder\/ca\/ca.crt --ca-key \/shared_folder\/ca\/ca.keyKÀsku tÀites saame sertifikaadi ja privaatvÔtme PKCS#12 formaadis, millel on parooliga kaitse. JÀÀnud on vaid genereeritud fail p12 liigutada konfiguratsiooni kausta:
[elastic@node1 ~]$ mv elasticsearch\/elastic-certificates.p12 elasticsearch\/configLisame sertifikaadi parooli keystore'i ja truststore'i igas sÔlmes: p12 [elastic@node1 ~]$ .\/elasticsearch\/bin\/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password\n[elastic@node1 ~]$ .\/elasticsearch\/bin\/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
Sisse juba tuntudelasticsearch.yml peame lisama read, mis sisaldavad sertifikaadi andmeid: xpack.security.transport.ssl.enabled: true\nxpack.security.transport.ssl.verification_mode: certificate\nxpack.security.transport.ssl.keystore.path: elastic-certificates.p12\nxpack.security.transport.ssl.truststore.path: elastic-certificates.p12
KÀivitame kÔik Elasticsearchi sÔlmed ja tÀidame. Kui kÔik on Ôigesti tehtud, tagastatakse vastus mitme sÔlmega: curl[elastic@node1 ~]$ curl node1:9200\/_cat\/:nodes -u elastic:password \n172.18.0.3 43 75 4 0.00 0.05 0.05 dim * node2 \n172.18.0.4 21 75 3 0.00 0.05 0.05 dim - node3 \n172.18.0.2 39 75 4 0.00 0.05 0.05 dim - node1
On veel ĂŒks turvavalik â IP-aadresside filtreerimine (saadaval tellimustes alates Gold tasemest). See vĂ”imaldab luua valgeid nimekirju IP-aadressidest, millelt on lubatud sĂ”lmedele pöörduda.Klastri vĂ€liselt tĂ€hendab vĂ€liste tööriistade, nagu Kibana, Logstash, Beats vĂ”i teiste vĂ€liste klientide ĂŒhendamist.
Andmete turvalisus Elasticsearch klastrist vÀljaspool
Et seadistada https tuge (http asemel), lisame elasticsearch.yml-sse uued read:

xpack.security.http.ssl.enabled: true\nxpack.security.http.ssl.keystore.path: elastic-certificates.p12\nxpack.security.http.ssl.truststore.path: elastic-certificates.p12
Kuna sertifikaat on kaitstud parooliga, lisame selle igas sÔlmes keystore'i ja truststore'i:Kuna sertifikaat on kaitstud paroole, lisame selle iga sÔlme keystore'i ja truststore'i:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-keystore add xpack.security.http.ssl.truststore.secure_passwordPĂ€rast vĂ”tmete lisamist on Elasticsearchi nodid valmis https-ĂŒhenduse jaoks. NĂŒĂŒd saab need kĂ€ivitada.
JĂ€rgmine samm on luua vĂ”ti Kibana ĂŒhendamiseks ja lisada see konfiguratsioonisse. Sertifikaadi pĂ”hjal, mis on juba jagatud kataloogis, genereerime sertifikaadi PEM-vormingus (PKCS#12, Kibana, Logstash ja Beats ei toeta praegu):
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil cert --ca-cert /shared_folder/ca/ca.crt --ca-key /shared_folder/ca/ca.key --pemNĂŒĂŒd tuleb loodud vĂ”tmed lahti pakkida Kibana konfiguratsioonikausta:
[elastic@node1 ~]$ unzip elasticsearch/certificate-bundle.zip -d kibana/configVĂ”tmed on olemas, nĂŒĂŒd tuleb muuta Kibana konfiguratsiooni, et see hakkaks neid kasutama. Kibana konfiguratsioonifailis kibana.yml muudame http https-ks ja lisame SSL-ĂŒhenduse seadistuste read. Viimased kolm rida seadistavad turvalise suhtlemise kasutaja brauseri ja Kibana vahel.
elasticsearch.hosts: ["https://${HOSTNAME}:9200"]
elasticsearch.ssl.certificateAuthorities: /shared_folder/ca/ca.crt
elasticsearch.ssl.verificationMode: certificate
server.ssl.enabled: true
server.ssl.key: /../kibana/config/instance/instance.key
server.ssl.certificate: /../kibana/config/instance/instance.crtNii on seadistused tehtud ja juurdepÀÀs Elasticsearchi klastris olevatele andmetele on krĂŒpteeritud.
Kui teil on kĂŒsimusi Elastic Stacki vĂ”imaluste kohta tasuta vĂ”i tasulistes tellimustes, andmete jĂ€lgimise vĂ”i SIEM-sĂŒsteemide loomise kohta, saatke pĂ€ring meie veebilehel.
Samuti meie artiklid Elastic Stackist Habr'is:
Allikas: habr.com
