ProHoster > Օրագիր > Վարչակազմը > Elastic under lock and key. Elasticsearch կլաստերի անվտանգության ընտրանքների հնարավորություն ներսից և դրսից մուտք գործելու համար
Elastic under lock and key. Elasticsearch կլաստերի անվտանգության ընտրանքների հնարավորություն ներսից և դրսից մուտք գործելու համար
Elastic Stack-ը հայտնի գործիք է SIEM համակարգերի շուկայում (իրականում ոչ միայն դրանք): Այն կարող է հավաքել շատ տարբեր չափերի տվյալներ՝ և՛ զգայուն, և՛ ոչ շատ զգայուն: Ամբողջովին ճիշտ չէ, եթե Elastic Stack տարրերին հասանելիությունը պաշտպանված չէ: Լռելյայնորեն, բոլոր Elastic-ից դուրս տարրերը (Elasticsearch, Logstash, Kibana և Beats կոլեկցիոներներ) աշխատում են բաց արձանագրություններով: Իսկ հենց Kibana-ում իսկորոշումն անջատված է: Այս բոլոր փոխազդեցությունները կարող են ապահովվել, և այս հոդվածում մենք ձեզ կասենք, թե ինչպես դա անել: Հարմարության համար մենք պատմությունը բաժանեցինք 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-ն: Եթե այն հիմա գործարկեք, սխալներ կհայտնվեն, ուստի կարևոր է ստեղծել բանալիների պահեստ: Սա արվում է երկու հրամանով (user կիբանա և գաղտնաբառը, որը մուտքագրվել է Elasticsearch-ում գաղտնաբառի ստեղծման քայլում):
Եթե ամեն ինչ ճիշտ է, Kibana-ն կսկսի մուտքի և գաղտնաբառ խնդրել: Հիմնական բաժանորդագրությունը ներառում է դերային մոդել, որը հիմնված է ներքին օգտագործողների վրա: Սկսած Gold-ից՝ դուք կարող եք միացնել արտաքին վավերացման համակարգեր՝ LDAP, PKI, Active Directory և Single sign-on համակարգեր:
Elasticsearch-ի ներսում գտնվող օբյեկտների մուտքի իրավունքները նույնպես կարող են սահմանափակվել: Այնուամենայնիվ, փաստաթղթերի կամ դաշտերի համար նույնն անելու համար ձեզ հարկավոր կլինի վճարովի բաժանորդագրություն (այս շքեղությունը սկսվում է Platinum մակարդակից): Այս կարգավորումները հասանելի են Kibana ինտերֆեյսում կամ միջոցով Անվտանգության API. Դուք կարող եք ստուգել արդեն ծանոթ Dev Tools ցանկի միջոցով.
Տվյալների անվտանգությունը Elasticsearch կլաստերի շրջանակներում
Երբ 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 համակարգի ստեղծման հնարավորությունների վերաբերյալ, թողեք հարցումը հետևյալ հասցեով. հետադարձ կապի ձև մեր կայքում:
Habré-ում Elastic Stack-ի մասին մեր ավելի շատ հոդվածներ.