Sapanjang taun katukang, aya seueur bocor tina pangkalan data
Hayu urang geura-giru nyieun reservasi yén dina prakna urang ngagunakeun Elasticsearch pikeun nyimpen log jeung nganalisis log pakakas kaamanan informasi, OS jeung software dina platform IaaS urang, nu sasuai jeung sarat 152-FZ, Cloud-152.
Urang pariksa naha database "nempel kaluar" ka Internet
Dina kalolobaan kasus bocor (
Kahiji, hayu urang nungkulan penerbitan dina Internet. Naha ieu kajadian? Kanyataanna nyaéta pikeun operasi anu langkung fleksibel tina Elasticsearch
Upami anjeun tiasa lebet, teras lumpat pikeun nutup.
Ngajagi sambungan kana pangkalan data
Ayeuna kami bakal ngajantenkeun éta mustahil pikeun nyambung ka pangkalan data tanpa auténtikasi.
Elasticsearch gaduh modul auténtikasi anu ngabatesan aksés kana databés, tapi ngan ukur aya dina set plugin X-Pack anu dibayar (1 bulan panggunaan gratis).
Warta anu saé nyaéta dina usum gugur 2019, Amazon muka pamekaranna, anu tumpang tindih sareng X-Pack. Fungsi auténtikasi nalika nyambungkeun kana pangkalan data parantos sayogi dina lisénsi gratis pikeun versi Elasticsearch 7.3.2, sareng sékrési énggal pikeun Elasticsearch 7.4.0 parantos didamel.
Plugin ieu gampang dipasang. Pindah ka konsol server sareng sambungkeun gudang:
RPM dumasar:
curl https://d3g5vo6xdbdb9a.cloudfront.net/yum/opendistroforelasticsearch-artifacts.repo -o /etc/yum.repos.d/opendistroforelasticsearch-artifacts.repo
yum update
yum install opendistro-security
Dumasar DEB:
wget -qO ‐ https://d3g5vo6xdbdb9a.cloudfront.net/GPG-KEY-opendistroforelasticsearch | sudo apt-key add -
Nyetel interaksi antara server via SSL
Nalika masang plugin, konfigurasi port nyambungkeun kana database robah. Éta ngamungkinkeun énkripsi SSL. Supados server kluster tiasa teras-terasan damel saling, anjeun kedah ngonpigurasikeun interaksi antara aranjeunna nganggo SSL.
Kapercayaan antara host tiasa ditetepkeun nganggo atanapi henteu nganggo otoritas sertipikat sorangan. Kalayan metodeu anu munggaran, sadayana jelas: anjeun ngan ukur kedah ngahubungi spesialis CA. Hayu urang ngalih langsung ka kadua.
- Jieun variabel kalayan ngaran domain lengkep:
export DOMAIN_CN="example.com"
- Jieun konci pribadi:
openssl genrsa -out root-ca-key.pem 4096
- Asupkeun sertipikat akar. Tetep aman: lamun leungit atawa kompromi, kapercayaan antara sakabeh host bakal perlu reconfigured.
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
- Jieun konci administrator:
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
- Jieun pamundut pikeun nandatanganan sertipikat:
openssl req -new -subj "/C=RU/ST=Moscow/O=Moscow Inc./CN=${DOMAIN_CN}/CN=admin " -key admin-key.pem -out admin.csr
- Jieun sertipikat administrator:
openssl x509 -req -extensions usr_cert -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem
- Jieun sertipikat pikeun titik 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
- Jieun pamundut tanda tangan:
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
- Penandatanganan sertipikat:
openssl x509 -req -in node.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node.pem
- Teundeun sertipikat antara titik Elasticsearch dina folder ieu:
/etc/elasticsearch/
urang peryogi file:node-01-key.pem node-01.pem admin-key.pem admin.pem root-ca.pem
- Ngonpigurasikeun /etc/elasticsearch/elasticsearch.yml - robih nami file sareng sertipikat anu didamel ku kami:
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
Ngarobah kecap akses pikeun pamaké internal
- Ngagunakeun paréntah di handap, urang kaluaran sandi hash kana konsol nu:
sh ${OD_SEC}/tools/hash.sh -p [пароль]
- Robah hash dina file kana anu ditampi:
/usr/share/elasticsearch/plugins/opendistro_security/securityconfig/internal_users.yml
Nyetel firewall dina OS
- Ngidinan firewall pikeun ngamimitian:
systemctl enable firewalld
- Hayu urang ngajalankeun éta:
systemctl start firewalld
- Ngidinan sambungan ka Elasticsearch:
firewall-cmd --set-default-zone work firewall-cmd --zone=work --add-port=9200/TCP --permanent
- Reload aturan firewall:
firewall-cmd --reload
- Ieu aturan gawé:
firewall-cmd --list-all
Nerapkeun sadaya parobihan kami ka Elasticsearch
- Jieun variabel kalayan jalur pinuh ka folder nganggo plugin:
export OD_SEC="/usr/share/elasticsearch/plugins/opendistro_security/"
- Hayu urang ngajalankeun skrip anu bakal ngamutahirkeun kecap akses sareng pariksa setélan:
${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
- Pariksa lamun parobahan geus dilarapkeun:
curl -XGET https://[IP/Имя Elasticsearch]:9200/_cat/nodes?v -u admin:[пароль] --insecure
Éta sadayana, ieu mangrupikeun setélan minimum anu ngajagi Elasticsearch tina sambungan anu henteu sah.
sumber: www.habr.com