Viimase aasta jooksul on andmebaasidest palju lekkeid
Teeme kohe reservatsiooni, et oma praktikas kasutame Elasticsearchi logide salvestamiseks ja infoturbe tööriistade, OS-i ja tarkvara logide analüüsimiseks meie IaaS platvormil, mis vastab 152-FZ, Cloud-152 nõuetele.
Kontrollime, kas andmebaas “kleepub” Internetti
Enamikul teadaolevatel lekkejuhtudel (
Kõigepealt tegeleme Internetis avaldamisega. Miks see juhtub? Fakt on see, et Elasticsearchi paindlikumaks kasutamiseks
Kui saad sisse, jookse seda sulgema.
Andmebaasi ühenduse kaitsmine
Nüüd teeme selle nii, et ilma autentimiseta pole võimalik andmebaasiga ühendust luua.
Elasticsearchil on autentimismoodul, mis piirab juurdepääsu andmebaasile, kuid see on saadaval ainult tasulises X-Packi pluginate komplektis (1 kuu tasuta kasutamine).
Hea uudis on see, et 2019. aasta sügisel avas Amazon oma arendused, mis kattuvad X-Packiga. Autentimisfunktsioon andmebaasiga ühenduse loomisel on saadaval tasuta litsentsi alusel versioonile Elasticsearch 7.3.2 ja Elasticsearch 7.4.0 uus väljalase on juba töös.
Seda pistikprogrammi on lihtne installida. Minge serverikonsooli ja ühendage hoidla:
Põhineb pöörete arvul:
curl https://d3g5vo6xdbdb9a.cloudfront.net/yum/opendistroforelasticsearch-artifacts.repo -o /etc/yum.repos.d/opendistroforelasticsearch-artifacts.repo
yum update
yum install opendistro-security
DEB-põhine:
wget -qO ‐ https://d3g5vo6xdbdb9a.cloudfront.net/GPG-KEY-opendistroforelasticsearch | sudo apt-key add -
Serveritevahelise suhtluse seadistamine SSL-i kaudu
Plugina installimisel muutub andmebaasiga ühendava pordi konfiguratsioon. See võimaldab SSL-krüptimist. Selleks, et klastriserverid saaksid üksteisega edasi töötada, peate konfigureerima nendevahelise suhtluse SSL-i abil.
Hostide vahelist usaldust saab luua oma sertifitseerimisasutusega või ilma. Esimese meetodi puhul on kõik selge: peate lihtsalt võtma ühendust CA spetsialistidega. Liigume otse teise juurde.
- Looge muutuja täieliku domeeninimega:
export DOMAIN_CN="example.com"
- Looge privaatvõti:
openssl genrsa -out root-ca-key.pem 4096
- Allkirjastage juursertifikaat. Hoidke seda turvaliselt: kui see kaob või satub ohtu, tuleb kõigi hostide vaheline usaldus uuesti konfigureerida.
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
- Looge administraatori võti:
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
- Looge sertifikaadi allkirjastamise taotlus:
openssl req -new -subj "/C=RU/ST=Moscow/O=Moscow Inc./CN=${DOMAIN_CN}/CN=admin " -key admin-key.pem -out admin.csr
- Looge administraatori sertifikaat:
openssl x509 -req -extensions usr_cert -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem
- Looge Elasticsearchi sõlme sertifikaadid:
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
- Looge allkirjataotlus:
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
- Sertifikaadi allkirjastamine:
openssl x509 -req -in node.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node.pem
- Asetage sertifikaat Elasticsearchi sõlmede vahele järgmises kaustas:
/etc/elasticsearch/
vajame faile:node-01-key.pem node-01.pem admin-key.pem admin.pem root-ca.pem
- Konfigureerimine /etc/elasticsearch/elasticsearch.yml – muuda sertifikaatidega failide nimed meie poolt genereeritavateks:
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
Sisekasutajate paroolide muutmine
- Kasutades allolevat käsku, väljastame konsooli parooliräsi:
sh ${OD_SEC}/tools/hash.sh -p [пароль]
- Muutke failis räsi vastuvõetud räsi vastu:
/usr/share/elasticsearch/plugins/opendistro_security/securityconfig/internal_users.yml
Tulemüüri seadistamine OS-is
- Luba tulemüüril käivituda:
systemctl enable firewalld
- Käivitame selle:
systemctl start firewalld
- Luba ühendus Elasticsearchiga:
firewall-cmd --set-default-zone work firewall-cmd --zone=work --add-port=9200/TCP --permanent
- Laadige uuesti tulemüürireeglid:
firewall-cmd --reload
- Siin on tööreeglid:
firewall-cmd --list-all
Kõigi meie muudatuste rakendamine Elasticsearchile
- Looge muutuja kausta täieliku teega pistikprogrammiga:
export OD_SEC="/usr/share/elasticsearch/plugins/opendistro_security/"
- Käivitame skripti, mis värskendab paroole ja kontrollib seadeid:
${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
- Kontrollige, kas muudatused on rakendatud:
curl -XGET https://[IP/Имя Elasticsearch]:9200/_cat/nodes?v -u admin:[пароль] --insecure
See on kõik, need on minimaalsed seaded, mis kaitsevad Elasticsearchi volitamata ühenduste eest.
Allikas: www.habr.com