рдЧреЗрд▓реНрдпрд╛ рд╡рд░реНрд╖рднрд░рд╛рдд рдбреЗрдЯрд╛рдмреЗрд╕рдордзреВрди рдЕрдиреЗрдХ рд▓реАрдХ рдЭрд╛рд▓реНрдпрд╛ рдЖрд╣реЗрдд
рдЪрд▓рд╛ рддрд╛рдмрдбрддреЛрдм рдЖрд░рдХреНрд╖рдг рдХрд░реВрдпрд╛ рдХреА рдЖрдордЪреНрдпрд╛ рд╕рд░рд╛рд╡ рдордзреНрдпреЗ рдЖрдореНрд╣реА рд▓реЙрдЧ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ IaaS рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдорд╛рд╣рд┐рддреА рд╕реБрд░рдХреНрд╖рд╛ рд╕рд╛рдзрдиреЗ, OS рдЖрдгрд┐ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рдЪреНрдпрд╛ рд▓реЙрдЧрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Elasticsearch рд╡рд╛рдкрд░рддреЛ, рдЬреЗ 152-FZ, Cloud-152 рдЪреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдВрдЪреЗ рдкрд╛рд▓рди рдХрд░рддреЗ.
рдбрд╛рдЯрд╛рдмреЗрд╕ рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ "рдЪрд┐рдХрдЯрддреЛ" рдХрд┐рдВрд╡рд╛ рдирд╛рд╣реА рд╣реЗ рдЖрдореНрд╣реА рддрдкрд╛рд╕рддреЛ
рдЧрд│рддреАрдЪреНрдпрд╛ рдмрд╣реБрддреЗрдХ рдЬреНрдЮрд╛рдд рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ (
рдкреНрд░рдердо, рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рдкреНрд░рдХрд╛рд╢рди рд╣рд╛рддрд╛рд│реВрдпрд╛. рдЕрд╕реЗ рдХрд╛ рдШрдбрддреЗ? рд╡рд╕реНрддреБрд╕реНрдерд┐рддреА рдЕрд╢реА рдЖрд╣реЗ рдХреА Elasticsearch рдЪреНрдпрд╛ рдЕрдзрд┐рдХ рд▓рд╡рдЪрд┐рдХ рдСрдкрд░реЗрд╢рдирд╕рд╛рдареА
рдЬрд░ рддреБрдореНрд╣реА рдЖрдд рдЬрд╛рдК рд╢рдХрдд рдЕрд╕рд╛рд▓ рддрд░ рддреЗ рдмрдВрдж рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдзрд╛рд╡рд╛.
рдбреЗрдЯрд╛рдмреЗрд╕рд╢реА рдХрдиреЗрдХреНрд╢рдирдЪреЗ рд╕рдВрд░рдХреНрд╖рдг рдХрд░рдгреЗ
рдЖрддрд╛ рдЖрдореНрд╣реА рддреЗ рдмрдирд╡реВ рдЬреЗрдгреЗрдХрд░реВрди рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╛рд╢рд┐рд╡рд╛рдп рдбреЗрдЯрд╛рдмреЗрд╕рд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рдгреЗ рдЕрд╢рдХреНрдп рдЖрд╣реЗ.
Elasticsearch рдордзреНрдпреЗ рдПрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдореЙрдбреНрдпреВрд▓ рдЖрд╣реЗ рдЬреЗ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рддреЗ, рдкрд░рдВрддреБ рддреЗ рдХреЗрд╡рд│ рд╕рд╢реБрд▓реНрдХ X-Pack рдкреНрд▓рдЧрдЗрди рд╕реЗрдЯрдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ (1 рдорд╣рд┐рдирд╛ рд╡рд┐рдирд╛рдореВрд▓реНрдп рд╡рд╛рдкрд░).
рдЪрд╛рдВрдЧрд▓реА рдмрд╛рддрдореА рдЕрд╢реА рдЖрд╣реЗ рдХреА 2019 рдЪреНрдпрд╛ рд╢рд░рдж рдЛрддреВрдд, рдНрдореЗрдЭреЙрдирдиреЗ рддреНрдпрд╛рдЪреЗ рд╡рд┐рдХрд╛рд╕ рдЙрдШрдбрд▓реЗ, рдЬреЗ рдПрдХреНрд╕-рдкреЕрдХрд╕рд╣ рдУрд╡реНрд╣рд░рд▓реЕрдк рд╣реЛрддреЗ. рдбреЗрдЯрд╛рдмреЗрд╕рд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛рдирд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдлрдВрдХреНрд╢рди Elasticsearch 7.3.2 рдЖрд╡реГрддреНрддреАрд╕рд╛рдареА рд╡рд┐рдирд╛рдореВрд▓реНрдп рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рдЙрдкрд▓рдмреНрдз рдЭрд╛рд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ Elasticsearch 7.4.0 рд╕рд╛рдареА рдирд╡реАрди рдкреНрд░рдХрд╛рд╢рди рдЖрдзреАрдЪ рдХрд╛рдорд╛рдд рдЖрд╣реЗ.
рд╣реЗ рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ. рд╕рд░реНрд╡реНрд╣рд░ рдХрдиреНрд╕реЛрд▓рд╡рд░ рдЬрд╛ рдЖрдгрд┐ рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рдХрдиреЗрдХреНрдЯ рдХрд░рд╛:
RPM рдЖрдзрд╛рд░рд┐рдд:
curl https://d3g5vo6xdbdb9a.cloudfront.net/yum/opendistroforelasticsearch-artifacts.repo -o /etc/yum.repos.d/opendistroforelasticsearch-artifacts.repo
yum update
yum install opendistro-security
DEB рдЖрдзрд╛рд░рд┐рдд:
wget -qO тАР https://d3g5vo6xdbdb9a.cloudfront.net/GPG-KEY-opendistroforelasticsearch | sudo apt-key add -
SSL рджреНрд╡рд╛рд░реЗ рд╕рд░реНрд╡реНрд╣рд░ рджрд░рдореНрдпрд╛рди рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж рд╕реЗрдЯ рдХрд░рдгреЗ
рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛рдирд╛, рдбреЗрдЯрд╛рдмреЗрд╕рд▓рд╛ рдЬреЛрдбрдгрд╛рд▒реНрдпрд╛ рдкреЛрд░реНрдЯрдЪреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрджрд▓рддреЗ. рд╣реЗ SSL рдПрдирдХреНрд░рд┐рдкреНрд╢рди рд╕рдХреНрд╖рдо рдХрд░рддреЗ. рдХреНрд▓рд╕реНрдЯрд░ рд╕рд░реНрд╡реНрд╣рд░ рдПрдХрдореЗрдХрд╛рдВрд╕реЛрдмрдд рдХрд╛рд░реНрдп рдХрд░рдд рд░рд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ SSL рд╡рд╛рдкрд░реВрди рддреНрдпрд╛рдВрдЪреНрдпрд╛рдордзреАрд▓ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рдж рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рдпрдЬрдорд╛рдирд╛рдВрдордзреАрд▓ рд╡рд┐рд╢реНрд╡рд╛рд╕ рддреНрдпрд╛рдЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЕрдзрд┐рдХрд╛рд░рд╛рд╕рд╣ рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рдкрд╣рд┐рд▓реНрдпрд╛ рдкрджреНрдзрддреАрд╕рд╣, рд╕рд░реНрд╡рдХрд╛рд╣реА рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ: рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдлрдХреНрдд CA рддрдЬреНрдЮрд╛рдВрд╢реА рд╕рдВрдкрд░реНрдХ рд╕рд╛рдзрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рдЪрд▓рд╛ рд╕рд░рд│ рджреБрд╕рд▒реНрдпрд╛рдХрдбреЗ рдЬрд╛рдКрдпрд╛.
- рдкреВрд░реНрдг рдбреЛрдореЗрди рдирд╛рд╡рд╛рд╕рд╣ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рддрдпрд╛рд░ рдХрд░рд╛:
export DOMAIN_CN="example.com"
- рдЦрд╛рдЬрдЧреА рдХреА рддрдпрд╛рд░ рдХрд░рд╛:
openssl genrsa -out root-ca-key.pem 4096
- рдореВрд│ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рд╡рд░ рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдХрд░рд╛. рддреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдареЗрд╡рд╛: рддреЗ рд╣рд░рд╡рд▓реНрдпрд╛рд╕ рдХрд┐рдВрд╡рд╛ рддрдбрдЬреЛрдб рдХреЗрд▓реНрдпрд╛рд╕, рд╕рд░реНрд╡ рд╣реЛрд╕реНрдЯрдордзреАрд▓ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдкреБрдиреНрд╣рд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
openssl req -new -x509 -sha256 -subj "/C=RU/ST=Moscow/O=Moscow, Inc./CN=${DOMAIN_CN}" -key root-ca-key.pem -out root-ca.pem
- рдкреНрд░рд╢рд╛рд╕рдХ рдХреА рддрдпрд╛рд░ рдХрд░рд╛:
openssl genrsa -out admin-key-temp.pem 4096 openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem
- рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рд╡рд░ рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рдирдВрддреА рддрдпрд╛рд░ рдХрд░рд╛:
openssl req -new -subj "/C=RU/ST=Moscow/O=Moscow Inc./CN=${DOMAIN_CN}/CN=admin " -key admin-key.pem -out admin.csr
- рдкреНрд░рд╢рд╛рд╕рдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рддрдпрд╛рд░ рдХрд░рд╛:
openssl x509 -req -extensions usr_cert -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem
- Elasticsearch рдиреЛрдбрд╕рд╛рдареА рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ рддрдпрд╛рд░ рдХрд░рд╛:
export NODENAME="node-01" openssl genrsa -out ${NODENAME}-key-temp.pem 4096 openssl pkcs8 -inform PEM -outform PEM -in ${NODENAME}-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out ${NODENAME}-key.pem
- рд╕реНрд╡рд╛рдХреНрд╖рд░реА рд╡рд┐рдирдВрддреА рддрдпрд╛рд░ рдХрд░рд╛:
openssl req -new -subj "/C=RU/ST=Moscow/O=Moscow Inc./CN=${NODENAME}.${DOMAIN_CN}" -addext"subjectAltName=DNS:${NODENAME}.${DOMAIN_CN},DNS:www.${NODENAME}.${DOMAIN_CN}" -key ${NODENAME}-key.pem -out ${NODENAME}.csr
- рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рд╡рд░ рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдХрд░рдгреЗ:
openssl x509 -req -in node.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node.pem
- рдЦрд╛рд▓реАрд▓ рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ Elasticsearch рдиреЛрдбреНрд╕ рджрд░рдореНрдпрд╛рди рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдареЗрд╡рд╛:
/etc/elasticsearch/
рдЖрдореНрд╣рд╛рд▓рд╛ рдлрд╛рдЗрд▓реНрд╕рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ:node-01-key.pem node-01.pem admin-key.pem admin.pem root-ca.pem
- рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХрд░рд╛ /etc/elasticsearch/elasticsearch.yml - рдЖрдордЪреНрдпрд╛рджреНрд╡рд╛рд░реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рдВрд╕рд╣ рдлрд╛рдпрд▓реАрдВрдЪреЗ рдирд╛рд╡ рдмрджрд▓рд╛:
opendistro_security.ssl.transport.pemcert_filepath: node-01.pem opendistro_security.ssl.transport.pemkey_filepath: node-01-key.pem opendistro_security.ssl.transport.pemtrustedcas_filepath: root-ca.pem opendistro_security.ssl.transport.enforce_hostname_verification: false opendistro_security.ssl.http.enabled: true opendistro_security.ssl.http.pemcert_filepath: node-01.pem opendistro_security.ssl.http.pemkey_filepath: node-01-key.pem opendistro_security.ssl.http.pemtrustedcas_filepath: root-ca.pem opendistro_security.allow_unsafe_democertificates: false opendistro_security.allow_default_init_securityindex: true opendistro_security.authcz.admin_dn: тИТ CN=admin,CN=example.com,O=Moscow Inc.,ST=Moscow,C=RU opendistro_security.nodes_dn: тИТ CN=node-01.example.com,O=Moscow Inc.,ST=Moscow,C=RU
рдЕрдВрддрд░реНрдЧрдд рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╛рдареА рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдгреЗ
- рдЦрд╛рд▓реАрд▓ рдЖрджреЗрд╢ рд╡рд╛рдкрд░реВрди, рдЖрдореНрд╣реА рдХрдиреНрд╕реЛрд▓рдордзреНрдпреЗ рдкрд╛рд╕рд╡рд░реНрдб рд╣реЕрд╢ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЛ:
sh ${OD_SEC}/tools/hash.sh -p [╨┐╨░╤А╨╛╨╗╤М]
- рдлрд╛рдЗрд▓рдордзреАрд▓ рд╣реЕрд╢рд▓рд╛ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реЗрд▓реНрдпрд╛рдордзреНрдпреЗ рдмрджрд▓рд╛:
/usr/share/elasticsearch/plugins/opendistro_security/securityconfig/internal_users.yml
OS рдордзреНрдпреЗ рдлрд╛рдпрд░рд╡реЙрд▓ рд╕реЗрдЯ рдХрд░рдд рдЖрд╣реЗ
- рдлрд╛рдпрд░рд╡реЙрд▓ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреНрдпрд╛:
systemctl enable firewalld
- рдЪрд▓рд╛ рддреЗ рд▓рд╛рдБрдЪ рдХрд░реВрдпрд╛:
systemctl start firewalld
- Elasticsearch рд▓рд╛ рдХрдиреЗрдХреНрд╢рдирд▓рд╛ рдЕрдиреБрдорддреА рджреНрдпрд╛:
firewall-cmd --set-default-zone work firewall-cmd --zone=work --add-port=9200/TCP --permanent
- рдлрд╛рдпрд░рд╡реЙрд▓ рдирд┐рдпрдо рд░реАрд▓реЛрдб рдХрд░рд╛:
firewall-cmd --reload
- рдпреЗрдереЗ рдХрд╛рд░реНрдпрд░рдд рдирд┐рдпрдо рдЖрд╣реЗрдд:
firewall-cmd --list-all
рдЖрдордЪреЗ рд╕рд░реНрд╡ рдмрджрд▓ Elasticsearch рд╡рд░ рд▓рд╛рдЧреВ рдХрд░рдд рдЖрд╣реЗ
- рдкреНрд▓рдЧрдЗрдирд╕рд╣ рдлреЛрд▓реНрдбрд░рдЪреНрдпрд╛ рдкреВрд░реНрдг рдорд╛рд░реНрдЧрд╛рд╕рд╣ рдПрдХ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рддрдпрд╛рд░ рдХрд░рд╛:
export OD_SEC="/usr/share/elasticsearch/plugins/opendistro_security/"
- рдЪрд▓рд╛ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд╛рд▓рд╡реВ рдЬреЗ рдкрд╛рд╕рд╡рд░реНрдб рдЕрдкрдбреЗрдЯ рдХрд░реЗрд▓ рдЖрдгрд┐ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рддрдкрд╛рд╕реЗрд▓:
${OD_SEC}/tools/securityadmin.sh -cd ${OD_SEC}/securityconfig/ -icl -nhnv -cacert /etc/elasticsearch/root-ca.pem -cert /etc/elasticsearch/admin.pem -key /etc/elasticsearch/admin-key.pem
- рдмрджрд▓ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЖрд╣реЗрдд рдХрд╛ рддреЗ рддрдкрд╛рд╕рд╛:
curl -XGET https://[IP/╨Ш╨╝╤П Elasticsearch]:9200/_cat/nodes?v -u admin:[╨┐╨░╤А╨╛╨╗╤М] --insecure
рдЗрддрдХреЗрдЪ, рдпрд╛ рдХрд┐рдорд╛рди рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдЖрд╣реЗрдд рдЬреНрдпрд╛ рдЕрдирдзрд┐рдХреГрдд рдХрдиреЗрдХреНрд╢рдирдкрд╛рд╕реВрди Elasticsearch рдЪреЗ рд╕рдВрд░рдХреНрд╖рдг рдХрд░рддрд╛рдд.
рд╕реНрддреНрд░реЛрдд: www.habr.com