ProHoster > блог > Администрација > Еластично под заклучување и клуч: овозможување безбедносни опции за кластерот на Elasticsearch за пристап од внатре и надвор
Еластично под заклучување и клуч: овозможување безбедносни опции за кластерот на Elasticsearch за пристап од внатре и надвор
Elastic Stack е добро позната алатка на пазарот на SIEM системи (всушност, не само тие). Може да собере многу податоци со различна големина, и чувствителни и не многу чувствителни. Не е сосема точно ако пристапот до самите елементи на Elastic Stack не е заштитен. Стандардно, сите Elastic елементи надвор од кутијата (Elasticsearch, Logstash, Kibana и Beats колекционери) работат на отворени протоколи. И во самата Кибана, автентикацијата е оневозможена. Сите овие интеракции може да се обезбедат и во оваа статија ќе ви кажеме како да го направите тоа. За погодност, го поделивме наративот на 3 семантички блока:
Модел за пристап до податоци заснован на улоги
Безбедност на податоците во кластерот Elasticsearch
Обезбедување податоци надвор од кластерот Elasticsearch
Детали под сечењето.
Модел за пристап до податоци заснован на улоги
Ако го инсталирате Elasticsearch и не го подесите на кој било начин, пристапот до сите индекси ќе биде отворен за секого. Па, или оние кои можат да користат навивам. За да се избегне ова, 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. Ако го извршите сега, ќе се појават грешки, па затоа е важно да креирате продавница за клучеви. Ова се прави во две команди (корисник кибана и лозинката внесена на чекорот за создавање лозинка во Elasticsearch):
Ако се е точно, Кибана ќе почне да бара најава и лозинка. Основната претплата вклучува модел за улоги заснован на внатрешни корисници. Почнувајќи со Gold, можете да поврзете надворешни системи за автентикација - LDAP, PKI, Active Directory и Single sign-on системи.
Правата за пристап до објекти во Elasticsearch исто така може да бидат ограничени. Меѓутоа, за да го сторите истото за документи или полиња, ќе ви треба платена претплата (овој луксуз започнува со нивото на Платинум). Овие поставки се достапни во интерфејсот Kibana или преку Безбедносен API. Можете да проверите преку веќе познатото мени Dev Tools:
Безбедност на податоците во кластерот Elasticsearch
Кога Elasticsearch работи во кластер (што е вообичаено), безбедносните поставки во кластерот стануваат важни. За безбедна комуникација помеѓу јазлите, Elasticsearch го користи протоколот TLS. За да поставите сигурна интеракција меѓу нив, потребен ви е сертификат. Ние генерираме сертификат и приватен клуч во PEM формат:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem
По извршувањето на командата погоре, во директориумот /../elasticsearch ќе се појави архива elastic-stack-ca.zip. Внатре во него ќе најдете сертификат и приватен клуч со екстензии крт и клучните соодветно. Препорачливо е да ги ставите на заеднички ресурс, кој треба да биде достапен од сите јазли во кластерот.
Секој јазол сега има потреба од свои сертификати и приватни клучеви врз основа на оние во споделениот директориум. Кога ја извршувате командата, ќе биде побарано да поставите лозинка. Можете да додадете дополнителни опции -ip и -dns за целосна верификација на интерактивни јазли.
Како резултат на извршувањето на командата, ќе добиеме сертификат и приватен клуч во формат PKCS#12, заштитени со лозинка. Останува само да се премести генерираната датотека p12 во директориумот за конфигурација:
Постои уште една безбедносна опција - филтрирање на IP адреса (достапно во претплати од ниво на злато). Ви овозможува да креирате бели списоци на 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 систем, оставете барање до формулар за повратни информации на нашата веб-страница.
Повеќе од нашите написи за Elastic Stack на Habré: