ื’ื•ืžืข ืื•ื ื˜ืขืจ ืฉืœืึธืก ืื•ืŸ ืฉืœื™ืกืœ: ืขื ื™ื™ื‘ืึทืœื™ื ื’ Elasticsearch ืงื ื•ื™ืœ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืึธืคึผืฆื™ืขืก ืคึฟืึทืจ ืึทืงืกืขืก ืคึฟื•ืŸ ื™ืŸ ืื•ืŸ ืึทืจื•ื™ืก

ื’ื•ืžืข ืื•ื ื˜ืขืจ ืฉืœืึธืก ืื•ืŸ ืฉืœื™ืกืœ: ืขื ื™ื™ื‘ืึทืœื™ื ื’ Elasticsearch ืงื ื•ื™ืœ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืึธืคึผืฆื™ืขืก ืคึฟืึทืจ ืึทืงืกืขืก ืคึฟื•ืŸ ื™ืŸ ืื•ืŸ ืึทืจื•ื™ืก

Elastic Stack ืื™ื– ืึท ื‘ืึทื•ื•ื•ืกื˜ ื’ืขืฆื™ื™ึทื’ ืื™ืŸ ื“ื™ SIEM ืกื™ืกื˜ืขืžืขืŸ ืžืึทืจืง (ืึทืงืฉืœื™, ื ื™ื˜ ื‘ืœื•ื™ื– ื–ื™ื™). ืขืก ืงืขื ืขืŸ ืงืœื™ื™ึทื‘ืŸ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข-ืกื™ื™ื–ื“ ื“ืึทื˜ืŸ, ื‘ื™ื™ื“ืข ืฉืคึผื™ืจืขื•ื•ื“ื™ืง ืื•ืŸ ื ื™ืฉื˜ ื–ื™ื™ืขืจ ืฉืคึผื™ืจืขื•ื•ื“ื™ืง. ืขืก ืื™ื– ื ื™ืฉื˜ ื’ืึธืจ ืจื™ื›ื˜ื™ืง ืื•ื™ื‘ ืึทืงืกืขืก ืฆื• ื“ื™ Elastic Stack ืขืœืขืžืขื ื˜ืŸ ื–ื™ืš ืื™ื– ื ื™ืฉื˜ ืคึผืจืึธื˜ืขืงื˜ืขื“. ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ืึทืœืข ืขืœืึทืกื˜ื™ืง ืื•ื™ืก-ืคื•ืŸ-ื“ืขื-ืงืขืกื˜ืœ ืขืœืขืžืขื ื˜ืŸ (Elasticsearch, Logstash, Kibana ืื•ืŸ Beats ืงืึทืœืขืงื˜ืขืจื–) ืœื•ื™ืคืŸ ืื•ื™ืฃ ืึธืคึฟืŸ ืคึผืจืึธื˜ืึธืงืึธืœืก. ืื•ืŸ ืื™ืŸ Kibana ื–ื™ืš, ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืื™ื– ืคืึทืจืงืจื™ืคึผืœื˜. ืึทืœืข ื“ื™ ื™ื ื˜ืขืจืึทืงืฉืึทื ื– ืงืขื ืขืŸ ื–ื™ื™ืŸ ืกื™ืงื™ื•ืจื“ ืื•ืŸ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืžื™ืจ ื•ื•ืขื˜ ื–ืึธื’ืŸ ืื™ืจ ื•ื•ื™ ืฆื• ื˜ืึธืŸ ื“ืึธืก. ืคึฟืึทืจ ืงืึทื ื•ื•ื™ื ื™ืึทื ืก, ืžื™ืจ ืฆืขื˜ื™ื™ืœื˜ ื“ื™ ื“ืขืจืฆื™ื™ืœื•ื ื’ ืื™ืŸ 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 ื–ื™ื™ึทื˜ ื–ืขื ืขืŸ ื’ืขืขื ื“ื™ืงื˜. ืื™ืฆื˜ ืขืก ืื™ื– ืฆื™ื™ื˜ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ืงื™ื‘ืึทื ืึท. ืื•ื™ื‘ ืื™ืจ ืœื•ื™ืคืŸ ืขืก ืื™ืฆื˜, ืขืจืจืึธืจืก ื•ื•ืขื˜ ื“ืขืจืฉื™ื™ึทื ืขืŸ, ืึทื–ื•ื™ ืขืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ืฆื• ืฉืึทืคึฟืŸ ืึท ืฉืœื™ืกืœ ืงืจืึธื. ื“ืึธืก ืื™ื– ื’ืขื˜ืืŸ ืื™ืŸ ืฆื•ื•ื™ื™ ืงืึทืžืึทื ื“ื– (ื‘ืึทื ื™ืฆืขืจ kibana ืื•ืŸ ื“ื™ ืคึผืึทืจืึธืœ ืืจื™ื™ืŸ ืื™ืŸ ื“ื™ ืฉืึทืคื•ื ื’ ืคื•ืŸ ืคึผืึทืจืึธืœ ืื™ืŸ Elasticsearch):

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

ืื•ื™ื‘ ืึทืœืฅ ืื™ื– ืจื™ื›ื˜ื™ืง, Kibana ื•ื•ืขื˜ ืึธื ื”ื™ื™ื‘ืŸ ืึทืกืงื™ื ื’ ืคึฟืึทืจ ืึท ืœืึธื’ื™ืŸ ืื•ืŸ ืคึผืึทืจืึธืœ. ื“ื™ ื‘ืึทืกื™ืง ืึทื‘ืึธื ืขืžืขื ื˜ ื›ื•ืœืœ ืึท ืจืึธืœืข ืžืึธื“ืขืœ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื™ื ืขืจืœืขืš ื ื™ืฆืขืจืก. ืกื˜ืึทืจื˜ื™ื ื’ ืžื™ื˜ ื’ืึธืœื“, ืื™ืจ ืงืขื ืขืŸ ืคืึทืจื‘ื™ื ื“ืŸ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืกื™ืกื˜ืขืžืขืŸ - LDAP, PKI, Active Directory ืื•ืŸ ืื™ื™ืŸ ืฆื™ื™ื›ืŸ-ืื•ื™ืฃ ืกื™ืกื˜ืขืžืขืŸ.

ื’ื•ืžืข ืื•ื ื˜ืขืจ ืฉืœืึธืก ืื•ืŸ ืฉืœื™ืกืœ: ืขื ื™ื™ื‘ืึทืœื™ื ื’ Elasticsearch ืงื ื•ื™ืœ ื–ื™ื›ืขืจื”ื™ื™ื˜ ืึธืคึผืฆื™ืขืก ืคึฟืึทืจ ืึทืงืกืขืก ืคึฟื•ืŸ ื™ืŸ ืื•ืŸ ืึทืจื•ื™ืก

ืึทืงืกืขืก ืจืขื›ื˜ ืฆื• ืึทื‘ื“ื–ืฉืขืงืฅ ืื™ืŸ Elasticsearch ืงืขื ืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ืœื™ืžื™ื˜ืขื“. ืึธื‘ืขืจ, ืฆื• ื˜ืึธืŸ ื“ื™ ื–ืขืœื‘ืข ืคึฟืึทืจ ื“ืึธืงื•ืžืขื ื˜ืŸ ืึธื“ืขืจ ืคืขืœื“ืขืจ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืึท ื‘ืึทืฆืึธืœื˜ ืึทื‘ืึธื ืขืžืขื ื˜ (ื“ืขื ืœื•ืงืกื•ืก ืกื˜ืึทืจืฅ ืžื™ื˜ ืคึผืœืึทื˜ื™ื ื•ื ืžื“ืจื’ื”). ื“ื™ ืกืขื˜ื˜ื™ื ื’ืก ื–ืขื ืขืŸ ื‘ืืจืขื›ื˜ื™ื’ื˜ ืื™ืŸ ื“ื™ Kibana ืฆื•ื‘ื™ื ื“ ืึธื“ืขืจ ื“ื•ืจืš ื–ื™ื›ืขืจื”ื™ื™ึทื˜ ืึทืคึผื™. ืื™ืจ ืงืขื ืขืŸ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื•ืจืš ื“ื™ ืฉื•ื™ืŸ ื‘ืึทืงืึทื ื˜ ื“ืขื•ื• ืžื›ืฉื™ืจื™ื ืžืขื ื™ื•:

ืฉืืคืŸ ืึท ืจืึธืœืข

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 ืึทืจืงื™ื™ื•ื• ื•ื•ืขื˜ ื“ืขืจืฉื™ื™ึทื ืขืŸ 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 ืคึฟืึธืจืžืึทื˜, ืคึผืจืึธื˜ืขืงื˜ืขื“ ื“ื•ืจืš ืึท ืคึผืึทืจืึธืœ. ืึทืœืข ื•ื•ืึธืก ื‘ืœื™ื™ื‘ื˜ ืื™ื– ืฆื• ืžืึทืš ื“ื™ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ื˜ืขืงืข ืคึผืงืกื ื•ืžืงืก ืฆื• ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ:

[elastic@node1 ~]$ mv elasticsearch/elastic-certificates.p12 elasticsearch/config

ืœื™ื™ื’ ืึท ืคึผืึทืจืึธืœ ืฆื• ื“ื™ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืื™ืŸ ื“ืขื ืคึฟืึธืจืžืึทื˜ ืคึผืงืกื ื•ืžืงืก ืื™ืŸ ืงื™ื™ืกื˜ืึธืจืข ืื•ืŸ ื˜ืจืึทืกื˜ืกื˜ืึธืจืข ืื•ื™ืฃ ื™ืขื“ืขืจ ื ืึธื“ืข:

[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 ื ืึธื•ื“ื– ืื•ืŸ ื•ื™ืกืคื™ืจืŸ ื’ืจื™ื™ึทื–ืœ. ืื•ื™ื‘ ืึทืœืฅ ืื™ื– ื’ืขื˜ืืŸ ืจื™ื›ื˜ื™ืง, ืึท ืขื ื˜ืคืขืจ ืžื™ื˜ ืขื˜ืœืขื›ืข ื ืึธื•ื“ื– ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื•ืžื’ืขืงืขืจื˜:

[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 (ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ื”ื˜ื˜ืคึผ), ืœื™ื™ื’ืŸ ื ื™ื™ึทืข ืฉื•ืจื•ืช ืฆื• 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

ืึทืœืข ื•ื•ืึธืก ื‘ืœื™ื™ื‘ื˜ ืื™ื– ืฆื• ืึทื ืคึผืึทืง ื“ื™ ื‘ืืฉืืคืŸ ืฉืœื™ืกืœืขืŸ ืื™ืŸ ื“ืขืจ ื˜ืขืงืข ืžื™ื˜ ื“ื™ ืงื™ื‘ืึทื ืึท ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ:

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

ื“ื™ ืฉืœื™ืกืœืขืŸ ื–ืขื ืขืŸ ื“ืึธืจื˜, ืึทื–ื•ื™ ืึทืœืข ื•ื•ืึธืก ื‘ืœื™ื™ื‘ื˜ ืื™ื– ืฆื• ื˜ื•ื™ืฉืŸ ื“ื™ ืงื™ื‘ืึทื ืึท ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืึทื–ื•ื™ ืึทื– ืขืก ืกื˜ืึทืจืฅ ื ื™ืฆืŸ ื–ื™ื™. ืื™ืŸ ื“ื™ kibana.yml ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ืขืงืข, ื˜ื•ื™ืฉืŸ ื”ื˜ื˜ืคึผ ืฆื• 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 ืงื ื•ื™ืœ ืื™ื– ื™ื ืงืจื™ืคึผื˜ื™ื“.

ืื•ื™ื‘ ืื™ืจ ื”ืึธื˜ ืคึฟืจืื’ืŸ ื•ื•ืขื’ืŸ ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคื•ืŸ Elastic Stack ืื•ื™ืฃ ืคืจื™ื™ ืึธื“ืขืจ ื‘ืึทืฆืึธืœื˜ ืกืึทื‘ืกืงืจื™ืคึผืฉืึทื ื–, ืžืึธื ื™ื˜ืึธืจื™ื ื’ ื˜ืึทืกืงืก ืึธื“ืขืจ ืงืจื™ื™ื™ื˜ื™ื ื’ ืึท SIEM ืกื™ืกื˜ืขื, ืœืึธื–ืŸ ืึท ื‘ืงืฉื” ืฆื• ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ ืคืึธืจืขื ืื•ื™ืฃ ืื•ื ื“ื–ืขืจ ื•ื•ืขื‘ื–ื™ื™ื˜ืœ.

ืžืขืจ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืึทืจื˜ื™ืงืœืขืŸ ื•ื•ืขื’ืŸ Elastic Stack ืื•ื™ืฃ Habrรฉ:

ืคืืจืฉื˜ืื ื“ ืคื•ืŸ ืžืึทืฉื™ืŸ ืœืขืจื ืขืŸ ืื™ืŸ ื“ื™ ืขืœืึทืกื˜ื™ืง ืกื˜ืึทืง (ืึทืงืึท Elasticsearch, aka ELK)

Elasticsearch ืกื™ื™ื–ื™ื ื’

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’