Ahoana ny fametrahana ny Elasticsearch mba hisorohana ny fivoahana

Tamin'ny taon-dasa, dia nisy ny fivoahana marobe avy amin'ny angon-drakitra Elasticsearch (eto, eto ΠΈ eto). Amin'ny tranga maro, ny angon-drakitra manokana dia voatahiry ao anaty tahiry. Mety ho voasoroka ireo fivoahana ireo raha toa ka nisahirana nanamarina toe-javatra tsotra vitsivitsy ireo mpitantana taorian'ny fametrahana ny angon-drakitra. Anio isika dia hiresaka momba azy ireo.

Andao hanao famandrihana avy hatrany fa amin'ny fomba fanaonay dia mampiasa Elasticsearch izahay hitahiry logs sy hamakafaka ny diarin'ny fitaovana fiarovana ny fampahalalana, OS ary rindrambaiko ao amin'ny sehatra IaaS, izay mifanaraka amin'ny fepetra takian'ny 152-FZ, Cloud-152. 

Ahoana ny fametrahana ny Elasticsearch mba hisorohana ny fivoahana

Hamarininay raha "mifikitra" amin'ny Internet ny tahiry

Amin'ny ankamaroan'ny tranga fantatra amin'ny fivoahana (eto, eto) ny mpanafika dia nahazo ny fidirana amin'ny angon-drakitra tsotra sy tsy misy dikany: navoaka tao amin'ny Internet ny angon-drakitra, ary azo atao ny mifandray amin'izany tsy misy fanamarinana.  

Voalohany, andeha isika hiresaka momba ny famoahana amin'ny Internet. Nahoana no mitranga izany? Ny zava-misy dia ny fampandehanana mora kokoa amin'ny Elasticsearch soso-kevitra mamorona cluster misy mpizara telo. Mba hifandraisan'ny angon-drakitra dia mila manokatra seranana ianao. Vokatr'izany, ny mpitantana dia tsy mametra ny fidirana amin'ny angon-drakitra amin'ny fomba rehetra, ary afaka mifandray amin'ny angon-drakitra ianao na aiza na aiza. Mora ny manamarina raha azo idirana avy any ivelany ny angon-drakitra. Midira fotsiny amin'ny navigateur http://[IP/Имя Elasticsearch]:9200/_cat/nodes?v

Raha afaka miditra ianao dia mihazakazaka hanakatona azy.

Miaro ny fifandraisana amin'ny tahiry

Ankehitriny dia hanao izany izahay mba tsy ho azo atao ny mifandray amin'ny angon-drakitra tsy misy fanamarinana.

Elasticsearch dia manana mΓ΄dely fanamarinana izay mametra ny fidirana amin'ny angon-drakitra, saingy tsy misy afa-tsy ao amin'ny plugin X-Pack karamaina (fampiasana maimaim-poana 1 volana).

Ny vaovao tsara dia tamin'ny fararano 2019, nanokatra ny fivoarany i Amazon, izay mifanindry amin'ny X-Pack. Ny asa fanamarinana rehefa mifandray amin'ny angon-drakitra dia nanjary azo alaina amin'ny alΓ lan'ny fahazoan-dΓ lana maimaim-poana ho an'ny dikan-teny Elasticsearch 7.3.2, ary efa eo am-piasana ny famoahana vaovao ho an'ny Elasticsearch 7.4.0.

Ity plugin ity dia mora apetraka. Mandehana any amin'ny console server ary ampifandraiso ny tahiry:

RPM mifototra:

curl https://d3g5vo6xdbdb9a.cloudfront.net/yum/opendistroforelasticsearch-artifacts.repo -o /etc/yum.repos.d/opendistroforelasticsearch-artifacts.repo

yum update

yum install opendistro-security


DEB mifototra:

wget -qO ‐ https://d3g5vo6xdbdb9a.cloudfront.net/GPG-KEY-opendistroforelasticsearch | sudo apt-key add -

Mametraka fifandraisana eo amin'ny mpizara amin'ny alΓ lan'ny SSL

Rehefa mametraka ny plugin dia miova ny fanovana ny seranan-tsambo mifandray amin'ny angon-drakitra. Izany dia mamela ny SSL encryption. Mba hahafahan'ireo mpizara cluster hanohy hiara-miasa amin'ny tsirairay, dia mila manamboatra fifandraisana eo amin'izy ireo ianao amin'ny fampiasana SSL.

