
Elastic Stack â njĂ« mjet i njohur nĂ« tregun e sistemeve SIEM (nuk Ă«shtĂ« vetĂ«m pĂ«r to). Ai mund tĂ« grumbullojĂ« shumĂ« tĂ« dhĂ«na tĂ« ndryshme, si tĂ« ndjeshme ashtu edhe jo. Nuk Ă«shtĂ« krejtĂ«sisht e saktĂ« nĂ«se qasja nĂ« vetĂ« elementet e Elastic Stack nuk do tĂ« jetĂ« e mbrojtur. Nga default, tĂ« gjithĂ« elementĂ«t kutia tĂ« Elastic (Elasticsearch, Logstash, Kibana dhe kolektorĂ«t Beats) punojnĂ« nĂ« protokollet e hapura. NdĂ«rsa nĂ« vetĂ« Kibana, autentifikimi Ă«shtĂ« i çaktivizuar. TĂ« gjitha kĂ«to ndĂ«rveprime mund tĂ« sigurohen, dhe nĂ« kĂ«tĂ« artikull do tĂ« tregojmĂ« se si ta bĂ«jmĂ« kĂ«tĂ«. PĂ«r lehtĂ«sinĂ« e lexuesve, e ndamĂ« narrativin nĂ« 3 blloqe semantike:
- Modeli i aksesit rol
- Siguria e të dhënave brenda klasterit Elasticsearch
- Siguria e të dhënave jashtë klasterit Elasticsearch
Detajet më poshtë.
Modeli i aksesit rol
NĂ«se instalohet Elasticsearch dhe nuk bĂ«het asnjĂ« optimizim â qasja nĂ« tĂ« gjitha indekset do tĂ« jetĂ« e hapur pĂ«r tĂ« gjithĂ« ata qĂ« dĂ«shirojnĂ«. Ose, ata qĂ« dinĂ« tĂ« pĂ«rdorin curl. PĂ«r ta shmangur kĂ«tĂ«, nĂ« Elasticsearch ekziston njĂ« model roli, i cili Ă«shtĂ« nĂ« dispozicion duke filluar nga niveli i abonimit Basic (i cili Ă«shtĂ« falas). Duke e parĂ« nĂ« mĂ«nyrĂ« skematike, duket kĂ«shtu:

