Еластична под кључем: омогућавање сигурносних опција Еластицсеарцх кластера за приступ изнутра и споља

Еластична под кључем: омогућавање сигурносних опција Еластицсеарцх кластера за приступ изнутра и споља

Еластиц Стацк је добро познат алат на тржишту СИЕМ система (заправо, не само њима). Може да прикупи много података различите величине, како осетљивих тако и не баш осетљивих. Није сасвим исправно ако приступ самим елементима Еластиц Стацк није заштићен. Подразумевано, сви Еластиц елементи ван кутије (Еластицсеарцх, Логстасх, Кибана и Беатс колектори) раде на отвореним протоколима. А у самој Кибани аутентификација је онемогућена. Све ове интеракције се могу обезбедити и у овом чланку ћемо вам рећи како то да урадите. Ради погодности, поделили смо наратив у 3 семантичка блока:

  • Модел приступа подацима заснован на улози
  • Сигурност података унутар Еластицсеарцх кластера
  • Обезбеђивање података изван Еластицсеарцх кластера

Детаљи испод реза.

Модел приступа подацима заснован на улози

Ако инсталирате Еластицсеарцх и ни на који начин га не подесите, приступ свим индексима ће бити отворен за све. Па, или они који могу да користе цурл. Да би се ово избегло, Еластицсеарцх има узор који је доступан почевши од основне претплате (која је бесплатна). Шематски то изгледа отприлике овако:

Еластична под кључем: омогућавање сигурносних опција Еластицсеарцх кластера за приступ изнутра и споља

Шта је на слици

  • Корисници су сви који могу да се пријаве користећи своје акредитиве.
  • Улога је скуп права.
  • Права су скуп привилегија.
  • Привилегије су дозволе за писање, читање, брисање итд. (Потпуна листа привилегија)
  • Ресурси су индекси, документи, поља, корисници и други ентитети за складиштење (узор за неке ресурсе је доступан само уз плаћене претплате).

Еластицсеарцх подразумевано има корисници кутије, за који су причвршћени кутије улоге. Када омогућите безбедносна подешавања, можете одмах почети да их користите.

Да бисте омогућили безбедност у подешавањима Еластицсеарцх-а, потребно је да га додате у конфигурациону датотеку (подразумевано је ово еластицсеарцх/цонфиг/еластицсеарцх.имл) Нова линија:

xpack.security.enabled: true

Након промене конфигурационе датотеке, покрените или поново покрените Еластицсеарцх да би промене ступиле на снагу. Следећи корак је додељивање лозинки корисницима кутије. Урадимо ово интерактивно користећи наредбу испод:

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

Проверавамо:

[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

Можете се тапшати по леђима - подешавања на страни Еластицсеарцх су завршена. Сада је време да конфигуришете Кибану. Ако га сада покренете, појавиће се грешке, па је важно да направите складиште кључева. Ово се ради у две команде (усер кибана и лозинка унета у кораку креирања лозинке у Еластицсеарцх-у):

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

Ако је све исправно, Кибана ће почети да тражи логин и лозинку. Основна претплата укључује узор заснован на интерним корисницима. Почевши од Голд, можете да повежете спољне системе за аутентификацију - ЛДАП, ПКИ, Ацтиве Дирецтори и системе за једнократну пријаву.

Еластична под кључем: омогућавање сигурносних опција Еластицсеарцх кластера за приступ изнутра и споља

Права приступа објектима унутар Еластицсеарцх-а такође могу бити ограничена. Међутим, да бисте урадили исто за документе или поља, биће вам потребна плаћена претплата (овај луксуз почиње са Платинум нивоом). Ова подешавања су доступна у интерфејсу Кибана или преко Сецурити АПИ. Можете проверити кроз већ познати мени Дев Тоолс:

Креирање улоге

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

Креирање корисника

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

Сигурност података унутар Еластицсеарцх кластера

Када Еластицсеарцх ради у кластеру (што је уобичајено), безбедносне поставке унутар кластера постају важне. За безбедну комуникацију између чворова, Еластицсеарцх користи ТЛС протокол. Да бисте успоставили безбедну интеракцију између њих, потребан вам је сертификат. Генеришемо сертификат и приватни кључ у ПЕМ формату:

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

Након извршења горње команде, у директоријуму /../еластицсеарцх архива ће се појавити еластиц-стацк-ца.зип. Унутар њега ћете пронаћи сертификат и приватни кључ са екстензијама црт и кључ редом. Препоручљиво је да их ставите на заједнички ресурс, који треба да буде доступан са свих чворова у кластеру.

Сваки чвор сада треба своје сертификате и приватне кључеве на основу оних у дељеном директоријуму. Када извршавате команду, од вас ће се тражити да поставите лозинку. Можете додати додатне опције -ип и -днс за потпуну верификацију чворова у интеракцији.

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

Као резултат извршења команде, добићемо сертификат и приватни кључ у формату ПКЦС#12, заштићен лозинком. Остаје само да преместите генерисану датотеку пКСНУМКС у директоријум конфигурације:

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

Додајте лозинку сертификату у формату пКСНУМКС у складишту кључева и складишту поверења на сваком чвору:

[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

Већ познато еластицсеарцх.имл Остаје само да додате редове са подацима сертификата:

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

Покрећемо све Еластицсеарцх чворове и извршавамо Цурл. Ако је све урађено исправно, биће враћен одговор са неколико чворова:

[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

Постоји још једна безбедносна опција - филтрирање ИП адреса (доступно у претплатама са Голд нивоа). Омогућава вам да креирате беле листе ИП адреса са којих вам је дозвољен приступ чворовима.

Обезбеђивање података изван Еластицсеарцх кластера

Изван кластера подразумева повезивање екстерних алата: Кибана, Логстасх, Беатс или других екстерних клијената.

Еластична под кључем: омогућавање сигурносних опција Еластицсеарцх кластера за приступ изнутра и споља

Да бисте конфигурисали подршку за хттпс (уместо хттп), додајте нове редове у еластицсеарцх.имл:

xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: elastic-certificates.p12
xpack.security.http.ssl.truststore.path: elastic-certificates.p12

Јер Сертификат је заштићен лозинком, додајте га у складиште кључева и складиште поверења на сваком чвору:

[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

Након додавања кључева, Еластицсеарцх чворови су спремни за повезивање преко хттпс. Сада се могу покренути.

Следећи корак је креирање кључа за повезивање Кибана и додавање у конфигурацију. На основу сертификата који се већ налази у дељеном директоријуму, генерисаћемо сертификат у ПЕМ формату (ПКЦС#12 Кибана, Логстасх и Беатс још увек не подржавају):

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

Остаје само да распакујете креиране кључеве у фасциклу са конфигурацијом Кибана:

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

Кључеви су ту, тако да остаје само да промените конфигурацију Кибане тако да почне да их користи. У конфигурационој датотеци кибана.имл промените хттп у хттпс и додајте линије са подешавањима ССЛ везе. Последње три линије конфигуришу безбедну комуникацију између претраживача корисника и Кибане.

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

Тиме су подешавања завршена и приступ подацима у Еластицсеарцх кластеру је шифрован.

Ако имате питања о могућностима Еластиц Стацк-а на бесплатним или плаћеним претплатама, задацима надгледања или креирању СИЕМ система, оставите захтев на образац за повратне информације на нашој веб локацији.

Више наших чланака о Еластиц Стацк-у на Хабре:

Разумевање машинског учења у еластичном стеку (ака Еластицсеарцх, ака ЕЛК)

Еластицсеарцх димензионисање

Извор: ввв.хабр.цом

Додај коментар