Am leschte Joer goufen et vill Fuite aus Datenbanken
Loosst eis direkt reservéieren datt mir an eiser Praxis Elasticsearch benotze fir Logbicher ze späicheren an Logbicher vun Informatiounssécherheetsinstrumenter, OS a Software an eiser IaaS Plattform ze analyséieren, déi den Ufuerderunge vum 152-FZ, Cloud-152 entsprécht.
Mir iwwerpréiwen ob d'Datebank op den Internet "stéckt".
Am meeschte bekannte Fäll vu Leckage (
Als éischt, loosst eis mat der Verëffentlechung um Internet beschäftegen. Firwat geschitt dat? D'Tatsaach ass, datt fir méi flexibel Operatioun vun Elasticsearch
Wann Dir kënnt erakommen, da lafe fir se zou ze maachen.
Schutz vun der Verbindung mat der Datebank
Elo maache mir et sou datt et onméiglech ass mat der Datebank ze verbannen ouni Authentifikatioun.
Elasticsearch huet en Authentifikatiounsmodul deen den Zougang zu der Datebank limitéiert, awer et ass nëmme verfügbar am bezuelte X-Pack Plugin Set (1 Mount gratis Benotzung).
Déi gutt Noriicht ass datt am Hierscht 2019 Amazon seng Entwécklungen opgemaach huet, déi mam X-Pack iwwerlappt. D'Authentifikatiounsfunktioun wann Dir mat enger Datebank verbënnt ass verfügbar ënner enger gratis Lizenz fir d'Versioun Elasticsearch 7.3.2, an eng nei Verëffentlechung fir Elasticsearch 7.4.0 ass schonn an de Wierker.
Dëse Plugin ass einfach ze installéieren. Gitt op d'Serverkonsole a verbënnt de Repository:
RPM baséiert:
curl https://d3g5vo6xdbdb9a.cloudfront.net/yum/opendistroforelasticsearch-artifacts.repo -o /etc/yum.repos.d/opendistroforelasticsearch-artifacts.repo
yum update
yum install opendistro-security
DEB baséiert:
wget -qO ‐ https://d3g5vo6xdbdb9a.cloudfront.net/GPG-KEY-opendistroforelasticsearch | sudo apt-key add -
Interaktioun tëscht Serveren iwwer SSL opsetzen
Wann Dir de Plugin installéiert, ännert d'Konfiguratioun vum Hafen, deen mat der Datebank verbënnt. Et erméiglecht SSL Verschlësselung. Fir datt d'Clusterserver weider matenee schaffen, musst Dir Interaktioun tëscht hinnen mat SSL konfiguréieren.
Vertrauen tëscht Hosten ka mat oder ouni seng eege Zertifika Autoritéit etabléiert ginn. Mat der éischter Method ass alles kloer: Dir musst just CA Spezialisten kontaktéieren. Loosst eis direkt op déi zweet goen.
- Erstellt eng Variabel mam ganzen Domain Numm:
export DOMAIN_CN="example.com"
- Erstellt e private Schlëssel:
openssl genrsa -out root-ca-key.pem 4096
- Ënnerschreift de Root Zertifikat. Halt et sécher: wann et verluer ass oder kompromittéiert ass, muss d'Vertrauen tëscht all Hosten nei konfiguréiert ginn.
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
- Erstellt en Administratorschlëssel:
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
- Erstellt eng Ufro fir den Zertifika z'ënnerschreiwen:
openssl req -new -subj "/C=RU/ST=Moscow/O=Moscow Inc./CN=${DOMAIN_CN}/CN=admin " -key admin-key.pem -out admin.csr
- Erstellt en Administrator Zertifikat:
openssl x509 -req -extensions usr_cert -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem
- Erstellt Certificaten fir den 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
- Erstellt eng Ënnerschrëft Ufro:
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
- Zertifikat ënnerschreiwen:
openssl x509 -req -in node.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node.pem
- Plaz den Zertifika tëscht Elasticsearch Noden am folgenden Dossier:
/etc/elasticsearch/
mir brauchen d'Dateien:node-01-key.pem node-01.pem admin-key.pem admin.pem root-ca.pem
- Konfiguréieren /etc/elasticsearch/elasticsearch.yml - Änneren den Numm vun den Dateien mat Certificaten op déi vun eis generéiert:
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
Änneren Passwierder fir intern Benotzer
- Mat dem Kommando hei drënner gi mir de Passwuert Hash op d'Konsole eraus:
sh ${OD_SEC}/tools/hash.sh -p [пароль]
- Ännert den Hash an der Datei op dee kritt:
/usr/share/elasticsearch/plugins/opendistro_security/securityconfig/internal_users.yml
Konfiguratioun vun enger Firewall am OS
- Loosst d'Firewall ufänken:
systemctl enable firewalld
- Loosst eis et starten:
systemctl start firewalld
- Erlaabt Verbindung mat Elasticsearch:
firewall-cmd --set-default-zone work firewall-cmd --zone=work --add-port=9200/TCP --permanent
- Reload d'Firewall Regelen:
firewall-cmd --reload
- Hei sinn d'Aarbechtsregelen:
firewall-cmd --list-all
All eis Ännerungen op Elasticsearch uwenden
- Erstellt eng Variabel mam ganze Wee an den Dossier mam Plugin:
export OD_SEC="/usr/share/elasticsearch/plugins/opendistro_security/"
- Loosst eis e Skript lafen deen d'Passwierder aktualiséieren an d'Astellunge kontrolléieren:
${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
- Kontrolléiert ob d'Ännerunge applizéiert goufen:
curl -XGET https://[IP/Имя Elasticsearch]:9200/_cat/nodes?v -u admin:[пароль] --insecure
Dat ass alles, dëst sinn d'Mindestastellungen déi Elasticsearch vun onerlaabten Verbindungen schützen.
Source: will.com