ĂfarĂ« Ă«shtĂ« nĂ« figurĂ«
- PĂ«rdoruesit â janĂ« tĂ« gjithĂ« ata qĂ« mund tĂ« identifikohen duke pĂ«rdorur kredencialet.
- Roli â Ă«shtĂ« njĂ« grup tĂ« drejtash.
- Të drejtat janë një grup privilegjesh.
- Privilegjet janë leje për të shkruar, lexuar, fshirë etj. ()
- Burimet janë indekse, dokumente, fusha, përdorues dhe subjekte të tjera të ruajtjes (modeli i rolit për disa burime është i disponueshëm vetëm në abonime me pagesë).
Në Elasticsearch, për default ka , të cilët lidhen me . Pas aktivizimit të cilësimeve të sigurisë, ato mund të fillojnë të përdoren menjëherë.
Për të aktivizuar sigurinë në cilësimet e Elasticsearch, duhet të shtoni një rresht të ri në skedarin e konfigurimit (në mënyrë të paracaktuar është elasticsearch/config/elasticsearch.yml)
xpack.security.enabled: truePas ndryshimit të skedarit të konfigurimit, startojmë ose rstartojmë Elasticsearch, që ndryshimet të hyjnë në fuqi. Hapi tjetër është caktimi i fjalëkalimeve për përdoruesit e fabrikës. Do ta bëjmë këtë në mënyrë interaktive me komandën më poshtë:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-setup-passwords interactive
Duke procesin e konfigurimit të fjalëkalimeve për përdoruesit rezervë elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
Do të përballeni me nevojën për të futur fjalëkalime ndërsa procesi përparon.
Ju lutem konfirmoni nëse dëshironi të vazhdoni [y/N]y
Futni fjalëkalimin për [elastic]:
Rivendosni fjalëkalimin për [elastic]:
Futni fjalëkalimin për [apm_system]:
Rivendosni fjalëkalimin për [apm_system]:
Futni fjalëkalimin për [kibana]:
Rivendosni fjalëkalimin për [kibana]:
Futni fjalëkalimin për [logstash_system]:
Rivendosni fjalëkalimin për [logstash_system]:
Futni fjalëkalimin për [beats_system]:
Rivendosni fjalëkalimin për [beats_system]:
Futni fjalëkalimin për [remote_monitoring_user]:
Rivendosni fjalëkalimin për [remote_monitoring_user]:
Fjalëkalimi është ndryshuar për përdoruesin [apm_system]
Fjalëkalimi është ndryshuar për përdoruesin [kibana]
Fjalëkalimi është ndryshuar për përdoruesin [logstash_system]
Fjalëkalimi është ndryshuar për përdoruesin [beats_system]
Fjalëkalimi është ndryshuar për përdoruesin [remote_monitoring_user]
Fjalëkalimi është ndryshuar për përdoruesin [elastic]
Po kontrollojmë:
[elastic@node1 ~]$ curl -u elastic 'node1:9200/_cat/nodes?pretty'
Futni fjalëkalimin e hostit për përdoruesin 'elastic':
192.168.0.2 23 46 14 0.28 0.32 0.18 dim * node1
Mund tĂ« pĂ«rqafoni veten â konfigurimet nĂ« anĂ«n e Elasticsearch janĂ« bĂ«rĂ«. Tani Ă«shtĂ« koha pĂ«r tĂ« konfiguruar Kibana. NĂ«se e filloni tani, do tĂ« shfaqen gabime, kĂ«shtu qĂ« Ă«shtĂ« e rĂ«ndĂ«sishme tĂ« krijoni njĂ« depo çelesh. Kjo bĂ«het me dy komanda (pĂ«rdoruesi kibana dhe fjalĂ«kalimi, tĂ« futur nĂ« hapin e krijimit tĂ« fjalĂ«kalimeve nĂ« Elasticsearch):
[elastic@node1 ~]$ ./kibana/bin/kibana-keystore add elasticsearch.username
[elastic@node1 ~]$ ./kibana/bin/kibana-keystore add elasticsearch.passwordNĂ«se gjithçka Ă«shtĂ« e saktĂ« â Kibana do tĂ« fillojĂ« tĂ« kĂ«rkojĂ« emrin e pĂ«rdoruesit dhe fjalĂ«kalimin. NĂ« abonimin e nivelit Basic, Ă«shtĂ« e disponueshme njĂ« model roli nĂ« bazĂ« tĂ« pĂ«rdoruesve tĂ« brendshĂ«m. Duke filluar nga Gold, mund tĂ« lidhni sisteme autentifikimi tĂ« jashtme â LDAP, PKI, Active Directory dhe sisteme Single sign-on.

