Elastic дар зери қулф ва калид: имкон додани имконоти амнияти кластери Elasticsearch барои дастрасӣ аз дохил ва берун

Elastic дар зери қулф ва калид: имкон додани имконоти амнияти кластери Elasticsearch барои дастрасӣ аз дохил ва берун

Elastic Stack як воситаи маъруф дар бозори системаҳои SIEM мебошад (воқеан, на танҳо онҳо). Он метавонад маълумоти зиёди андозаҳои гуногунро ҷамъ кунад, ҳам ҳассос ва ҳам чандон ҳассос нест. Ин комилан дуруст нест, агар дастрасӣ ба худи унсурҳои Elastic Stack ҳифз карда нашавад. Бо нобаёнӣ, ҳама унсурҳои берун аз қуттӣ Elastic (Elasticsearch, Logstash, Kibana ва Beats коллекторҳо) дар протоколҳои кушода кор мекунанд. Ва дар худи Кибана аутентификатсия ғайрифаъол аст. Ҳамаи ин муомилаҳоро метавон ҳифз кард ва дар ин мақола мо ба шумо мегӯям, ки чӣ тавр ин корро анҷом диҳед. Барои роҳат, мо ривоятро ба 3 блоки семантикӣ тақсим кардем:

  • Модели дастрасии маълумот дар асоси нақш
  • Амнияти маълумот дар дохили кластери Elasticsearch
  • Амнияти додаҳо берун аз кластери Elasticsearch

Тафсилот дар зери бурида.

Модели дастрасии маълумот дар асоси нақш

Агар шумо Elasticsearch-ро насб кунед ва онро ба ҳеҷ ваҷҳ танзим накунед, дастрасӣ ба ҳамаи индексҳо барои ҳама кушода хоҳад шуд. Хуб, ё онҳое, ки метавонанд curl истифода баранд. Барои роҳ надодан ба ин, Elasticsearch намунае дорад, ки аз обунаи Basic (он ройгон аст) дастрас аст. Схематикӣ он чизе монанди ин аст:

Elastic дар зери қулф ва калид: имкон додани имконоти амнияти кластери Elasticsearch барои дастрасӣ аз дохил ва берун

Дар расм чӣ аст

  • Истифодабарандагон ҳар як шахсе ҳастанд, ки метавонанд бо истифода аз маълумоти худ ворид шаванд.
  • Нақш маҷмӯи ҳуқуқҳо мебошад.
  • Ҳуқуқҳо маҷмӯи имтиёзҳо мебошанд.
  • Имтиёзҳо ин иҷозатҳо барои навиштан, хондан, нест кардан ва ғайра мебошанд. (Рӯйхати пурраи имтиёзҳо)
  • Манбаъҳо индексҳо, ҳуҷҷатҳо, майдонҳо, корбарон ва дигар объектҳои нигаҳдорӣ мебошанд (намунаи нақш барои баъзе захираҳо танҳо бо обунаҳои пулакӣ дастрас аст).

Ба таври нобаёнӣ Elasticsearch дорад истифодабарандагони қуттиҳо, ки ба он вобаста карда шудаанд нақшҳои қуттӣ. Вақте ки шумо танзимоти амниятро фаъол мекунед, шумо метавонед фавран ба истифодаи онҳо шурӯъ кунед.

Барои фаъол кардани амният дар танзимоти Elasticsearch, шумо бояд онро ба файли конфигуратсия илова кунед (бо нобаёнӣ ин elasticsearch/config/elasticsearch.yml) хати нав:

xpack.security.enabled: true

Пас аз тағир додани файли конфигуратсия, Elasticsearch-ро оғоз кунед ё аз нав оғоз кунед, то тағиротҳо эътибор пайдо кунанд. Қадами навбатӣ таъин кардани паролҳо ба корбарони қуттиҳо мебошад. Биёед ин корро ба таври интерактивӣ бо истифода аз фармони зер иҷро кунем:

[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

Шумо метавонед худро пушти сар кунед - танзимот дар тарафи Elasticsearch анҷом ёфтанд. Ҳоло вақти танзим кардани Kibana аст. Агар шумо онро ҳозир иҷро кунед, хатогиҳо пайдо мешаванд, бинобар ин эҷод кардани мағозаи калидӣ муҳим аст. Ин дар ду фармон анҷом дода мешавад (user кибана ва пароле, ки дар қадами эҷоди парол дар Elasticsearch ворид шудааст):

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

Агар ҳама чиз дуруст бошад, Кибана дархости логин ва паролро оғоз мекунад. Обунаи Basic дорои намунаи нақшест, ки ба корбарони дохилӣ асос ёфтааст. Аз Gold сар карда, шумо метавонед системаҳои аутентификатсияи берунаро пайваст кунед - LDAP, PKI, Active Directory ва системаҳои ягонаи воридшавӣ.

Elastic дар зери қулф ва калид: имкон додани имконоти амнияти кластери Elasticsearch барои дастрасӣ аз дохил ва берун

Ҳуқуқҳои дастрасӣ ба объектҳои дохили Elasticsearch низ метавонанд маҳдуд карда шаванд. Аммо, барои ҳамин кор барои ҳуҷҷатҳо ё майдонҳо, ба шумо обунаи пулакӣ лозим аст (ин боҳашамат аз сатҳи Platinum оғоз мешавад). Ин танзимот дар интерфейси Kibana ё тавассути дастрас мебошанд API Амният. Шумо метавонед тавассути менюи аллакай шинос Tools Dev тафтиш кунед:

Эҷоди нақш

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"
  }
}

