Elastic Locked Up: Pag-enable sa Elasticsearch Cluster Security Options para sa Inside and Outside Access

Elastic Locked Up: Pag-enable sa Elasticsearch Cluster Security Options para sa Inside and Outside Access

Ang Elastic Stack usa ka ilado nga himan sa merkado sa mga sistema sa SIEM (sa tinuud, dili lamang sila). Makakolekta kini og daghang lain-laing gidak-on nga datos, parehong sensitibo ug dili kaayo sensitibo. Dili kini hingpit nga husto kung ang pag-access sa mga elemento sa Elastic Stack mismo dili mapanalipdan. Sa kasagaran, ang tanan nga Elastic boxed nga mga elemento (Elasticsearch, Logstash, Kibana, ug Beats collectors) naglihok sa bukas nga mga protocol. Ug sa Kibana mismo, ang pag-authenticate gi-disable. Ang tanan nga kini nga mga interaksyon mahimong masiguro, ug sa kini nga artikulo isulti namon kanimo kung giunsa kini buhaton. Alang sa kasayon, ang istorya gibahin sa 3 semantic blocks:

  • Role model sa pag-access sa datos
  • Seguridad sa datos sulod sa usa ka Elasticsearch cluster
  • Seguridad sa datos gawas sa usa ka Elasticsearch cluster

Mga detalye ubos sa pagputol.

Role model sa pag-access sa datos

Kung imong gi-install ang Elasticsearch ug wala’y tune niini, ang pag-access sa tanan nga mga indeks bukas sa tanan. Aw, o kadtong makagamit sa curl. Aron malikayan kini, ang Elasticsearch adunay usa ka role model nga magamit sugod sa usa ka Basic level subscription (nga libre). Sa eskematiko kini tan-awon sama niini:

Elastic Locked Up: Pag-enable sa Elasticsearch Cluster Security Options para sa Inside and Outside Access

Unsay naa sa picture

  • Ang mga tiggamit mao ang tanan nga maka-log in gamit ang mga kredensyal.
  • Ang usa ka papel usa ka hugpong sa mga katungod.
  • Ang mga katungod usa ka hugpong sa mga pribilehiyo.
  • Ang mga pribilehiyo mao ang pagtugot sa pagsulat, pagbasa, pagtangtang, ug uban pa. (Bug-os nga listahan sa mga pribilehiyo)
  • Ang mga kapanguhaan mao ang mga indeks, mga dokumento, mga field, mga tiggamit, ug uban pang mga entidad sa pagtipig (ang role model alang sa pipila ka mga kapanguhaan anaa lamang sa bayad nga mga subskripsyon).

Ang Elasticsearch adunay sa default mga tiggamit sa kahondiin gilakip mga papel sa kahon. Human ma-enable ang mga setting sa seguridad, mahimo nimong sugdan dayon ang paggamit niini.

Aron mahimo ang seguridad sa mga setting sa Elasticsearch, kinahanglan nimo kini idugang sa configuration file (sa default kini mao ang elasticsearch/config/elasticsearch.yml) Bagong linya:

xpack.security.enabled: true

Human mabag-o ang configuration file, sugdi o i-restart ang Elasticsearch para mu-epekto ang mga kausaban. Ang sunod nga lakang mao ang pag-assign sa mga password sa mga naka-box nga tiggamit. Buhaton nato kini nga interactive sa sugo sa ubos:

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

Pagsusi:

[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

Mahimo nimong sagpaon ang imong kaugalingon sa abaga - ang mga setting sa kilid sa Elasticsearch nahuman na. Karon na ang turno sa pagpahimutang sa Kibana. Kung gipadagan nimo kini karon, ang mga sayup mahulog, busa hinungdanon nga maghimo usa ka keystore. Gihimo kini sa duha ka mga sugo (user kibana ug ang password nga gisulod sa lakang sa paghimo og mga password sa Elasticsearch):

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

Kung husto ang tanan, si Kibana magsugod sa pagpangayo alang sa usa ka username ug password. Sa usa ka Basic nga suskrisyon, usa ka modelo nga gibase sa mga internal nga tiggamit magamit. Sugod sa Bulawan, mahimo nimong ikonektar ang mga external authentication system - LDAP, PKI, Active Directory ug Single sign-on system.

Elastic Locked Up: Pag-enable sa Elasticsearch Cluster Security Options para sa Inside and Outside Access

Ang mga katungod sa pag-access sa mga butang sa sulod sa Elasticsearch mahimo usab nga limitado. Tinuod, aron mahimo ang parehas alang sa mga dokumento o natad, kinahanglan nimo ang usa ka bayad nga suskrisyon (kini nga kaluho nagsugod sa lebel sa Platinum). Kini nga mga setting anaa sa Kibana interface o pinaagi sa Security API. Mahimo nimong susihon ang pamilyar na nga menu sa Dev Tools:

Paghimo og Papel

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

Pagmugna sa tiggamit

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

Seguridad sa datos sulod sa usa ka Elasticsearch cluster

Kung ang Elasticsearch midagan sa usa ka cluster (nga kasagaran), ang mga setting sa seguridad sulod sa cluster nahimong importante. Alang sa luwas nga komunikasyon tali sa mga node, ang Elasticsearch naggamit sa TLS protocol. Aron mapahimutang ang luwas nga komunikasyon tali kanila, kinahanglan nimo ang usa ka sertipiko. Naghimo kami og sertipiko ug pribadong yawe sa PEM format:

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

Human sa pagpatuman sa sugo sa ibabaw, sa direktoryo /../elasticsearch makita ang archive elastic-stack-ca.zip. Sa sulod niini makit-an nimo ang usa ka sertipiko ug usa ka pribado nga yawe nga adunay mga extension crt ΠΈ yawe matag usa. Gitinguha nga ibutang kini sa usa ka gipaambit nga kapanguhaan, diin kinahanglan adunay access gikan sa tanan nga mga node sa cluster.

Ang matag node karon nanginahanglan sa kaugalingon nga mga sertipiko ug pribado nga mga yawe base sa mga naa sa gipaambit nga direktoryo. Kung gipatuman ang mando, hangyoon ka nga magbutang usa ka password. Ang dugang nga mga kapilian -ip ug -dns mahimong idugang aron hingpit nga mapamatud-an ang mga node sa komunikasyon.

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

Ingon usa ka sangputanan sa pagpatuman sa mando, makadawat kami usa ka sertipiko ug usa ka pribado nga yawe sa format nga PKCS # 12, gipanalipdan sa usa ka password. Nagpabilin kini aron ibalhin ang nahimo nga file p12 ngadto sa configuration directory:

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

Pagdugang og password sa sertipiko sa format p12 sa keystore ug truststore sa matag 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

Sa nahibal-an na elasticsearch.yml nagpabilin kini nga pagdugang mga linya nga adunay datos bahin sa sertipiko:

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

Gisugdan namon ang tanan nga mga node sa Elasticsearch ug gipatuman curl. Kung ang tanan nahimo sa husto, ang tubag nga adunay daghang mga node ibalik:

[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

Adunay laing kapilian sa seguridad - pagsala sa IP address (anaa sa mga suskrisyon gikan sa lebel sa Gold). Gitugotan ka sa paghimo og puti nga mga lista sa mga adres sa IP diin ang mga node gitugotan nga maka-access.

Seguridad sa datos gawas sa usa ka Elasticsearch cluster

Sa gawas sa cluster nagpasabut nga nagkonektar sa gawas nga mga instrumento: Kibana, Logstash, Beats o uban pang mga kliyente sa gawas.

Elastic Locked Up: Pag-enable sa Elasticsearch Cluster Security Options para sa Inside and Outside Access

Aron ma-configure ang suporta alang sa https (imbes sa http), idugang ang mga bag-ong linya sa 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

Kay ang sertipiko giprotektahan sa password, atong idugang kini sa keystore ug truststore sa matag 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

Pagkahuman sa pagdugang sa mga yawe, ang mga Elasticsearch node andam na nga magkonektar pinaagi sa https. Karon sila mahimong ilunsad.

Ang sunod nga lakang mao ang paghimo og Kibana connection key ug idugang kini sa configuration. Base sa certificate, nga anaa na sa shared directory, maghimo mi og certificate sa PEM format (PKCS # 12 Kibana, Logstash ug Beats wala pa mosuporta):

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

Nagpabilin nga i-unpack ang mga yawe nga nahimo sa folder sa pagsumpo sa Kibana:

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

Ang mga yawe anaa, mao nga kini nagpabilin sa pag-usab sa Kibana configuration aron kini magsugod sa paggamit kanila. Sa kibana.yml configuration file, usba ang http sa https ug idugang ang mga linya nga adunay mga setting sa koneksyon sa SSL. Ang kataposang tulo ka linya nagbutang ug luwas nga interaksyon tali sa browser sa user ug 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

Sa ingon, ang mga setting nahuman ug ang pag-access sa datos sa Elasticsearch cluster gi-encrypt.

Kung naa kay pangutana bahin sa mga feature sa Elastic Stack sa libre o bayad nga mga suskrisyon, mga buluhaton para sa pagmonitor o paghimo og sistema sa SIEM, pagbilin og hangyo sa porma sa feedback sa among website.

Daghan pa sa among mga artikulo bahin sa Elastic Stack sa HabrΓ©:

Pagsabot sa Machine Learning sa Elastic Stack (aka Elasticsearch, aka ELK)

Pagsukod sa Elasticsearch

Source: www.habr.com

Idugang sa usa ka comment