рдЧрдд рд╡рд░реНрд╖рдорд╛, рдбрд╛рдЯрд╛рдмреЗрд╕рдмрд╛рдЯ рдзреЗрд░реИ рдЪреБрд╣рд╛рд╡рдЯ рднрдПрдХреЛ рдЫ
рддреБрд░реБрдиреНрддреИ рд░рд┐рдЬрд░реНрднреЗрд╕рди рдЧрд░реМрдВ рдХрд┐ рд╣рд╛рдореНрд░реЛ рдЕрднреНрдпрд╛рд╕рдорд╛ рд╣рд╛рдореА рд▓рдЧрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рд░ рд╣рд╛рдореНрд░реЛ IaaS рдкреНрд▓реЗрдЯрдлрд░реНрдордорд╛ рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрдХрд░рдгрд╣рд░реВ, OS рд░ рд╕рдлреНрдЯрд╡реЗрдпрд░рдХреЛ рд▓рдЧрд╣рд░реВ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрди Elasticsearch рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ, рдЬрд╕рд▓реЗ 152-FZ, Cloud-152 рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрджрдЫред
рд╣рд╛рдореА рдбрд╛рдЯрд╛рдмреЗрд╕ рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ "рд╕реНрдЯрд┐рдХ рдЖрдЙрдЯ" рдЫ рдХрд┐ рдЫреИрди рдЬрд╛рдБрдЪ рдЧрд░реНрдЫреМрдВ
рдЪреБрд╣рд╛рд╡рдЯ рдХреЛ рдзреЗрд░реИ рдЬреНрдЮрд╛рдд рдЕрд╡рд╕реНрдерд╛рдорд╛ (
рдкрд╣рд┐рд▓реЗ, рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ рдкреНрд░рдХрд╛рд╢рдирд╕рдБрдЧ рд╕рдореНрдЭреМрддрд╛ рдЧрд░реМрдВред рдпреЛ рдХрд┐рди рд╣реБрдиреНрдЫ? рддрдереНрдп рдпреЛ рд╣реЛ рдХрд┐ Elasticsearch рдХреЛ рдЕрдзрд┐рдХ рд▓рдЪрд┐рд▓реЛ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рд▓рд╛рдЧрд┐
рдпрджрд┐ рддрдкрд╛рдИрдВ рднрд┐рддреНрд░ рдЬрд╛рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдпрд╕рд▓рд╛рдИ рдмрдиреНрдж рдЧрд░реНрди рджреМрдбрдиреБрд╣реЛрд╕реНред
рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдЬрдбрд╛рди рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░реНрджреИ
рдЕрдм рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдмрд┐рдирд╛ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рдЕрд╕рдореНрднрд╡ рдЫ рднрдиреЗрд░ рдмрдирд╛рдЙрдиреЗрдЫреМрдВред
Elasticsearch рд╕рдБрдЧ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдкрд╣реБрдБрдЪ рд╕реАрдорд┐рдд рдЧрд░реНрдиреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдореЛрдбреНрдпреБрд▓ рдЫ, рддрд░ рдпреЛ рд╕рд╢реБрд▓реНрдХ X-Pack рдкреНрд▓рдЧрдЗрди рд╕реЗрдЯрдорд╛ рдорд╛рддреНрд░ рдЙрдкрд▓рдмреНрдз рдЫ (рез рдорд╣рд┐рдирд╛ рдирд┐:рд╢реБрд▓реНрдХ рдкреНрд░рдпреЛрдЧ)ред
рд╢реБрдн рд╕рдорд╛рдЪрд╛рд░ рдпреЛ рд╣реЛ рдХрд┐ 2019 рдХреЛ рдкрддрдирдорд╛, Amazon рд▓реЗ рдпрд╕рдХреЛ рд╡рд┐рдХрд╛рд╕рд╣рд░реВ рдЦреЛрд▓реНрдпреЛ, рдЬреБрди X-Pack рд╕рдБрдЧ рдУрднрд░рд▓реНрдпрд╛рдк рд╣реБрдиреНрдЫред рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрджрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдХрд╛рд░реНрдп рд╕рдВрд╕реНрдХрд░рдг 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
- рдЗрд▓рд╛рд╕реНрдЯрд┐рдХрд╕рд░реНрдЪрдорд╛ рдЬрдбрд╛рдирд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдиреБрд╣реЛрд╕реН:
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