Elastig Wedi'i Gloi: Galluogi Opsiynau Diogelwch Clwstwr Elasticsearch ar gyfer Mynediad Tu Mewn a thu allan

Elastig Wedi'i Gloi: Galluogi Opsiynau Diogelwch Clwstwr Elasticsearch ar gyfer Mynediad Tu Mewn a thu allan

Mae Elastic Stack yn arf adnabyddus yn y farchnad systemau SIEM (mewn gwirionedd, nid yn unig nhw). Gall gasglu llawer o ddata o wahanol faint, yn sensitif ac nid yn sensitif iawn. Nid yw'n gwbl gywir os nad yw mynediad i'r elfennau Elastig Stack eu hunain wedi'i ddiogelu. Yn ddiofyn, mae holl elfennau Elastig mewn bocs (casglwyr Elasticsearch, Logstash, Kibana, a Beats) yn gweithredu ar brotocolau agored. Ac yn Kibana ei hun, mae dilysu yn anabl. Gellir sicrhau'r holl ryngweithiadau hyn, ac yn yr erthygl hon byddwn yn dweud wrthych sut i wneud hynny. Er hwylustod, rhannwyd y stori yn 3 bloc semantig:

  • Model rΓ΄l mynediad data
  • Diogelwch data o fewn clwstwr Elasticsearch
  • Diogelwch data y tu allan i glwstwr Elasticsearch

Manylion o dan y toriad.

Model rΓ΄l mynediad data

Os ydych chi'n gosod Elasticsearch ac yn ei diwnio mewn unrhyw ffordd, bydd mynediad i'r holl fynegeion yn agored i bawb. Wel, neu'r rhai sy'n gallu defnyddio cyrl. Er mwyn osgoi hyn, mae gan Elasticsearch fodel rΓ΄l sydd ar gael gan ddechrau gyda thanysgrifiad lefel Sylfaenol (sydd am ddim). Yn sgematig mae'n edrych fel hyn:

Elastig Wedi'i Gloi: Galluogi Opsiynau Diogelwch Clwstwr Elasticsearch ar gyfer Mynediad Tu Mewn a thu allan

