In l'annu passatu, ci sò state parechje fughe da basa di dati
Facemu subitu una riservazione chì in a nostra pratica usemu Elasticsearch per almacenà logs è analizà logs di strumenti di sicurezza di l'infurmazioni, OS è software in a nostra piattaforma IaaS, chì cumpone cù i requisiti di 152-FZ, Cloud-152.
Cuntrollamu se a basa di dati "si ferma" à Internet
In i casi più noti di perdite (
Prima, facemu a publicazione in Internet. Perchè succede questu? U fattu hè chì per un'operazione più flexible di Elasticsearch
Se pudete entre, corre per chjude.
Prutezzione di a cunnessione à a basa di dati
Avà avemu da fà cusì chì hè impussibile di cunnette à a basa di dati senza autentificazione.
Elasticsearch hà un modulu di autentificazione chì limita l'accessu à a basa di dati, ma hè solu dispunibule in u set di plugin X-Pack pagatu (1 mese d'usu gratuitu).
A bona nutizia hè chì in a caduta di u 2019, Amazon hà apertu i so sviluppi, chì si sovrapponenu cù X-Pack. A funzione di autentificazione quandu si cunnetta à una basa di dati hè diventata dispunibule sottu una licenza libera per a versione Elasticsearch 7.3.2, è una nova versione per Elasticsearch 7.4.0 hè digià in u travagliu.
Stu plugin hè facile à stallà. Andate à a cunsola di u servitore è cunnette u repository:
Basatu in RPM:
curl https://d3g5vo6xdbdb9a.cloudfront.net/yum/opendistroforelasticsearch-artifacts.repo -o /etc/yum.repos.d/opendistroforelasticsearch-artifacts.repo
yum update
yum install opendistro-security
Basatu in DEB:
wget -qO ‐ https://d3g5vo6xdbdb9a.cloudfront.net/GPG-KEY-opendistroforelasticsearch | sudo apt-key add -
Configurazione di l'interazzione trà i servitori via SSL
Quandu si stallanu u plugin, a cunfigurazione di u portu di cunnessione à a basa di dati cambia. Permette a criptografia SSL. Per chì i servitori di cluster cuntinueghjanu à travaglià cù l'altri, avete bisognu di cunfigurà l'interazzione trà elli cù SSL.
A fiducia trà l'ospiti pò esse stabilita cù o senza a so propria autorità di certificazione. Cù u primu mètudu, tuttu hè chjaru: basta à cuntattà i specialisti CA. Andemu direttamente à a seconda.
- Crea una variabile cù u nome di dominiu cumpletu:
export DOMAIN_CN="example.com"
- Crea una chjave privata:
openssl genrsa -out root-ca-key.pem 4096
- Firmà u certificatu root. Mantene a sicura: s'ellu hè persu o cumprumissu, a fiducia trà tutti l'ospiti deve esse reconfigurata.
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
- Crea una chjave amministratore:
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
- Crea una dumanda per firmà u certificatu:
openssl req -new -subj "/C=RU/ST=Moscow/O=Moscow Inc./CN=${DOMAIN_CN}/CN=admin " -key admin-key.pem -out admin.csr
- Crea un certificatu di amministratore:
openssl x509 -req -extensions usr_cert -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem
- Crea certificati per u node 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
- Crea una dumanda di firma:
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
- Firmà u certificatu:
openssl x509 -req -in node.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node.pem
- Pone u certificatu trà i nodi Elasticsearch in u cartulare seguente:
/etc/elasticsearch/
avemu bisognu di i schedari:node-01-key.pem node-01.pem admin-key.pem admin.pem root-ca.pem
- Cunfigurazione /etc/elasticsearch/elasticsearch.yml - cambià u nome di i schedari cù certificati à quelli generati da noi:
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
Cambia password per l'utilizatori internu
- Utilizendu u cumandimu quì sottu, emettemu a password hash à a cunsola:
sh ${OD_SEC}/tools/hash.sh -p [пароль]
- Cambia l'hash in u schedariu à quellu ricevutu:
/usr/share/elasticsearch/plugins/opendistro_security/securityconfig/internal_users.yml
Configurazione di un firewall in u SO
- Permette à u firewall di inizià:
systemctl enable firewalld
- Lanciamu:
systemctl start firewalld
- Permette a cunnessione à Elasticsearch:
firewall-cmd --set-default-zone work firewall-cmd --zone=work --add-port=9200/TCP --permanent
- Ricaricate e regule di u firewall:
firewall-cmd --reload
- Eccu i reguli di travagliu:
firewall-cmd --list-all
Applicà tutti i nostri cambiamenti à Elasticsearch
- Crea una variabile cù u percorsu sanu à u cartulare cù u plugin:
export OD_SEC="/usr/share/elasticsearch/plugins/opendistro_security/"
- Eseguimu un script chì aghjurnà e password è verificate i paràmetri:
${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
- Verificate se i cambiamenti sò stati applicati:
curl -XGET https://[IP/Имя Elasticsearch]:9200/_cat/nodes?v -u admin:[пароль] --insecure
Hè tuttu, questi sò i paràmetri minimi chì prutegge Elasticsearch da e cunnessione micca autorizate.
Source: www.habr.com