ላስቲክ የተቆለፈ፡ የElasticsearch ክላስተር ደህንነት አማራጮችን ለውስጥም ሆነ ለውጭ መዳረሻ ማንቃት

ላስቲክ የተቆለፈ፡ የElasticsearch ክላስተር ደህንነት አማራጮችን ለውስጥም ሆነ ለውጭ መዳረሻ ማንቃት

Elastic Stack በ SIEM ስርዓቶች ገበያ ውስጥ በጣም የታወቀ መሳሪያ ነው (በእውነቱ, እነሱ ብቻ አይደሉም). በጣም ብዙ የተለያየ መጠን ያለው ውሂብ ሊሰበስብ ይችላል፣ ሁለቱም ሚስጥራዊነት ያላቸው እና በጣም ሚስጥራዊነት የሌላቸው። የ Elastic Stack ኤለመንቶችን ማግኘት እራሳቸው ካልተጠበቁ ሙሉ በሙሉ ትክክል አይደለም. በነባሪ፣ ሁሉም የላስቲክ ቦክስ ክፍሎች (Elasticsearch፣ Logstash፣ Kibana እና Beats ሰብሳቢዎች) በክፍት ፕሮቶኮሎች ላይ ይሰራሉ። እና በኪባና ራሱ፣ ማረጋገጥ ተሰናክሏል። እነዚህ ሁሉ ግንኙነቶች ሊጠበቁ ይችላሉ, እና በዚህ ጽሑፍ ውስጥ እንዴት እንደሚያደርጉት እንነግርዎታለን. ለመመቻቸት ታሪኩ በ3 የትርጉም ብሎኮች ተከፍሏል።

  • የመረጃ ተደራሽነት ሞዴል
  • የውሂብ ደህንነት በ Elasticsearch ዘለላ ውስጥ
  • የውሂብ ደህንነት ከ 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 በኩል ያሉት ቅንብሮች ተከናውነዋል. አሁን ተራው ኪባናን ለማዘጋጀት ነው። አሁን ካስኬዱ, ስህተቶች ይወድቃሉ, ስለዚህ የቁልፍ ማከማቻ መፍጠር አስፈላጊ ነው. ይህ በሁለት ትዕዛዞች (ተጠቃሚ ኪባና እና በElasticsearch ውስጥ የይለፍ ቃሎችን በመፍጠር ደረጃ ላይ የገባው የይለፍ ቃል፡-

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

ሁሉም ነገር ትክክል ከሆነ ኪባና የተጠቃሚ ስም እና የይለፍ ቃል መጠየቅ ይጀምራል። በመሠረታዊ የደንበኝነት ምዝገባ ውስጥ፣ በውስጣዊ ተጠቃሚዎች ላይ የተመሰረተ አርአያ አለ። ከወርቅ ጀምሮ የውጫዊ የማረጋገጫ ስርዓቶችን - LDAP፣ PKI፣ Active Directory እና ነጠላ የመለያ መግቢያ ስርዓቶችን ማገናኘት ይችላሉ።

ላስቲክ የተቆለፈ፡ የElasticsearch ክላስተር ደህንነት አማራጮችን ለውስጥም ሆነ ለውጭ መዳረሻ ማንቃት

በ Elasticsearch ውስጥ ላሉ ነገሮች የመዳረስ መብቶች እንዲሁ ሊገደቡ ይችላሉ። እውነት ነው, ለሰነዶች ወይም መስኮች ተመሳሳይ ነገር ለማድረግ, የሚከፈልበት የደንበኝነት ምዝገባ ያስፈልግዎታል (ይህ የቅንጦት ደረጃ በፕላቲኒየም ደረጃ ይጀምራል). እነዚህ ቅንብሮች በኪባና በይነገጽ ወይም በ በኩል ይገኛሉ የደህንነት ኤፒአይ. ቀድሞውንም በሚታወቀው የDev Tools ምናሌ ውስጥ መመልከት ትችላለህ፡-

ሚና ይፍጠሩ

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 ማህደሩ ይታያል ላስቲክ-ቁልል-ca.zip. በውስጡም የምስክር ወረቀት እና የግል ቁልፍ ከቅጥያዎች ጋር ያገኛሉ አርትዕ и ቁልፍ በቅደም ተከተል. በሁሉም የክላስተር አንጓዎች መድረስ በሚኖርበት የጋራ መገልገያ ላይ መዘርጋት ጥሩ ነው.

እያንዳንዱ መስቀለኛ መንገድ አሁን በተጋራው ማውጫ ውስጥ ባሉት መሰረት የራሱ የምስክር ወረቀቶች እና የግል ቁልፎች ያስፈልገዋል። ትዕዛዙ ሲፈፀም, የይለፍ ቃል እንዲያዘጋጁ ይጠየቃሉ. የመገናኛ ኖዶችን ሙሉ በሙሉ ለማረጋገጥ ተጨማሪ አማራጮች -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 nodes እንጀምራለን እና እንፈጽማለን። የተለጠፈ. ሁሉም ነገር በትክክል ከተሰራ ፣ በርካታ አንጓዎች ያሉት ምላሽ ይመለሳል።

[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

ሌላ የደህንነት አማራጭ አለ - የአይፒ አድራሻ ማጣሪያ (ከወርቅ ደረጃ በደንበኝነት ምዝገባዎች ውስጥ ይገኛል)። አንጓዎች እንዲደርሱባቸው የሚፈቀድላቸው የአይፒ አድራሻዎች ነጭ ዝርዝሮችን እንዲፈጥሩ ይፈቅድልዎታል።

የውሂብ ደህንነት ከ Elasticsearch ዘለላ ውጭ

ከጥቅል ውጭ ማለት ውጫዊ መሳሪያዎችን ማገናኘት ማለት ነው: ኪባና, ሎግስታሽ, ቢትስ ወይም ሌሎች የውጭ ደንበኞች.

ላስቲክ የተቆለፈ፡ የ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 በኩል ለመገናኘት ዝግጁ ናቸው። አሁን ማስጀመር ይችላሉ።

ቀጣዩ ደረጃ የኪባና ግንኙነት ቁልፍ መፍጠር እና ወደ ውቅር ማከል ነው። በእውቅና ማረጋገጫው ላይ በመመስረት፣ አስቀድሞ በተጋራው ማውጫ ውስጥ፣ በ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.yml ውቅር ፋይል ውስጥ http ወደ https ይቀይሩ እና መስመሮችን ከኤስኤስኤል ግንኙነት ቅንብሮች ጋር ያክሉ። የመጨረሻዎቹ ሶስት መስመሮች በተጠቃሚው አሳሽ እና በኪባና መካከል ደህንነቱ የተጠበቀ መስተጋብር አዘጋጅተዋል።

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 ክላስተር ውስጥ ያለው የውሂብ መዳረሻ ተመስጥሯል።

በነጻ ወይም በሚከፈልባቸው የደንበኝነት ምዝገባዎች፣ ተግባራትን በመቆጣጠር ወይም የSIEM ስርዓት ስለመፍጠር ስለላስቲክ ቁልል ባህሪያት ጥያቄዎች ካሉዎት በዚህ ውስጥ ጥያቄ ይተዉ የግብረመልስ ቅጽ በዌብሳይታችን ላይ.

ስለ Elastic Stack on Habré ተጨማሪ ጽሑፎቻችን፡-

በ Elastic Stack ውስጥ የማሽን መማርን መረዳት (በ Elasticsearch፣ aka ELK)

የላስቲክ ፍለጋን መጠን መስጠት

ምንጭ: hab.com

አስተያየት ያክሉ