Амнияти маълумот дар дохили кластери Elasticsearch

Вақте ки Elasticsearch дар кластер кор мекунад (ки маъмул аст), танзимоти амният дар кластер муҳим мешаванд. Барои иртиботи бехатар байни гиреҳҳо, Elasticsearch протоколи TLS-ро истифода мебарад. Барои танзими ҳамкории бехатар байни онҳо, ба шумо шаҳодатнома лозим аст. Мо сертификат ва калиди махфиро дар формати PEM тавлид мекунем:

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

Пас аз иҷрои фармони боло, дар директория /../elasticsearch архив пайдо мешавад elastic-stack-ca.zip. Дар дохили он шумо сертификат ва калиди хусусиро бо васеъшавӣ хоҳед ёфт crt и калид мутаносибан. Тавсия дода мешавад, ки онҳоро дар як манбаи муштарак ҷойгир кунед, ки бояд аз ҳама гиреҳҳои кластер дастрас бошад.

Ҳар як гиреҳ ҳоло ба сертификатҳо ва калидҳои хусусии худ дар асоси онҳое, ки дар феҳристи муштарак доранд, ниёз дорад. Ҳангоми иҷро кардани фармон аз шумо талаб карда мешавад, ки паролро таъин кунед. Шумо метавонед имконоти иловагии -ip ва -dns барои тафтиши пурраи гиреҳҳои мутақобила илова кунед.

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

Дар натиҷаи иҷрои фармон мо сертификат ва калиди махфиро дар формати PKCS#12 мегирем, ки бо парол ҳифз шудааст. Ҳама чизи боқимонда интиқол додани файли тавлидшуда аст p12 ба директорияи конфигуратсия:

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

Ба сертификат дар формат парол илова кунед p12 дар мағозаи калидҳо ва боварӣ дар ҳар як гиреҳ:

[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

Аллакай маълум elasticsearch.yml Танҳо илова кардани сатрҳо бо маълумоти сертификат боқӣ мемонад:

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

Мо ҳама гиреҳҳои Elasticsearch-ро оғоз мекунем ва иҷро мекунем лаблабу. Агар ҳама чиз дуруст анҷом дода шуда бошад, ҷавоб бо якчанд гиреҳ бармегардад:

[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

Варианти дигари амният вуҷуд дорад - филтр кардани суроғаи IP (дар обунаҳо аз сатҳи тиллоӣ дастрас аст). Ба шумо имкон медиҳад, ки рӯйхати сафеди суроғаҳои IP-ро эҷод кунед, ки аз онҳо ба шумо иҷозати дастрасӣ ба гиреҳҳо дода мешавад.

Амнияти додаҳо берун аз кластери Elasticsearch

Берун аз кластер маънои пайваст кардани асбобҳои беруна дорад: Kibana, Logstash, Beats ё дигар мизоҷони беруна.

Elastic дар зери қулф ва калид: имкон додани имконоти амнияти кластери Elasticsearch барои дастрасӣ аз дохил ва берун

Барои танзим кардани дастгирии https (ба ҷои http), ба 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

Зеро Шаҳодатнома бо парол муҳофизат карда мешавад, онро ба мағозаи калидҳо ва мағозаи боварӣ дар ҳар як гиреҳ илова кунед:

[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

Пас аз илова кардани калидҳо, гиреҳҳои Elasticsearch барои пайваст шудан тавассути https омодаанд. Акнун онҳо метавонанд ба кор андохта шаванд.

Қадами навбатӣ эҷод кардани калид барои пайваст кардани Kibana ва илова кардани он ба конфигуратсия мебошад. Дар асоси сертификате, ки аллакай дар феҳристи муштарак ҷойгир аст, мо сертификатро дар формати PEM тавлид хоҳем кард (PKCS#12 Kibana, Logstash ва Beats ҳоло дастгирӣ намекунанд):

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

Танҳо кушодани калидҳои сохташуда ба ҷузвдон бо конфигуратсияи Kibana боқӣ мемонад:

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

Калидҳо дар он ҷо ҳастанд, бинобар ин танҳо тағир додани конфигуратсияи Kibana боқӣ мемонад, то ки он ба истифодаи онҳо шурӯъ кунад. Дар файли конфигуратсияи kibana.yml, http-ро ба https иваз кунед ва сатрҳоро бо танзимоти пайвасти SSL илова кунед. Се сатри охир алоқаи бехатарро байни браузери корбар ва 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

Ҳамин тариқ, танзимот анҷом дода мешавад ва дастрасӣ ба маълумот дар кластери Elasticsearch рамзгузорӣ мешавад.

Агар шумо дар бораи имкониятҳои Elastic Stack дар обунаҳои ройгон ё пулакӣ, мониторинги вазифаҳо ё эҷоди системаи SIEM савол дошта бошед, дархостро ба шакли бозгашт дар сайти мо.

Бештар аз мақолаҳои мо дар бораи Elastic Stack дар Habré:

Фаҳмидани омӯзиши мошинҳо дар стеки Elastic (aka Elasticsearch, aka ELK)

Андозаи Elasticsearch

Манбаъ: will.com

Илова Эзоҳ