ProHoster > BLOG > administrare > Elastic sub cheie: activarea opțiunilor de securitate pentru clusterul Elasticsearch pentru acces din interior și din exterior
Elastic sub cheie: activarea opțiunilor de securitate pentru clusterul Elasticsearch pentru acces din interior și din exterior
Elastic Stack este un instrument binecunoscut pe piața sistemelor SIEM (de fapt, nu numai ele). Poate colecta o mulțime de date de dimensiuni diferite, atât sensibile, cât și nu foarte sensibile. Nu este complet corect dacă accesul la elementele Elastic Stack în sine nu este protejat. În mod implicit, toate elementele Elastic out-of-the-box (colectorii Elasticsearch, Logstash, Kibana și Beats) rulează pe protocoale deschise. Și în Kibana însuși, autentificarea este dezactivată. Toate aceste interacțiuni pot fi securizate și în acest articol vă vom spune cum să faceți acest lucru. Pentru comoditate, am împărțit narațiunea în 3 blocuri semantice:
Model de acces la date bazat pe roluri
Securitatea datelor într-un cluster Elasticsearch
Securizarea datelor în afara unui cluster Elasticsearch
Detalii sub croiala.
Model de acces la date bazat pe roluri
Dacă instalați Elasticsearch și nu îl reglați în niciun fel, accesul la toți indexurile va fi deschis tuturor. Ei bine, sau cei care pot folosi curl. Pentru a evita acest lucru, Elasticsearch are un model care este disponibil începând cu un abonament Basic (care este gratuit). Schematic arată cam așa:
Ce este în poză
Utilizatorii sunt toți cei care se pot conecta folosind acreditările lor.
Resursele sunt indecși, documente, câmpuri, utilizatori și alte entități de stocare (modelul pentru unele resurse este disponibil numai cu abonamente plătite).
În mod implicit, Elasticsearch are utilizatorii cutiei, la care sunt atașate roluri de cutie. După ce activați setările de securitate, puteți începe să le utilizați imediat.
Pentru a activa securitatea în setările Elasticsearch, trebuie să o adăugați la fișierul de configurare (în mod implicit, acesta este elasticsearch/config/elasticsearch.yml) linie nouă:
xpack.security.enabled: true
După modificarea fișierului de configurare, lansați sau reporniți Elasticsearch pentru ca modificările să aibă efect. Următorul pas este alocarea parolelor utilizatorilor cutiei. Să facem acest lucru în mod interactiv folosind comanda de mai jos:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana]:
Reenter password for [kibana]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
Verificăm:
[elastic@node1 ~]$ curl -u elastic 'node1:9200/_cat/nodes?pretty'
Enter host password for user 'elastic':
192.168.0.2 23 46 14 0.28 0.32 0.18 dim * node1
Vă puteți bate pe spate - setările din partea Elasticsearch sunt finalizate. Acum este timpul să configurați Kibana. Dacă îl rulați acum, vor apărea erori, așa că este important să creați un depozit de chei. Acest lucru se face în două comenzi (user kibana și parola introdusă la pasul de creare a parolei în Elasticsearch):
Dacă totul este corect, Kibana va începe să ceară autentificare și parolă. Abonamentul Basic include un model bazat pe utilizatori interni. Începând cu Gold, puteți conecta sisteme de autentificare externe - sisteme LDAP, PKI, Active Directory și Single sign-on.
Drepturile de acces la obiectele din interiorul Elasticsearch pot fi, de asemenea, limitate. Totuși, pentru a face același lucru pentru documente sau câmpuri, veți avea nevoie de un abonament plătit (acest lux începe cu nivelul Platină). Aceste setări sunt disponibile în interfața Kibana sau prin intermediul API de securitate. Puteți verifica prin meniul deja familiar Instrumente de dezvoltare:
Când Elasticsearch rulează într-un cluster (ceea ce este obișnuit), setările de securitate din cluster devin importante. Pentru comunicarea sigură între noduri, Elasticsearch utilizează protocolul TLS. Pentru a configura interacțiunea sigură între ele, aveți nevoie de un certificat. Generăm un certificat și cheie privată în format PEM:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem
După executarea comenzii de mai sus, în director /../elasticsearch va apărea arhiva elastic-stiva-ca.zip. În interiorul acestuia veți găsi un certificat și o cheie privată cu extensii crt и cheie respectiv. Este recomandabil să le puneți pe o resursă partajată, care ar trebui să fie accesibilă de la toate nodurile din cluster.
Fiecare nod are acum nevoie de propriile certificate și chei private bazate pe cele din directorul partajat. Când executați comanda, vi se va cere să setați o parolă. Puteți adăuga opțiuni suplimentare -ip și -dns pentru verificarea completă a nodurilor care interacționează.
Ca urmare a executării comenzii, vom primi un certificat și o cheie privată în format PKCS#12, protejate de o parolă. Tot ce rămâne este să mutați fișierul generat p12 la directorul de configurare:
Există o altă opțiune de securitate - filtrarea adresei IP (disponibilă în abonamentele de la nivelul Gold). Vă permite să creați liste albe de adrese IP de la care aveți permisiunea de a accesa nodurile.
Securizarea datelor în afara unui cluster Elasticsearch
În afara clusterului înseamnă conectarea unor instrumente externe: Kibana, Logstash, Beats sau alți clienți externi.
Pentru a configura suportul pentru https (în loc de http), adăugați linii noi la elasticsearch.yml:
După adăugarea cheilor, nodurile Elasticsearch sunt gata să se conecteze prin https. Acum pot fi lansate.
Următorul pas este să creați o cheie pentru a conecta Kibana și să o adăugați la configurație. Pe baza certificatului care se află deja în directorul partajat, vom genera un certificat în format PEM (PKCS#12 Kibana, Logstash și Beats nu acceptă încă):
Cheile sunt acolo, așa că tot ce rămâne este să schimbați configurația Kibana, astfel încât să înceapă să le folosească. În fișierul de configurare kibana.yml, schimbați http în https și adăugați linii cu setări de conexiune SSL. Ultimele trei linii configurează comunicarea securizată între browserul utilizatorului și Kibana.
Astfel, setările sunt finalizate și accesul la date din clusterul Elasticsearch este criptat.
Dacă aveți întrebări despre capabilitățile Elastic Stack privind abonamentele gratuite sau plătite, despre sarcinile de monitorizare sau despre crearea unui sistem SIEM, lăsați o solicitare către formular de feedback pe site-ul nostru.
Mai multe dintre articolele noastre despre Elastic Stack pe Habré: