ProHoster > Блог > администрация > Elastic Locked Up: Активиране на опциите за сигурност на Elasticsearch Cluster за вътрешен и външен достъп
Elastic Locked Up: Активиране на опциите за сигурност на Elasticsearch Cluster за вътрешен и външен достъп
Elastic Stack е добре познат инструмент на пазара на SIEM системи (всъщност не само те). Той може да събира много различни по размер данни, както чувствителни, така и не много чувствителни. Не е напълно правилно, ако достъпът до самите елементи на Elastic Stack не е защитен. По подразбиране всички елементи на Elastic в кутия (колектори Elasticsearch, Logstash, Kibana и Beats) работят с отворени протоколи. И в самата Kibana удостоверяването е деактивирано. Всички тези взаимодействия могат да бъдат защитени и в тази статия ще ви кажем как да го направите. За удобство историята беше разделена на 3 семантични блока:
Ролеви модел за достъп до данни
Сигурност на данните в клъстер Elasticsearch
Сигурност на данните извън клъстер Elasticsearch
Детайли под кройката.
Ролеви модел за достъп до данни
Ако инсталирате Elasticsearch и не го настройвате по никакъв начин, достъпът до всички индекси ще бъде отворен за всички. Е, или тези, които могат да използват curl. За да избегне това, 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. Ако го стартирате сега, ще паднат грешки, така че е важно да създадете хранилище за ключове. Това се прави с две команди (потребител kibana и паролата, въведена в стъпката за създаване на пароли в Elasticsearch):
Ако всичко е правилно, Kibana ще започне да иска потребителско име и парола. В основен абонамент е наличен модел за подражание, базиран на вътрешни потребители. Започвайки със Gold, можете да свържете външни системи за удостоверяване - LDAP, PKI, Active Directory и системи за единично влизане.
Правата за достъп до обекти в Elasticsearch също могат да бъдат ограничени. Вярно е, че за да направите същото за документи или полета, ще ви трябва платен абонамент (този лукс започва с ниво Platinum). Тези настройки са достъпни в интерфейса на Kibana или чрез API за сигурност. Можете да проверите чрез вече познатото меню Dev Tools:
Когато Elasticsearch работи в клъстер (което е обичайно), настройките за сигурност в клъстера стават важни. За сигурна комуникация между възлите Elasticsearch използва протокола TLS. За да настроите сигурна комуникация между тях, ви е необходим сертификат. Ние генерираме сертификат и частен ключ в PEM формат:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem
След като изпълните командата по-горе, в директорията /../elasticsearch ще се появи архивът elastic-stack-ca.zip. В него ще намерите сертификат и частен ключ с разширения crt и ключ съответно. Желателно е да ги поставите на споделен ресурс, до който трябва да има достъп от всички възли на клъстера.
Всеки възел вече се нуждае от собствени сертификати и лични ключове, базирани на тези в споделената директория. Когато командата бъде изпълнена, ще бъдете помолени да зададете парола. Могат да се добавят допълнителни опции -ip и -dns за пълна проверка на комуникационните възли.
В резултат на изпълнение на командата ще получим сертификат и частен ключ във формат PKCS # 12, защитен с парола. Остава да преместите генерирания файл p12 към конфигурационната директория:
Има още една опция за сигурност - филтриране на IP адреси (предлага се в абонаменти от ниво Gold). Позволява ви да създавате бели списъци с IP адреси, от които възлите имат достъп.
Сигурност на данните извън клъстер Elasticsearch
Извън клъстера означава свързване на външни инструменти: Kibana, Logstash, Beats или други външни клиенти.
За да конфигурирате поддръжка за https (вместо http), добавете нови редове към elasticsearch.yml:
След добавяне на ключовете възлите на Elasticsearch са готови за свързване чрез https. Сега те могат да бъдат стартирани.
Следващата стъпка е да създадете ключ за свързване на Kibana и да го добавите към конфигурацията. Въз основа на сертификата, който вече се намира в споделената директория, ще генерираме сертификат във формат PEM (PKCS # 12 Kibana, Logstash и Beats все още не поддържат):
Ключовете са там, така че остава да променим конфигурацията на Kibana, така че да започне да ги използва. В конфигурационния файл kibana.yml променете http на https и добавете редове с настройки за SSL връзка. Последните три реда създават сигурно взаимодействие между браузъра на потребителя и Kibana.
Така настройките са завършени и достъпът до данните в клъстера Elasticsearch е криптиран.
Ако имате въпроси относно функциите на Elastic Stack при безплатни или платени абонаменти, задачи за наблюдение или създаване на SIEM система, оставете заявка в форма за обратна връзка на нашия уебсайт.