Giunsa ang pag-configure sa Elasticsearch aron malikayan ang mga pagtulo

Sa miaging tuig, adunay daghang mga pagtulo gikan sa mga database Elasticsearch (tan-awa, tan-awa и tan-awa). Sa daghang mga kaso, ang personal nga datos gitipigan sa database. Kini nga mga pagtulo mahimo nga malikayan kung, pagkahuman sa pag-deploy sa database, ang mga administrador naghasol sa pagsusi sa pipila ka yano nga mga setting. Karon kita maghisgot mahitungod kanila.

Maghimo dayon kita og reserbasyon nga sa atong praktis atong gigamit ang Elasticsearch sa pagtipig og mga troso ug pag-analisar sa mga log sa mga himan sa seguridad sa impormasyon, OS ug software sa atong IaaS nga plataporma, nga nagsunod sa mga kinahanglanon sa 152-FZ, Cloud-152. 

Giunsa ang pag-configure sa Elasticsearch aron malikayan ang mga pagtulo

Gisusi namo kung ang database "nagpabilin" sa Internet

Sa kadaghanan nga nahibal-an nga mga kaso sa pagtulo (tan-awa, tan-awa) ang tig-atake nakaangkon og access sa data sa yano ug unpretentiously: ang database gimantala sa Internet, ug kini posible nga makonektar niini nga walay panghimatuud.  

Una, atong atubangon ang pagmantala sa Internet. Nganong mahitabo ni? Ang kamatuoran mao nga alang sa mas flexible nga operasyon sa Elasticsearch girekomenda paghimo usa ka cluster sa tulo ka mga server. Aron ang mga database makigkomunikar sa usag usa, kinahanglan nimo nga ablihan ang mga pantalan. Ingon usa ka sangputanan, ang mga administrador wala magpugong sa pag-access sa database sa bisan unsang paagi, ug mahimo ka magkonektar sa database gikan sa bisan diin. Sayon nga susihon kung ang database ma-access gikan sa gawas. Pagsulod lang sa browser http://[IP/Имя Elasticsearch]:9200/_cat/nodes?v

Kung makasulod ka, dayon dagan aron sirad-an kini.

Pagpanalipod sa koneksyon sa database

Karon buhaton namo kini aron imposible nga makonektar sa database nga walay panghimatuud.

Ang Elasticsearch adunay module sa pag-authenticate nga naglimite sa pag-access sa database, apan magamit ra kini sa bayad nga X-Pack plugin set (1 ka bulan nga libre nga paggamit).

Ang maayong balita mao nga sa pagkahulog sa 2019, gibuksan sa Amazon ang mga pag-uswag niini, nga nagsapaw sa X-Pack. Ang authentication function kung magkonektar sa usa ka database nahimo nang magamit sa ilawom sa usa ka libre nga lisensya alang sa bersyon nga Elasticsearch 7.3.2, ug usa ka bag-ong pagpagawas alang sa Elasticsearch 7.4.0 naa na sa mga buhat.

Kini nga plugin sayon ​​​​nga i-install. Lakaw ngadto sa server console ug ikonektar ang repository:

Gibase sa RPM:

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

yum update

yum install opendistro-security


Gibase sa DEB:

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

Pag-set up sa interaksyon tali sa mga server pinaagi sa SSL

Kung gi-install ang plugin, ang pag-configure sa port nga nagkonektar sa database nabag-o. Gitugotan niini ang pag-encrypt sa SSL. Aron ang mga cluster server magpadayon sa pagtrabaho sa usag usa, kinahanglan nimo nga i-configure ang interaksyon tali kanila gamit ang SSL.

Ang pagsalig tali sa mga host mahimong matukod nga adunay o wala ang kaugalingon nga awtoridad sa sertipiko. Sa una nga pamaagi, klaro ang tanan: kinahanglan nimo nga kontakon ang mga espesyalista sa CA. Deretso ta sa ikaduha.

  1. Paghimo usa ka variable nga adunay tibuuk nga ngalan sa domain:

    export DOMAIN_CN="example.com"

  2. Paghimo og pribadong yawe:

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

  3. Pagpirma sa root certificate. Hupti kini nga luwas: kung kini nawala o nakompromiso, ang pagsalig tali sa tanan nga mga host kinahanglan nga i-configure pag-usab.

    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. Paghimo og administrator key:

    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. Paghimo og hangyo sa pagpirma sa sertipiko:

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

  6. Paghimo og sertipiko sa tagdumala:

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

  7. Paghimo og mga sertipiko alang sa Elasticsearch node:

    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. Paghimo og hangyo nga pirma:

    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. Pagpirma sa sertipiko:

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

  10. Ibutang ang sertipiko tali sa Elasticsearch nodes sa mosunod nga folder:

    /etc/elasticsearch/


    kinahanglan namon ang mga file:

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

  11. Pag-configure /etc/elasticsearch/elasticsearch.yml - usba ang ngalan sa mga file nga adunay mga sertipiko sa mga nahimo namon:

    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

Pag-ilis sa mga password alang sa mga internal nga tiggamit

  1. Gamit ang sugo sa ubos, among gi-output ang password hash sa console:

    sh ${OD_SEC}/tools/hash.sh -p [пароль]

  2. Usba ang hash sa file ngadto sa nadawat:

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

Pag-set up og firewall sa OS

  1. Tugoti ang firewall nga magsugod:

    systemctl enable firewalld

  2. Atong ilunsad kini:

    systemctl start firewalld

  3. Tugoti ang koneksyon sa Elasticsearch:

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

  4. I-reload ang mga lagda sa firewall:

    firewall-cmd --reload

  5. Ania ang mga lagda sa pagtrabaho:

    firewall-cmd --list-all

Ang pagpadapat sa tanan namong mga pagbag-o sa Elasticsearch

  1. Paghimo usa ka variable nga adunay tibuuk nga agianan sa folder nga adunay plugin:

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

  2. Maghimo kita og script nga mag-update sa mga password ug susihon ang mga setting:

    ${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. Susiha kung ang mga pagbag-o gipadapat:

    curl -XGET https://[IP/Имя Elasticsearch]:9200/_cat/nodes?v -u admin:[пароль] --insecure

Kana lang, kini ang mga minimum nga setting nga nanalipod sa Elasticsearch gikan sa dili awtorisado nga mga koneksyon.

Source: www.habr.com

Idugang sa usa ka comment