
Elastic Stack on tuntud tööriist SIEM-sĂŒsteemide turul (tegelikult mitte ainult nende jaoks). See suudab koguda erinevaid andmeid, sealhulgas tundlikke ja vĂ€hem tundlikke. Pole mĂ”istlik, et Elastic Stacki elemendid ei oleks kaitstud. Vaikimisi töötavad kĂ”ik Elastici komponendid (Elasticsearch, Logstash, Kibana ja Beatsi kogujad) avatud protokollide alusel. Samuti on Kibanas vĂ€lja lĂŒlitatud autentimine. KĂ”iki neid interaktsioone on vĂ”imalik turvata ja selles artiklis selgitame, kuidas seda teha. Mugavuse huvides oleme jutustuse jaganud kolme sisulisse blokki:
- Andmete juurdepÀÀsu rollimudel
- Andmete turvalisus Elasticsearchi klastris
- Andmete turvalisus Elasticsearchi klastrivÀliselt
Lisainformatsioon allpool.
Andmete juurdepÀÀsu rollimudel
Kui Elasticsearchi seadistada ilma tÀiendava seadistamiseta, on juurdepÀÀs kÔikidele indeksitele avatud kÔigile soovijatele. Ja ka neile, kes oskavad kasutada curl'i. Selle vÀltimiseks on Elasticsearchis rollimudel, mis on saadaval alates Basic-taseme tellimusest (mis on tasuta). Skeemiliselt nÀeb see vÀlja umbes nii:

Mis pildil
- Kasutajad on kÔik, kes saavad sisse logida oma mandaadi abil.
- Roll on Ôiguste kogum.
- Ăigused on privileegide kogum.
- Privileegid on Ôigused kirjutamiseks, lugemiseks, kustutamiseks jne. ()
- Ressursid on indeksid, dokumendid, vÀljad, kasutajad ja muud andmehoidla subjektid (mÔne ressursi rolli mudel on saadaval ainult tasulistes tellimustes).
Elasticsearchis on vaikimisi olemas , millele on seotud . PĂ€rast turvaseadete lubamist saab neid kohe kasutada.
Elasticsearchi turvafunktsioonide aktiveerimiseks tuleb konfigureerimisfaili (vaikimisi elasticsearch/config/elasticsearch.yml) lisada uus rida:
xpack.security.enabled: truePÀrast konfigureerimisfaili muutmist kÀivitame vÔi taaskÀivitame Elasticsearchi, et muudatused jÔustuksid. JÀrgmine samm on mÀÀrata paroolid standardsetele kasutajatele. Teeme seda interaktiivselt jÀrgmise kÀsuga:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-setup-passwords interactive
Algab reserveeritud kasutajate elastic, apm_system, kibana, logstash_system, beats_system, remote_monitoring_user paroolide seadistamist.
Protsessi kÀigus palutakse teil sisestada paroole.
Palun kinnitage, et soovite jÀtkata [y/N]y
Sisestage parool [elastic] jaoks:
Sisestage parool uuesti [elastic] jaoks:
Sisestage parool [apm_system] jaoks:
Sisestage parool uuesti [apm_system] jaoks:
Sisestage parool [kibana] jaoks:
Sisestage parool uuesti [kibana] jaoks:
Sisestage parool [logstash_system] jaoks:
Sisestage parool uuesti [logstash_system] jaoks:
Sisestage parool [beats_system] jaoks:
Sisestage parool uuesti [beats_system] jaoks:
Sisestage parool [remote_monitoring_user] jaoks:
Sisestage parool uuesti [remote_monitoring_user] jaoks:
Muudetud parool kasutajale [apm_system]
Muudetud parool kasutajale [kibana]
Muudetud parool kasutajale [logstash_system]
Muudetud parool kasutajale [beats_system]
Muudetud parool kasutajale [remote_monitoring_user]
Muudetud parool kasutajale [elastic]
Kontrollin:
[elastic@node1 ~]$ curl -u elastic 'node1:9200/_cat/nodes?pretty'
Sisestage hosti parool kasutajale 'elastic':
192.168.0.2 23 46 14 0.28 0.32 0.18 dim * node1
VĂ”ite ennast Ă”lale patsutada â Elasticsearchi seadistused on tehtud. NĂŒĂŒd on aeg seadistada Kibana. Kui kĂ€ivitada see nĂŒĂŒd, tulevad vead, seega on oluline luua vĂ”tmehoidla. Seda tehakse kahes kĂ€sus (kasutaja kibana ja parool, mis sisestati paroolide loomise sammus Elasticsearchis):
[elastic@node1 ~]$ ./kibana/bin/kibana-keystore add elasticsearch.username
[elastic@node1 ~]$ ./kibana/bin/kibana-keystore add elasticsearch.passwordKui kĂ”ik on Ă”igesti seadistatud, hakkab Kibana kĂŒsima kasutajatunnust ja parooli. Basic tasemel tellimuses on saadaval rollipĂ”hine mudel sisemiste kasutajate jaoks. Gold tasemest alates on vĂ”imalik ĂŒhendada vĂ€lised autentimissĂŒsteemid â LDAP, PKI, Active Directory ja Single sign-on sĂŒsteemid.