Ny fifampitokisana eo amin'ny mpampiantrano dia azo apetraka miaraka amin'ny fahefana fanamarinana azy manokana na tsy misy. Miaraka amin'ny fomba voalohany dia mazava ny zava-drehetra: mila mifandray amin'ny manam-pahaizana momba ny CA ianao. Andao hiroso mivantana amin'ny faharoa.

  1. Mamorona fari-piainana miaraka amin'ny anaran-tsehatra feno:

    export DOMAIN_CN="example.com"

  2. Mamorona fanalahidy manokana:

    openssl genrsa -out root-ca-key.pem 4096

  3. Sonia ny taratasy fanamarinana fototra. Tazony ho azo antoka: raha very izy io na voatohintohina, dia mila amboarina ny fifampitokisana eo amin'ny mpampiantrano rehetra.

    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

  4. Mamorona fanalahidin'ny mpitantana:

    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

  5. Mamorona fangatahana sonia ny taratasy fanamarinana:

    openssl req -new -subj "/C=RU/ST=Moscow/O=Moscow Inc./CN=${DOMAIN_CN}/CN=admin " 
    -key admin-key.pem -out admin.csr

  6. Mamorona taratasy fanamarinana mpitantana:

    openssl x509 -req -extensions usr_cert -in admin.csr -CA root-ca.pem 
    -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem

  7. Mamorona taratasy fanamarinana ho an'ny node 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

  8. Mamorona fangatahana sonia:

    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

  9. Fanasoniavana ny taratasy fanamarinana:

    openssl x509 -req -in node.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial 
    -sha256 -out node.pem

  10. Apetraho eo anelanelan'ny node Elasticsearch ao amin'ity lahatahiry manaraka ity ny taratasy fanamarinana:

    /etc/elasticsearch/


    mila ny rakitra izahay:

            node-01-key.pem
    	node-01.pem
    	admin-key.pem
    	admin.pem
    	root-ca.pem

  11. Mampiendrika /etc/elasticsearch/elasticsearch.yml - ovay ny anaran'ny rakitra misy certificat ho an'ireo novokarinay:

    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

Fanovana tenimiafina ho an'ny mpampiasa anatiny

  1. Amin'ny fampiasana ny baiko etsy ambany, dia mamoaka ny tenimiafina amin'ny console izahay:

    sh ${OD_SEC}/tools/hash.sh -p [ΠΏΠ°Ρ€ΠΎΠ»ΡŒ]

  2. Ovay ny hash amin'ny rakitra ho ilay voaray:

    /usr/share/elasticsearch/plugins/opendistro_security/securityconfig/internal_users.yml

Mametraka firewall ao amin'ny OS

  1. Avelao hanomboka ny firewall:

    systemctl enable firewalld

  2. Andao hanomboka izany:

    systemctl start firewalld

  3. Avelao ny fifandraisana amin'ny Elasticsearch:

    firewall-cmd --set-default-zone work
    firewall-cmd --zone=work --add-port=9200/TCP --permanent

  4. Avereno indray ny fitsipiky ny firewall:

    firewall-cmd --reload

  5. Ireto ny fitsipika momba ny asa:

    firewall-cmd --list-all

Mampihatra ny fanovana rehetra ataontsika amin'ny Elasticsearch

  1. Mamorona fari-piainana miaraka amin'ny lalana feno mankany amin'ny lahatahiry miaraka amin'ny plugin:

    export  OD_SEC="/usr/share/elasticsearch/plugins/opendistro_security/"

  2. Andao hanao script izay hanavao ny tenimiafina sy hanamarina ny fika:

    ${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

  3. Jereo raha nampiharina ny fanovana:

    curl -XGET https://[IP/Имя Elasticsearch]:9200/_cat/nodes?v -u admin:[ΠΏΠ°Ρ€ΠΎΠ»ΡŒ] --insecure

Izay ihany, ireto no fika farany ambany indrindra miaro ny Elasticsearch amin'ny fifandraisana tsy nahazoana alalana.

Source: www.habr.com

Add a comment