Undanfarið ár hefur verið mikill leki úr gagnagrunnum
Við skulum strax gera fyrirvara um að við notum Elasticsearch til að geyma annála og greina skrár yfir upplýsingaöryggisverkfæri, stýrikerfi og hugbúnað á IaaS vettvangi okkar, sem uppfyllir kröfur 152-FZ, Cloud-152.
Við athugum hvort gagnagrunnurinn „standist“ við internetið
Í flestum þekktum tilfellum leka (
Í fyrsta lagi skulum við takast á við útgáfu á Netinu. Hvers vegna gerist þetta? Staðreyndin er sú að fyrir sveigjanlegri notkun Elasticsearch
Ef þú kemst inn skaltu hlaupa til að loka því.
Að vernda tenginguna við gagnagrunninn
Nú munum við gera það þannig að það er ómögulegt að tengjast gagnagrunninum án auðkenningar.
Elasticsearch er með auðkenningareiningu sem takmarkar aðgang að gagnagrunninum, en hún er aðeins fáanleg í greidda X-Pack viðbótasettinu (1 mánuður ókeypis notkun).
Góðu fréttirnar eru þær að haustið 2019 opnaði Amazon þróun sína, sem skarast við X-Pack. Auðkenningaraðgerðin við tengingu við gagnagrunn er orðin fáanleg með ókeypis leyfi fyrir útgáfu Elasticsearch 7.3.2 og ný útgáfa fyrir Elasticsearch 7.4.0 er þegar í vinnslu.
Þetta viðbót er auðvelt að setja upp. Farðu á netþjónaborðið og tengdu geymsluna:
RPM byggt:
curl https://d3g5vo6xdbdb9a.cloudfront.net/yum/opendistroforelasticsearch-artifacts.repo -o /etc/yum.repos.d/opendistroforelasticsearch-artifacts.repo
yum update
yum install opendistro-security
DEB byggt:
wget -qO ‐ https://d3g5vo6xdbdb9a.cloudfront.net/GPG-KEY-opendistroforelasticsearch | sudo apt-key add -
Að setja upp samskipti milli netþjóna í gegnum SSL
Þegar viðbótin er sett upp breytist uppsetning tengisins sem tengist gagnagrunninum. Það gerir SSL dulkóðun kleift. Til þess að klasaþjónarnir haldi áfram að vinna hver með öðrum þarftu að stilla samskipti á milli þeirra með því að nota SSL.
Hægt er að koma á trausti milli gestgjafa með eða án eigin vottunaryfirvalds. Með fyrstu aðferðinni er allt ljóst: þú þarft bara að hafa samband við CA sérfræðinga. Förum beint yfir í annað.
- Búðu til breytu með öllu léninu:
export DOMAIN_CN="example.com"
- Búðu til einkalykil:
openssl genrsa -out root-ca-key.pem 4096
- Skrifaðu undir rótarvottorðið. Hafðu það öruggt: ef það glatast eða er í hættu þarf að endurstilla traustið á milli allra gestgjafa.
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
- Búðu til stjórnandalykil:
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
- Búðu til beiðni um að undirrita vottorðið:
openssl req -new -subj "/C=RU/ST=Moscow/O=Moscow Inc./CN=${DOMAIN_CN}/CN=admin " -key admin-key.pem -out admin.csr
- Búðu til stjórnandavottorð:
openssl x509 -req -extensions usr_cert -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem
- Búðu til vottorð fyrir Elasticsearch hnútinn:
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
- Búðu til undirskriftarbeiðni:
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
- Undirritun vottorðsins:
openssl x509 -req -in node.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node.pem
- Settu vottorðið á milli Elasticsearch hnúta í eftirfarandi möppu:
/etc/elasticsearch/
við þurfum skrárnar:node-01-key.pem node-01.pem admin-key.pem admin.pem root-ca.pem
- Stillir /etc/elasticsearch/elasticsearch.yml - breyttu nafni skráanna með skírteinum í þau sem eru búin til af okkur:
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
Að breyta lykilorðum fyrir innri notendur
- Með því að nota skipunina hér að neðan sendum við lykilorðahashinu út á stjórnborðið:
sh ${OD_SEC}/tools/hash.sh -p [пароль]
- Breyttu kjötkássa í skránni í þann sem fékkst:
/usr/share/elasticsearch/plugins/opendistro_security/securityconfig/internal_users.yml
Að setja upp eldvegg í stýrikerfinu
- Leyfa eldveggnum að ræsa:
systemctl enable firewalld
- Við skulum ræsa það:
systemctl start firewalld
- Leyfa tengingu við Elasticsearch:
firewall-cmd --set-default-zone work firewall-cmd --zone=work --add-port=9200/TCP --permanent
- Endurhlaða eldveggsreglurnar:
firewall-cmd --reload
- Hér eru vinnureglurnar:
firewall-cmd --list-all
Notar allar breytingar okkar á Elasticsearch
- Búðu til breytu með fullri slóð að möppunni með viðbótinni:
export OD_SEC="/usr/share/elasticsearch/plugins/opendistro_security/"
- Við skulum keyra skriftu sem mun uppfæra lykilorð og athuga stillingar:
${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
- Athugaðu hvort breytingarnar hafi verið notaðar:
curl -XGET https://[IP/Имя Elasticsearch]:9200/_cat/nodes?v -u admin:[пароль] --insecure
Það er allt, þetta eru lágmarksstillingar sem vernda Elasticsearch fyrir óviðkomandi tengingum.
Heimild: www.habr.com