Të drejtat e aksesit në objektet brenda Elasticsearch gjithashtu mund të kufizohen. Megjithatë, për të bërë të njëjtën gjë për dokumentet ose fushat, do të nevojitet një abonim pagese (kjo luks fillon nga niveli Platinum). Këto cilësime janë të disponueshme në ndërfaqen e Kibana ose përmes . Mund ta kontrolloni përmes menusë tashmë të njohur Dev Tools:
Krijimi i rolit
PUT /_security/role/ruslan_i_ludmila_role
{
"cluster": [],
"indices": [
{
"names": [ "ruslan_i_ludmila" ],
"privileges": ["read", "view_index_metadata"]
}
]
}Krijimi i përdoruesit
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"
}
}Siguria e të dhënave brenda klasterit Elasticsearch
Kur Elasticsearch punon në një klaster (çka është e zakonshme), konfigurimet e sigurisë brenda klasterit bëhen të rëndësishme. Për një ndërveprim të sigurt midis nodave, Elasticsearch përdor protokollin TLS. Për të konfiguruar një ndërveprim të sigurt midis tyre, nevojitet një certifikatë. Gjenerojmë një certifikatë dhe një çelës privat në formatin PEM:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pemPas ekzekutimit tĂ« komandĂ«s sĂ« mĂ«sipĂ«rme, nĂ« drejtorinĂ« /../elasticsearch do tĂ« shfaqet njĂ« arkiv elastic-stack-ca.zip. Brenda tij do tĂ« gjeni certifikatĂ«n dhe çelĂ«sin privat me pĂ«rmasa crt dhe key pĂ«rkatĂ«sisht. ĂshtĂ« e preferueshme t'i vendosim ato nĂ« njĂ« burim tĂ« pĂ«rbashkĂ«t, tĂ« cilit duhet tĂ« ketĂ« akses nga tĂ« gjitha nodat e klasterit.
PĂ«r secilĂ«n nodĂ« tani nevojiten certifikata dhe çelĂ«sat privatĂ« mbi bazĂ«n e atyre qĂ« ndodhen nĂ« direktorinĂ« e pĂ«rbashkĂ«t. GjatĂ« ekzekutimit tĂ« komandĂ«s do tĂ« kĂ«rkohet tĂ« vendosni njĂ« fjalĂ«kalim. Mund tĂ« shtoni mundĂ«si tĂ« tjera âip dhe âdns pĂ«r njĂ« verifikim tĂ« plotĂ« tĂ« nodave qĂ« ndĂ«rveprojnĂ«.
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil cert --ca-cert /shared_folder/ca/ca.crt --ca-key /shared_folder/ca/ca.keyPas ekzekutimit të komandës do të marrim një certifikatë dhe një çelës privat në formatin PKCS#12, të mbrojtur me fjalëkalim. Tani mbetet të transferojmë skedarin e gjeneruar p12 në drejtorinë me konfigurimin:
[elastic@node1 ~]$ mv elasticsearch/elastic-certificates.p12 elasticsearch/configShtojmë një fjalëkalim për certifikatën në formatin p12 në keystore dhe truststore në çdo nodë:
[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_passwordNë skedarin e njohur elasticsearch.yml më mbetet të shtoj rreshtat me informacionin për certifikatën:
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.p12Nisni të gjitha nodet Elasticsearch dhe realizoni curl. Nëse gjithçka është bërë siç duhet, do të keni një përgjigje me disa node:
[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 - node1Ekziston njĂ« opsion tjetĂ«r pĂ«r sigurinĂ« â filtrimi i adresave IP (disponues nĂ« abonimet nga niveli Gold). Lejon krijimin e listave tĂ« bardha tĂ« adresave IP nga tĂ« cilat lejohet qasja nĂ« nodet.
Siguria e të dhënave jashtë klasterit Elasticsearch
Jashtë klasterit do të thotë lidhje me mjete të jashtme: Kibana, Logstash, Beats ose klientë të tjerë të jashtëm.

Për të konfiguroni mbështetje https (në vend të http), do të shtojmë rreshta të rinj në elasticsearch.yml:
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: elastic-certificates.p12
xpack.security.http.ssl.truststore.path: elastic-certificates.p12Duke qenë se certifikata është e mbrojtur me fjalëkalim, do ta shtojmë në keystore dhe truststore në çdo nod:
[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_passwordPas shtimit të çelësave, nodet Elasticsearch janë të gatshme për lidhje nëpërmjet https. Tani mund të fillohen.
Hapi tjetër është krijimi i një çelësi për lidhjen me Kibana dhe shtimi i tij në konfigurim. Në bazë të certifikatës, e cila tashmë është vendosur në direktorinë e ndarë, do të gjenerojmë një certifikatë në formatin PEM (PKCS#12 Kibana, Logstash dhe Beats nuk e mbështesin ende):
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil cert --ca-cert /shared_folder/ca/ca.crt --ca-key /shared_folder/ca/ca.key --pemI mbetet të nxjerrim çelësat e krijuar në folderin me konfigurimin e Kibana:
[elastic@node1 ~]$ unzip elasticsearch/certificate-bundle.zip -d kibana/configĂelĂ«sat ekzistojnĂ«, tani mbetet tĂ« ndryshohet konfigurimi i Kibana-s qĂ« tĂ« fillojĂ« t'i pĂ«rdorĂ« ato. NĂ« skedarin e konfigurimit kibana.yml ndryshojmĂ« http nĂ« https dhe shtojmĂ« rreshtat me cilĂ«simet e lidhjes SSL. Tre rreshtat e fundit konfigurojnĂ« ndĂ«rveprimin e sigurt midis shfletuesit tĂ« pĂ«rdoruesit dhe Kibana-s.
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.crtKështu, cilësimet janë kryer dhe qasja në të dhënat në klasterin Elasticsearch është e enkriptuar.
Nëse keni pyetje mbi mundësitë e Elastic Stack në abonimet falas ose me pagesë, çështjet për monitorimin ose krijimin e sistemeve SIEM, lëreni një kërkesë në në faqen tonë.
Akoma artikujt tanë mbi Elastic Stack në Habr:
Burimi: habr.com