Beth sydd yn y llun

  • Mae defnyddwyr i gyd yn gallu mewngofnodi gan ddefnyddio tystlythyrau.
  • Set o hawliau yw rΓ΄l.
  • Set o freintiau yw hawliau.
  • Breintiau yw caniatΓ’d i ysgrifennu, darllen, dileu, ac ati. (Rhestr lawn o freintiau)
  • Mae adnoddau yn fynegeion, dogfennau, meysydd, defnyddwyr, ac endidau storio eraill (dim ond mewn tanysgrifiadau taledig y mae'r model rΓ΄l ar gyfer rhai adnoddau ar gael).

Mae gan Elasticsearch yn ddiofyn defnyddwyr mewn bocsysy maent ynghlwm rolau blwch. Ar Γ΄l galluogi gosodiadau diogelwch, gallwch ddechrau eu defnyddio ar unwaith.

Er mwyn galluogi diogelwch yn y gosodiadau Elasticsearch, mae angen i chi ei ychwanegu at y ffeil ffurfweddu (yn ddiofyn dyma elasticsearch/config/elasticsearch.yml) llinell newydd:

xpack.security.enabled: true

Ar Γ΄l newid y ffeil ffurfweddu, dechreuwch neu ailgychwyn Elasticsearch er mwyn i'r newidiadau ddod i rym. Y cam nesaf yw aseinio cyfrineiriau i ddefnyddwyr mewn bocsys. Gadewch i ni wneud hyn yn rhyngweithiol gyda'r gorchymyn isod:

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

Rydym yn gwirio:

[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

Gallwch chi slap eich hun ar yr ysgwydd - mae'r gosodiadau ar ochr Elasticsearch wedi'u gwneud. Nawr dyma'r tro i sefydlu Kibana. Os ydych chi'n ei redeg nawr, bydd gwallau'n gostwng, felly mae'n bwysig creu storfa allweddi. Gwneir hyn mewn dau orchymyn (defnyddiwr cibana a'r cyfrinair a gofnodwyd yn y cam o greu cyfrineiriau yn Elasticsearch):

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

Os yw popeth yn gywir, bydd Kibana yn dechrau gofyn am enw defnyddiwr a chyfrinair. Mewn tanysgrifiad Sylfaenol, mae model rΓ΄l yn seiliedig ar ddefnyddwyr mewnol ar gael. Gan ddechrau gydag Aur, gallwch gysylltu systemau dilysu allanol - LDAP, PKI, Active Directory a systemau mewngofnodi Sengl.

Elastig Wedi'i Gloi: Galluogi Opsiynau Diogelwch Clwstwr Elasticsearch ar gyfer Mynediad Tu Mewn a thu allan

Gall hawliau mynediad i wrthrychau y tu mewn i Elasticsearch hefyd fod yn gyfyngedig. Yn wir, i wneud yr un peth ar gyfer dogfennau neu feysydd, bydd angen tanysgrifiad taledig arnoch (mae'r moethusrwydd hwn yn dechrau gyda'r lefel Platinwm). Mae'r gosodiadau hyn ar gael yn rhyngwyneb Kibana neu drwy API Diogelwch. Gallwch wirio trwy'r ddewislen Dev Tools sydd eisoes yn gyfarwydd:

Creu rΓ΄l

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

Creu defnyddiwr

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

Diogelwch data o fewn clwstwr Elasticsearch

Pan fydd Elasticsearch yn rhedeg mewn clwstwr (sy'n gyffredin), mae gosodiadau diogelwch o fewn y clwstwr yn dod yn bwysig. Ar gyfer cyfathrebu diogel rhwng nodau, mae Elasticsearch yn defnyddio'r protocol TLS. Er mwyn sefydlu cyfathrebu diogel rhyngddynt, mae angen tystysgrif arnoch. Rydym yn cynhyrchu tystysgrif ac allwedd breifat mewn fformat PEM:

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

Ar Γ΄l gweithredu'r gorchymyn uchod, yn y cyfeiriadur /../elasticsearch bydd yr archif yn ymddangos elastig-stack-ca.zip. Y tu mewn iddo fe welwch dystysgrif ac allwedd breifat gydag estyniadau crt ΠΈ allweddol yn y drefn honno. Mae'n ddymunol eu gosod ar adnodd a rennir, y dylai fod mynediad iddo o bob nod yn y clwstwr.

Bellach mae angen ei dystysgrifau a'i allweddi preifat ei hun ar bob nod yn seiliedig ar y rhai yn y cyfeiriadur a rennir. Pan fydd y gorchymyn yn cael ei weithredu, gofynnir i chi osod cyfrinair. Gellir ychwanegu opsiynau -ip a -dns ychwanegol i wirio nodau cyfathrebu yn llawn.

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

O ganlyniad i weithredu'r gorchymyn, byddwn yn derbyn tystysgrif ac allwedd breifat yn y fformat PKCS #12, wedi'u diogelu gan gyfrinair. Mae'n aros i symud y ffeil a gynhyrchir p12 i'r cyfeiriadur ffurfweddu:

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

Ychwanegu cyfrinair at y dystysgrif yn y fformat p12 mewn storfa allweddi a storfa ymddiriedolaeth ar bob 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_password

Yn y hysbys eisoes elastigsearch.yml mae'n aros i ychwanegu llinellau gyda data am y dystysgrif:

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

Rydyn ni'n cychwyn pob nod Elasticsearch ac yn gweithredu cyrlio. Os gwnaed popeth yn gywir, bydd ymateb gyda sawl nod yn cael ei ddychwelyd:

[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

Mae opsiwn diogelwch arall - hidlo cyfeiriad IP (ar gael mewn tanysgrifiadau o'r lefel Aur). Yn caniatΓ‘u ichi greu rhestrau gwyn o gyfeiriadau IP y caniateir i nodau gael mynediad ohonynt.

Diogelwch data y tu allan i glwstwr Elasticsearch

Mae tu allan i'r clwstwr yn golygu cysylltu offerynnau allanol: Kibana, Logstash, Beats neu gleientiaid allanol eraill.

Elastig Wedi'i Gloi: Galluogi Opsiynau Diogelwch Clwstwr Elasticsearch ar gyfer Mynediad Tu Mewn a thu allan

I ffurfweddu cefnogaeth ar gyfer https (yn lle http), ychwanegwch linellau newydd at 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

Achos mae'r dystysgrif wedi'i diogelu gan gyfrinair, gadewch i ni ei hychwanegu at y storfa allweddi a'r truststore ar bob 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_password

Ar Γ΄l ychwanegu'r allweddi, mae'r nodau Elasticsearch yn barod i'w cysylltu trwy https. Nawr gellir eu lansio.

Y cam nesaf yw creu allwedd cysylltiad Kibana a'i ychwanegu at y ffurfweddiad. Yn seiliedig ar y dystysgrif, sydd eisoes wedi'i lleoli yn y cyfeiriadur a rennir, byddwn yn cynhyrchu tystysgrif mewn fformat PEM (nid yw PKCS # 12 Kibana, Logstash a Beats yn cefnogi eto):

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

Mae'n dal i fod i ddadbacio'r allweddi a gynhyrchir i ffolder ffurfweddu Kibana:

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

Mae'r allweddi yno, felly mae'n rhaid newid cyfluniad Kibana fel ei fod yn dechrau eu defnyddio. Yn y ffeil ffurfweddu kibana.yml, newid http i https ac ychwanegu llinellau gyda gosodiadau cysylltiad SSL. Mae'r tair llinell olaf yn sefydlu rhyngweithiad diogel rhwng porwr y defnyddiwr a 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

Felly, mae'r gosodiadau wedi'u cwblhau ac mae mynediad at ddata yn y clwstwr Elasticsearch wedi'i amgryptio.

Os oes gennych gwestiynau am y nodweddion Elastic Stack ar danysgrifiadau am ddim neu Γ’ thΓ’l, tasgau ar gyfer monitro neu greu system SIEM, gadewch gais i mewn ffurflen adborth ar ein gwefan.

Mwy o'n herthyglau am Elastic Stack ar HabrΓ©:

Deall Dysgu Peiriannau yn y Stack Elastig (aka Elasticsearch, aka ELK)

Sizing Elasticsearch

Ffynhonnell: hab.com

Ychwanegu sylw