අගුලු සහ යතුර යටතේ ඉලාස්ටික්: ඇතුළත සහ පිටත සිට ප්‍රවේශය සඳහා Elasticsearch පොකුරු ආරක්ෂණ විකල්ප සක්‍රීය කිරීම

අගුලු සහ යතුර යටතේ ඉලාස්ටික්: ඇතුළත සහ පිටත සිට ප්‍රවේශය සඳහා Elasticsearch පොකුරු ආරක්ෂණ විකල්ප සක්‍රීය කිරීම

ඉලාස්ටික් ස්ටැක් යනු SIEM පද්ධති වෙළඳපොලේ ප්‍රසිද්ධ මෙවලමකි (ඇත්ත වශයෙන්ම, ඒවා පමණක් නොවේ). එයට සංවේදී සහ ඉතා සංවේදී නොවන විවිධ ප්‍රමාණයේ දත්ත රාශියක් රැස් කළ හැක. ඉලාස්ටික් ස්ටැක් මූලද්‍රව්‍ය වෙත ප්‍රවේශය ආරක්ෂා කර නොමැති නම් එය සම්පූර්ණයෙන්ම නිවැරදි නොවේ. පෙරනිමියෙන්, සියලුම Elastic out-of-the-box මූලද්‍රව්‍ය (Elasticsearch, Logstash, Kibana සහ Beats එකතුකරන්නන්) විවෘත ප්‍රොටෝකෝල මත ධාවනය වේ. තවද කිබානා තුළම සත්‍යාපනය අක්‍රීය කර ඇත. මෙම සියලු අන්තර්ක්‍රියා සුරක්ෂිත කළ හැකි අතර මෙය කරන්නේ කෙසේදැයි මෙම ලිපියෙන් අපි ඔබට කියමු. පහසුව සඳහා, අපි කථාව අර්ථකථන කොටස් 3 කට බෙදා ඇත:

  • භූමිකාව පදනම් වූ දත්ත ප්‍රවේශ ආකෘතිය
  • Elasticsearch පොකුරක් තුළ දත්ත ආරක්ෂාව
  • Elasticsearch පොකුරකින් පිටත දත්ත සුරක්ෂිත කිරීම

කප්පාදුව යටතේ විස්තර.

භූමිකාව පදනම් වූ දත්ත ප්‍රවේශ ආකෘතිය

ඔබ Elasticsearch ස්ථාපනය කර එය කිසිදු ආකාරයකින් සුසර නොකරන්නේ නම්, සියලු දර්ශක වෙත ප්‍රවේශය සෑම කෙනෙකුටම විවෘත වේ. හොඳයි, හෝ curl භාවිතා කළ හැකි අය. මෙය වලක්වා ගැනීම සඳහා, 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 හි මුරපද සෑදීමේ පියවරේදී ඇතුළත් කළ මුරපදය):

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

සියල්ල නිවැරදි නම්, කිබානා පිවිසුම සහ මුරපදය ඉල්ලා සිටීමට පටන් ගනී. මූලික දායකත්වයට අභ්‍යන්තර පරිශීලකයින් මත පදනම් වූ ආදර්ශයක් ඇතුළත් වේ. රන් වලින් පටන් ගෙන, ඔබට බාහිර සත්‍යාපන පද්ධති සම්බන්ධ කළ හැක - LDAP, PKI, Active Directory සහ Single sign-on systems.

අගුලු සහ යතුර යටතේ ඉලාස්ටික්: ඇතුළත සහ පිටත සිට ප්‍රවේශය සඳහා Elasticsearch පොකුරු ආරක්ෂණ විකල්ප සක්‍රීය කිරීම

Elasticsearch තුළ ඇති වස්තූන් වෙත ප්‍රවේශ හිමිකම් ද සීමා කළ හැක. කෙසේ වෙතත්, ලේඛන හෝ ක්ෂේත්‍ර සඳහාද එසේ කිරීමට, ඔබට ගෙවන දායකත්වයක් අවශ්‍ය වනු ඇත (මෙම සුඛෝපභෝගීත්වය ප්ලැටිනම් මට්ටමෙන් ආරම්භ වේ). මෙම සිටුවම් Kibana අතුරුමුහුණත හෝ හරහා ලබා ගත හැක ආරක්ෂක API. ඔබට දැනටමත් හුරුපුරුදු 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 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

අපි සියලුම ඉලාස්ටික් සෙවුම් නෝඩ් දියත් කර ක්‍රියාත්මක කරන්නෙමු හැඬලී ය. සෑම දෙයක්ම නිවැරදිව සිදු කර ඇත්නම්, නෝඩ් කිහිපයක් සමඟ ප්රතිචාරයක් ලබා දෙනු ඇත:

[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 හෝ වෙනත් බාහිර සේවාලාභීන්.

අගුලු සහ යතුර යටතේ ඉලාස්ටික්: ඇතුළත සහ පිටත සිට ප්‍රවේශය සඳහා 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

යතුරු එකතු කිරීමෙන් පසු, https හරහා සම්බන්ධ වීමට Elasticsearch නෝඩ් සූදානම් වේ. දැන් ඒවා දියත් කළ හැකිය.

මීලඟ පියවර වන්නේ කිබානා සම්බන්ධ කිරීමට යතුරක් සාදා එය වින්‍යාසයට එක් කිරීමයි. හවුල් නාමාවලියෙහි දැනටමත් පිහිටා ඇති සහතිකය මත පදනම්ව, අපි 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

ඉතිරිව ඇත්තේ කිබානා වින්‍යාසය සමඟ සාදන ලද යතුරු ෆෝල්ඩරයට ඉවත් කිරීම පමණි:

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

යතුරු එහි ඇත, එබැවින් ඉතිරිව ඇත්තේ කිබානා වින්‍යාසය වෙනස් කිරීම පමණක් වන අතර එමඟින් ඒවා භාවිතා කිරීම ආරම්භ වේ. kibana.yml වින්‍යාස ගොනුව තුළ, http වෙනස් කරන්න https වෙත සහ SSL සම්බන්ධතා සැකසුම් සමඟ රේඛා එක් කරන්න. අවසාන පේළි තුන පරිශීලකයාගේ බ්‍රවුසරය සහ කිබානා අතර ආරක්ෂිත සන්නිවේදනය වින්‍යාස කරයි.

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 හි හැකියාවන් පිළිබඳව ප්‍රශ්න තිබේ නම්, වෙත ඉල්ලීමක් තබන්න ප්රතිපෝෂණ පෝරමය අපගේ වෙබ් අඩවියේ.

Habré මත Elastic Stack පිළිබඳ අපගේ තවත් ලිපි:

ඉලාස්ටික් ස්ටැක් තුළ යන්ත්‍ර ඉගෙනීම අවබෝධ කර ගැනීම (එනම් ඉලාස්ටික් සෙවුම්, හෙවත් ELK)

ඉලාස්ටික් සෙවුම් ප්රමාණය

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න