рдкрд┐рдЫрд▓реЗ рдПрдХ рд╕рд╛рд▓ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдИ рд▓реАрдХ рд╕рд╛рдордиреЗ рдЖрдП рд╣реИрдВ
рдЖрдЗрдП рддреБрд░рдВрдд рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рд╣рдо рдЕрдкрдиреЗ IaaS рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрдХрд░рдг, OS рдФрд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд▓реЙрдЧ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдФрд░ рд▓реЙрдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Elasticsearch рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ 152-FZ, рдХреНрд▓рд╛рдЙрдб-152 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдЬрд╛рдБрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ
рд▓реАрдХ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЬреНрдЮрд╛рдд рдорд╛рдорд▓реЛрдВ рдореЗрдВ (
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдкреНрд░рдХрд╛рд╢рди рд╕реЗ рдирд┐рдкрдЯреЗрдВред рдРрд╕рд╛ рдХреНрдпреВрдБ рд╣реЛрддрд╛ рд╣реИ? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ Elasticsearch рдХреЗ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП
рдпрджрд┐ рдЖрдк рдЕрдВрджрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреМрдбрд╝реЗрдВред
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд░рдирд╛
рдЕрдм рд╣рдо рдЗрд╕реЗ рдРрд╕рд╛ рдмрдирд╛рдПрдВрдЧреЗ рдХрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕ рдЦреЛрдЬ рдореЗрдВ рдПрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рднреБрдЧрддрд╛рди рдХрд┐рдП рдЧрдП рдПрдХреНрд╕-рдкреИрдХ рдкреНрд▓рдЧрдЗрди рд╕реЗрдЯ (1 рдорд╣реАрдиреЗ рдХрд╛ рдореБрдлреНрдд рдЙрдкрдпреЛрдЧ) рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред
рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ 2019 рдХреЗ рдкрддрди рдореЗрдВ, рдЕрдореЗрдЬрд╝реЕрди рдиреЗ рдЕрдкрдирд╛ рд╡рд┐рдХрд╛рд╕ рдЦреЛрд▓рд╛, рдЬреЛ рдПрдХреНрд╕-рдкреИрдХ рдХреЗ рд╕рд╛рде рдУрд╡рд░рд▓реИрдк рд╣реЛрддрд╛ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдлрд╝рдВрдХреНрд╢рди Elasticsearch 7.3.2 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрдлреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ Elasticsearch 7.4.0 рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд░рд┐рд▓реАрдЬрд╝ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИред
рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ. рд╕рд░реНрд╡рд░ рдХрдВрд╕реЛрд▓ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:
рдЖрд░рдкреАрдПрдо рдЖрдзрд╛рд░рд┐рдд:
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 -
рдПрд╕рдПрд╕рдПрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рдмреАрдЪ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛
рдкреНрд▓рдЧрдЗрди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╕рдордп, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкреЛрд░реНрдЯ рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрд╕рдПрд╕рдПрд▓ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред рдХреНрд▓рд╕реНрдЯрд░ рд╕рд░реНрд╡рд░ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрд╕рдПрд╕рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдХреЗ рдмреАрдЪ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд╕рд╛рде рдпрд╛ рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рд╕реЗ, рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ: рдЖрдкрдХреЛ рдмрд╕ рд╕реАрдП рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪрд▓рд┐рдП рд╕реАрдзреЗ рджреВрд╕рд░реЗ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред
- рдкреВрд░реЗ рдбреЛрдореЗрди рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рдмрдирд╛рдПрдВ:
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
- рдЗрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕ рдЦреЛрдЬ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдмрдирд╛рдПрдВ:
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
рд╣рдорд╛рд░реЗ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕ рдЦреЛрдЬ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛
- рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдкреВрд░реНрдг рдкрде рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рдмрдирд╛рдПрдВ:
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
рдмрд╕ рдЗрддрдирд╛ рд╣реА, рдпреЗ рдиреНрдпреВрдирддрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ рдЬреЛ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕ рдЦреЛрдЬ рдХреЛ рдЕрдирдзрд┐рдХреГрдд рдХрдиреЗрдХреНрд╢рди рд╕реЗ рдмрдЪрд╛рддреА рд╣реИрдВред
рд╕реНрд░реЛрдд: www.habr.com