Kuluneen vuoden aikana tietokannoista on vuotanut paljon
Tehdään heti varaus, että käytämme käytännössä Elasticsearchia lokien tallentamiseen ja tietoturvatyökalujen, käyttöjärjestelmän ja ohjelmistojen lokien analysointiin IaaS-alustallamme, joka täyttää 152-FZ, Cloud-152 vaatimukset.
Tarkistamme, pysyykö tietokanta Internetissä
Useimmissa tunnetuissa vuototapauksissa (
Ensin käsitellään Internetissä julkaisemista. Miksi näin tapahtuu? Tosiasia on, että Elasticsearchin joustavampaan toimintaan
Jos pääset sisään, juokse sulkemaan se.
Suojaa yhteys tietokantaan
Nyt teemme sen niin, että on mahdotonta muodostaa yhteyttä tietokantaan ilman todennusta.
Elasticsearchissa on todennusmoduuli, joka rajoittaa pääsyä tietokantaan, mutta se on saatavilla vain maksullisessa X-Pack-laajennuksessa (1 kuukauden ilmainen käyttö).
Hyvä uutinen on, että syksyllä 2019 Amazon avasi kehitystyönsä, jotka ovat päällekkäisiä X-Packin kanssa. Todennustoiminto tietokantayhteyden yhteydessä on tullut saataville Elasticsearch 7.3.2 -version ilmaisella lisenssillä, ja Elasticsearch 7.4.0:n uusi julkaisu on jo työn alla.
Tämä laajennus on helppo asentaa. Siirry palvelinkonsoliin ja yhdistä arkisto:
RPM-perusteinen:
curl https://d3g5vo6xdbdb9a.cloudfront.net/yum/opendistroforelasticsearch-artifacts.repo -o /etc/yum.repos.d/opendistroforelasticsearch-artifacts.repo
yum update
yum install opendistro-security
DEB-pohjainen:
wget -qO ‐ https://d3g5vo6xdbdb9a.cloudfront.net/GPG-KEY-opendistroforelasticsearch | sudo apt-key add -
Palvelinten välisen vuorovaikutuksen määrittäminen SSL:n kautta
Lisäosaa asennettaessa tietokantaan yhdistävän portin konfiguraatio muuttuu. Se mahdollistaa SSL-salauksen. Jotta klusteripalvelimet voivat edelleen toimia keskenään, sinun on määritettävä niiden välinen vuorovaikutus SSL:n avulla.
Isäntien välinen luottamus voidaan muodostaa oman varmenneviranomaisen kanssa tai ilman sitä. Ensimmäisellä menetelmällä kaikki on selvää: sinun tarvitsee vain ottaa yhteyttä CA-asiantuntijoihin. Siirrytään suoraan toiseen.
- Luo muuttuja koko verkkotunnuksen nimellä:
export DOMAIN_CN="example.com"
- Luo yksityinen avain:
openssl genrsa -out root-ca-key.pem 4096
- Allekirjoita juurisertifikaatti. Pidä se turvassa: jos se katoaa tai vaarantuu, kaikkien isäntien välinen luottamus on määritettävä uudelleen.
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
- Luo järjestelmänvalvojan avain:
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
- Luo pyyntö allekirjoittaa varmenne:
openssl req -new -subj "/C=RU/ST=Moscow/O=Moscow Inc./CN=${DOMAIN_CN}/CN=admin " -key admin-key.pem -out admin.csr
- Luo järjestelmänvalvojan varmenne:
openssl x509 -req -extensions usr_cert -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem
- Luo sertifikaatit Elasticsearch-solmulle:
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
- Luo allekirjoituspyyntö:
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
- Varmenteen allekirjoittaminen:
openssl x509 -req -in node.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node.pem
- Sijoita varmenne Elasticsearch-solmujen väliin seuraavaan kansioon:
/etc/elasticsearch/
tarvitsemme tiedostot:node-01-key.pem node-01.pem admin-key.pem admin.pem root-ca.pem
- Määritetään /etc/elasticsearch/elasticsearch.yml – vaihda varmenteilla varustettujen tiedostojen nimet meidän luomiksi:
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
Sisäisten käyttäjien salasanojen vaihtaminen
- Käytä alla olevaa komentoa, annamme salasanan hajautuskoodin konsoliin:
sh ${OD_SEC}/tools/hash.sh -p [пароль]
- Muuta tiedoston tiiviste vastaanotetuksi:
/usr/share/elasticsearch/plugins/opendistro_security/securityconfig/internal_users.yml
Palomuurin määrittäminen käyttöjärjestelmässä
- Anna palomuurin käynnistyä:
systemctl enable firewalld
- Käynnistetään se:
systemctl start firewalld
- Salli yhteys Elasticsearchiin:
firewall-cmd --set-default-zone work firewall-cmd --zone=work --add-port=9200/TCP --permanent
- Lataa palomuurisäännöt uudelleen:
firewall-cmd --reload
- Tässä työsäännöt:
firewall-cmd --list-all
Otamme kaikki muutokset käyttöön Elasticsearchissa
- Luo muuttuja, jossa on kansion koko polku laajennuksen avulla:
export OD_SEC="/usr/share/elasticsearch/plugins/opendistro_security/"
- Suoritetaan skripti, joka päivittää salasanat ja tarkistaa asetukset:
${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
- Tarkista, onko muutokset otettu käyttöön:
curl -XGET https://[IP/Имя Elasticsearch]:9200/_cat/nodes?v -u admin:[пароль] --insecure
Siinä kaikki, nämä ovat vähimmäisasetukset, jotka suojaavat Elasticsearchia luvattomilta yhteyksiltä.
Lähde: will.com