Elastic under lock and key: li tippermetti l-għażliet tas-sigurtà tal-clusters Elasticsearch għall-aċċess minn ġewwa u minn barra

Elastic under lock and key: li tippermetti l-għażliet tas-sigurtà tal-clusters Elasticsearch għall-aċċess minn ġewwa u minn barra

Elastic Stack huwa għodda magħrufa sew fis-suq tas-sistemi SIEM (fil-fatt, mhux huma biss). Jista 'jiġbor ħafna data ta' daqs differenti, kemm sensittiva kif ukoll mhux sensittiva ħafna. Mhuwiex kompletament korrett jekk l-aċċess għall-elementi Elastic Stack infushom ma jkunx protett. B'mod awtomatiku, l-elementi kollha Elastic out-of-the-box (Elasticsearch, Logstash, Kibana, u l-kolletturi Beats) jimxu fuq protokolli miftuħa. U f'Kibana innifsu, l-awtentikazzjoni hija diżattivata. Dawn l-interazzjonijiet kollha jistgħu jiġu żgurati u f'dan l-artikolu aħna ngħidulek kif tagħmel dan. Għall-konvenjenza, qsamna n-narrattiva fi 3 blokki semantiċi:

  • Mudell ta' aċċess għad-dejta bbażat fuq ir-rwol
  • Sigurtà tad-dejta fi ħdan cluster Elasticsearch
  • L-iżgurar tad-dejta barra minn cluster Elasticsearch

Dettalji taħt il-qatgħa.

Mudell ta' aċċess għad-dejta bbażat fuq ir-rwol

Jekk tinstalla Elasticsearch u ma tistuna bl-ebda mod, l-aċċess għall-indiċijiet kollha jkun miftuħ għal kulħadd. Ukoll, jew dawk li jistgħu jużaw curl. Biex tevita dan, Elasticsearch għandu mudell li huwa disponibbli li jibda b'abbonament Bażiku (li huwa b'xejn). Skematikament jidher xi ħaġa bħal din:

Elastic under lock and key: li tippermetti l-għażliet tas-sigurtà tal-clusters Elasticsearch għall-aċċess minn ġewwa u minn barra

X'hemm fl-istampa

  • L-utenti huma dawk kollha li jistgħu jidħlu billi jużaw il-kredenzjali tagħhom.
  • Rwol huwa sett ta’ drittijiet.
  • Id-drittijiet huma sett ta’ privileġġi.
  • Il-privileġġi huma permessi biex tikteb, jaqra, tħassar, eċċ. (Lista sħiħa ta' privileġġi)
  • Ir-riżorsi huma indiċi, dokumenti, oqsma, utenti, u entitajiet oħra ta' ħażna (il-mudell għal xi riżorsi huwa disponibbli biss b'abbonamenti mħallsa).

B'mod awtomatiku Elasticsearch għandu utenti tal-kaxxa, li magħhom huma mehmuża rwoli kaxxa. Ladarba inti tippermetti l-issettjar tas-sigurtà, tista 'tibda tużahom immedjatament.

Biex tippermetti s-sigurtà fl-issettjar ta 'Elasticsearch, trid iżżidha mal-fajl tal-konfigurazzjoni (b'mod awtomatiku dan huwa elasticsearch/config/elasticsearch.yml) linja ġdida:

xpack.security.enabled: true

Wara li tbiddel il-fajl tal-konfigurazzjoni, iniedi jew ibda mill-ġdid Elasticsearch biex il-bidliet jidħlu fis-seħħ. Il-pass li jmiss huwa li jassenja passwords lill-utenti tal-kaxxa. Ejja nagħmlu dan b'mod interattiv billi tuża l-kmand hawn taħt:

[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]

Aħna niċċekkjaw:

[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

Tista 'tpatti lilek innifsek fuq wara - is-settings fuq in-naħa ta' Elasticsearch huma lesti. Issa wasal iż-żmien li tikkonfigura Kibana. Jekk tmexxiha issa, se jidhru żbalji, għalhekk huwa importanti li toħloq maħżen ewlieni. Dan isir f'żewġ kmandi (user kibana u l-password imdaħħla fil-pass tal-ħolqien tal-password f'Elasticsearch):

[elastic@node1 ~]$ ./kibana/bin/kibana-keystore add elasticsearch.username
[elastic@node1 ~]$ ./kibana/bin/kibana-keystore add elasticsearch.password

Jekk kollox ikun korrett, Kibana jibda jitlob login u password. L-abbonament Bażiku jinkludi mudell ibbażat fuq utenti interni. Tibda minn Gold, tista 'tqabbad sistemi ta' awtentikazzjoni esterni - LDAP, PKI, Active Directory u sistemi ta 'Single sign-on.

Elastic under lock and key: li tippermetti l-għażliet tas-sigurtà tal-clusters Elasticsearch għall-aċċess minn ġewwa u minn barra

Id-drittijiet ta' aċċess għal oġġetti ġewwa Elasticsearch jistgħu wkoll ikunu limitati. Madankollu, biex tagħmel l-istess għal dokumenti jew oqsma, ser ikollok bżonn abbonament imħallas (dan il-lussu jibda bil-livell Platinum). Dawn is-settings huma disponibbli fl-interface Kibana jew permezz API tas-Sigurtà. Tista' tiċċekkja permezz tal-menu ta' Dev Tools diġà familjari:

Il-ħolqien ta' rwol

PUT /_security/role/ruslan_i_ludmila_role
{
  "cluster": [],
  "indices": [
    {
      "names": [ "ruslan_i_ludmila" ],
      "privileges": ["read", "view_index_metadata"]
    }
  ]
}