Elasticsearchi sees olevate objektide juurde pÀÀsu Ă”igusi saab samuti piirata. TĂ”si, et sama teha dokumentide vĂ”i vĂ€ljadega, on vajalik tasuline tellimus (see luksus algab Platinum tasemest). 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 Elasticsearchi klastris
Kui Elasticsearch töötab klastris (mida juhtub sageli), muutuvad olulisteks klastrisisese turvalisuse seaded. Klienditeenindus optimeerib turvalise suhtluse node'ide vahel, kasutades TLS-protokolli. Nende vahelise turvalise suhtluse seadistamiseks on vajalik sertifikaat. Loome sertifikaadi ja privaatvÔtme PEM-formaadis:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pemĂlaltoodud kĂ€su tĂ€itmise jĂ€rel ilmub kausta /../elasticsearch arhiv, elastic-stack-ca.zipmille sees on sertifikaat ja privaatvĂ”ti laienditega crt ja key , vastavalt. Soovitav on need ĂŒles laadida jagatud ressurssile, millele peaks olema juurdepÀÀs kĂ”igilt klastris olevatelt node'ilt.
Iga node jaoks on nĂŒĂŒd vajaminevad oma sertifikaadid ja privaatvĂ”tmed, mis pĂ”hinevad nendel, mis asuvad jagatud kataloogis. KĂ€su tĂ€itmise ajal palutakse mÀÀrata parool. LisavĂ”imaluste -ip ja -dns abil saab tĂ€ielikult valideerida suhtleva node'i.
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil cert --ca-cert /shared_folder/ca/ca.crt --ca-key /shared_folder/ca/ca.keyKĂ€su tĂ€itmise tulemusena saame PKCS#12 vormingus sertifikaadi ja privaatvĂ”tme, mis on parooliga kaitstud. JÀÀb ĂŒle ainult genereeritud faili p12 ĂŒle viia konfiguratsioonikausta:
[elastic@node1 ~]$ mv elasticsearch/elastic-certificates.p12 elasticsearch/configLisame sertifikaadi parooli vormingus p12 keystore'i ja truststore'i igas sÔlmes:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_passwordJuba tuntud elasticsearch.yml tuleb lisada read sertifikaadi andmetega:
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12KÀivitame kÔik Elasticsearch sÔlmed ja tÀidame curl. Kui kÔik on Ôigesti tehtud, tuleb vastus mitme sÔlme andmetega:
[elastic@node1 ~]$ curl node1:9200/_cat/nodes -u elastic:password
172.18.0.3 43 75 4 0.00 0.05 0.05 dim * node2
172.18.0.4 21 75 3 0.00 0.05 0.05 dim - node3
172.18.0.2 39 75 4 0.00 0.05 0.05 dim - node1On olemas veel ĂŒks turvafunktsioon â IP-aadresside filtreerimine (saadaval Gold taseme tellimustes). See vĂ”imaldab luua valgeid nimekirju IP-aadressidest, millest on lubatud sĂ”lmedega ĂŒhendust vĂ”tta.
Andmete turvalisus Elasticsearchi klastrivÀliselt
VĂ€liselt klastrist tĂ€hendab selle ĂŒhendamist vĂ€liste tööriistadega: Kibana, Logstash, Beats vĂ”i teiste vĂ€liste klientidega.

HTTPS-i toe seadistamiseks (HTTP asemel) lisame elasticsearch.yml uudsed read:
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: elastic-certificates.p12
xpack.security.http.ssl.truststore.path: elastic-certificates.p12Kuna sertifikaat on parooliga kaitstud, lisame selle keystore'i ja truststore'i igas sÔlmes:
[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 sĂ”lmed valmis HTTPS-i ĂŒhendamiseks. NĂŒĂŒd saab neid kĂ€ivitada.
JÀrgmine samm on sisselogimisvÔtme loomine Kibana jaoks ja selle lisamine konfiguratsiooni. Sertifikaadi pÔhjal, mis on juba jagatud kataloogis, genereerime sertifikaadi PEM-formaadis (PKCS#12 Kibana, Logstash ja Beats ei toeta seda hetkel):
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil cert --ca-cert /shared_folder/ca/ca.crt --ca-key /shared_folder/ca/ca.key --pemViimane samm on loodud vÔtmete lahtipakkimine Kibana konfiguratsioonikausta:
[elastic@node1 ~]$ unzip elasticsearch/certificate-bundle.zip -d kibana/configKuna vĂ”tmed olemas, tuleb muuta Kibana konfiguratsiooni, et see neid kasutama hakkaks. Failis kibana.yml muudame http https-iks ja lisame SSL-ĂŒhenduse seadistuste read. Viimased kolm rida seadistavad turvalise suhtluse 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 seaded tehtud ja juurdepÀÀs andmetele Elasticsearchi klastris on krĂŒpteeritud.
Kui teil on kĂŒsimusi Elastic Stacki vĂ”imaluste kohta tasuta vĂ”i tasulistel tellimustel, kĂŒsimusi jĂ€lgimise vĂ”i SIEM-sĂŒsteemide loomise kohta, palun jĂ€tke teade meie veebisaidil.
Meie artiklid Elastic Stackist Habril:
Allikas: habr.com