Ħolqien ta' utent

POST /_security/user/pushkin
{
  "password" : "nataliaonelove",
  "roles" : [ "ruslan_i_ludmila_role", "kibana_user" ],
  "full_name" : "Alexander Pushkin",
  "email" : "[email protected]",
  "metadata" : {
    "hometown" : "Saint-Petersburg"
  }
}

Sigurtà tad-dejta fi ħdan cluster Elasticsearch

Meta Elasticsearch jaħdem fi cluster (li huwa komuni), is-settings tas-sigurtà fi ħdan il-cluster isiru importanti. Għal komunikazzjoni sigura bejn in-nodi, Elasticsearch juża l-protokoll TLS. Biex twaqqaf interazzjoni sigura bejniethom, għandek bżonn ċertifikat. Aħna niġġeneraw ċertifikat u ċavetta privata fil-format PEM:

[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem

Wara li tesegwixxi l-kmand hawn fuq, fid-direttorju /../elasticsearch se jidher arkivju elastic-stack-ca.zip. Ġewwa fiha ssib ċertifikat u ċavetta privata b'estensjonijiet crt и ewlieni rispettivament. Huwa rakkomandabbli li jitqiegħdu fuq riżors kondiviż, li għandu jkun aċċessibbli min-nodi kollha fil-cluster.

Kull node issa jeħtieġ iċ-ċertifikati u ċ-ċwievet privati ​​tiegħu stess ibbażati fuq dawk fid-direttorju kondiviż. Meta tesegwixxi l-kmand, inti tintalab tissettja password. Tista 'żżid għażliet addizzjonali -ip u -dns għal verifika sħiħa tan-nodi li jinteraġixxu.

[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil cert --ca-cert /shared_folder/ca/ca.crt --ca-key /shared_folder/ca/ca.key

Bħala riżultat tal-eżekuzzjoni tal-kmand, se nirċievu ċertifikat u ċavetta privata fil-format PKCS#12, protetti minn password. Kulma jibqa 'huwa li tmexxi l-fajl iġġenerat p12 għad-direttorju tal-konfigurazzjoni:

[elastic@node1 ~]$ mv elasticsearch/elastic-certificates.p12 elasticsearch/config

Żid password liċ-ċertifikat fil-format p12 f'keystore u truststore fuq kull node:

[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_password

Diġà magħrufa elasticsearch.yml Li jibqa 'huwa li żżid linji bid-dejta taċ-ċertifikat:

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.p12

Inniedu n-nodi Elasticsearch kollha u nwettqu curl. Jekk kollox sar b'mod korrett, tingħata tweġiba b'diversi nodi:

[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 - node1

Hemm għażla oħra ta 'sigurtà - filtrazzjoni tal-indirizz IP (disponibbli f'abbonamenti mil-livell Gold). Jippermettilek toħloq listi bojod ta' indirizzi IP li minnhom titħalla taċċessa n-nodi.

L-iżgurar tad-dejta barra minn cluster Elasticsearch

Barra l-cluster tfisser konnessjoni ta 'għodod esterni: Kibana, Logstash, Beats jew klijenti esterni oħra.

Elastic under lock and key: li tippermetti l-għażliet tas-sigurtà tal-clusters Elasticsearch għall-aċċess minn ġewwa u minn barra

Biex tikkonfigura l-appoġġ għal https (minflok http), żid linji ġodda għal 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.p12

Għax Iċ-ċertifikat huwa protett bil-password, żidu mal-keystore u l-truststore fuq kull node:

[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_password

Wara li żżid iċ-ċwievet, in-nodi ta 'Elasticsearch huma lesti biex jgħaqqdu permezz ta' https. Issa jistgħu jiġu mnedija.

Il-pass li jmiss huwa li toħloq ċavetta biex tgħaqqad Kibana u żżidha mal-konfigurazzjoni. Ibbażat fuq iċ-ċertifikat li diġà jinsab fid-direttorju kondiviż, aħna niġġeneraw ċertifikat fil-format PEM (PKCS#12 Kibana, Logstash u Beats għadhom ma jappoġġjawx):

[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil cert --ca-cert /shared_folder/ca/ca.crt --ca-key /shared_folder/ca/ca.key --pem

Li jibqa 'huwa li tħoll iċ-ċwievet maħluqa fil-folder bil-konfigurazzjoni Kibana:

[elastic@node1 ~]$ unzip elasticsearch/certificate-bundle.zip -d kibana/config

Iċ-ċwievet qegħdin hemm, għalhekk kulma jibqa 'huwa li tinbidel il-konfigurazzjoni ta' Kibana sabiex tibda tużahom. Fil-fajl tal-konfigurazzjoni kibana.yml, ibdel http għal https u żid linji b'settings ta 'konnessjoni SSL. L-aħħar tliet linji kkonfiguraw komunikazzjoni sigura bejn il-browser tal-utent u Kibana.

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.crt

Għalhekk, is-settings jitlestew u l-aċċess għad-dejta fil-cluster Elasticsearch huwa encrypted.

Jekk għandek mistoqsijiet dwar il-kapaċitajiet ta' Elastic Stack fuq abbonamenti b'xejn jew imħallsa, kompiti ta' monitoraġġ jew ħolqien ta' sistema SIEM, ħalli talba lil formola ta' feedback fuq il-websajt tagħna.

Aktar artikli tagħna dwar Elastic Stack fuq Habré:

Nifhmu Tagħlim Magni fil-Munzell Elastiku (magħruf ukoll bħala Elasticsearch, magħruf ukoll bħala ELK)

Daqs ta 'Elasticsearch

Sors: www.habr.com

Żid kumment